Skip to content

fix: migrate runtime base images from distroless/minimal to distroless/base#4369

Open
behzad-mir wants to merge 1 commit intomasterfrom
behzadm/fips-base-image-migration
Open

fix: migrate runtime base images from distroless/minimal to distroless/base#4369
behzad-mir wants to merge 1 commit intomasterfrom
behzadm/fips-base-image-migration

Conversation

@behzad-mir
Copy link
Copy Markdown
Contributor

Summary

Migrates runtime base images from distroless/minimal:3.0 to distroless/base:3.0 to prepare for Go 1.26 FIPS compliance.

Motivation

Go 1.26 enforces system crypto for FIPS compliance. Runtime images must include crypto librariesdistroless/minimal lacks these and causes pod startup failures. This lays the groundwork before the actual Go 1.26 version bump.

Changes

Source of truth

  • build/images.mk: MARINER_DISTROLESS_IMG from distroless/minimal:3.0distroless/base:3.0

Manual (non-template) files

  • bpf-prog/ipv6-hp-bpf/linux.Dockerfile: cbl-mariner/distroless/minimal:2.0azurelinux/distroless/base:3.0
  • .pipelines/build/dockerfiles/ipv6-hp-bpf.Dockerfile: distroless/minimal:3.0distroless/base:3.0

Auto-regenerated via make dockerfiles

  • cns/Dockerfile, cni/Dockerfile, azure-ipam/Dockerfile, azure-ip-masq-merger/Dockerfile, azure-iptables-monitor/Dockerfile, cilium-log-collector/Dockerfile
  • Pipeline copies in .pipelines/build/dockerfiles/

Testing

  • Pipeline builds pass
  • No runtime regressions (pod startup, crypto operations)
  • ARM and AMD builds succeed

Resolves #4364

@behzad-mir behzad-mir mentioned this pull request Apr 21, 2026
4 tasks
jpayne3506
jpayne3506 previously approved these changes Apr 23, 2026
Copy link
Copy Markdown
Contributor

@jpayne3506 jpayne3506 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

resolve merge conflicts and get this merged. Images will increase minimally in size, but 0 functionality changes.

…s/base

Go 1.26 enforces FIPS-compliant system crypto, which requires crypto
libraries to be present at runtime. distroless/minimal lacks these
libraries and will cause pod startup failures.

This change migrates all runtime base images to distroless/base:3.0,
which includes the required crypto libraries while remaining minimal.

Changes:
- build/images.mk: MARINER_DISTROLESS_IMG minimal → base
- bpf-prog/ipv6-hp-bpf/linux.Dockerfile: cbl-mariner/distroless/minimal:2.0 → azurelinux/distroless/base:3.0
- .pipelines/build/dockerfiles/ipv6-hp-bpf.Dockerfile: minimal → base
- Regenerated all template Dockerfiles via make dockerfiles

Resolves #4364

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@behzad-mir behzad-mir force-pushed the behzadm/fips-base-image-migration branch from d5e33a7 to f10c036 Compare April 30, 2026 21:47
@behzad-mir behzad-mir marked this pull request as ready for review May 4, 2026 20:52
Copilot AI review requested due to automatic review settings May 4, 2026 20:52
@behzad-mir behzad-mir requested review from a team, QxBytes, camrynl and santhoshmprabhu as code owners May 4, 2026 20:52
@behzad-mir behzad-mir requested a review from jpayne3506 May 4, 2026 20:53
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the project’s Linux runtime base images from Azure Linux distroless minimal to distroless base (3.0) to ensure required system crypto libraries are present ahead of a future Go 1.26 FIPS-compliance effort.

Changes:

  • Switched the distroless runtime base image reference in the build “source of truth” (build/images.mk) to distroless/base:3.0.
  • Regenerated/updated service Dockerfiles (and pipeline copies) to use mcr.microsoft.com/azurelinux/distroless/base:3.0 (digest-pinned where templated).
  • Updated the ipv6-hp-bpf runtime Dockerfiles to use the new distroless base image.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
cns/Dockerfile Autogenerated Dockerfile updated to use Azure Linux distroless base (3.0) digest for the runtime stage.
build/images.mk Updates MARINER_DISTROLESS_IMG to distroless/base:3.0 so regenerated Dockerfiles resolve the new pinned digest.
bpf-prog/ipv6-hp-bpf/linux.Dockerfile Updates the ipv6-hp-bpf runtime stage to Azure Linux distroless base (3.0).
azure-iptables-monitor/Dockerfile Autogenerated Dockerfile updated to use Azure Linux distroless base (3.0) digest for the runtime stage.
.pipelines/build/dockerfiles/ipv6-hp-bpf.Dockerfile Updates pipeline ipv6-hp-bpf runtime base image tag to distroless base (3.0).
.pipelines/build/dockerfiles/cns.Dockerfile Updates pipeline CNS runtime base image to distroless base (3.0) digest.
.pipelines/build/dockerfiles/azure-iptables-monitor.Dockerfile Updates pipeline azure-iptables-monitor runtime base image to distroless base (3.0) digest.

RUN GOOS=$OS CGO_ENABLED=0 go build -a -o /go/bin/ipv6-hp-bpf -trimpath -ldflags "-s -w -X main.version="$VERSION"" -gcflags="-dwarflocationlists=true" .

FROM mcr.microsoft.com/cbl-mariner/distroless/minimal:2.0 AS linux
FROM mcr.microsoft.com/azurelinux/distroless/base:3.0 AS linux


FROM --platform=linux/${ARCH} mcr.microsoft.com/azurelinux/distroless/minimal:3.0 AS linux
FROM --platform=linux/${ARCH} mcr.microsoft.com/azurelinux/distroless/base:3.0 AS linux
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chore: FIPS-ready base image migration (distroless/minimal → distroless/base)

3 participants