Skip to content

Commit 4cb6b5d

Browse files
authored
feat: windows hpc base image
Signed-off-by: Evan Baker <[email protected]>
1 parent b5a7f14 commit 4cb6b5d

File tree

7 files changed

+30
-77
lines changed

7 files changed

+30
-77
lines changed

.pipelines/containers/container-template.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ steps:
1717
- script: |
1818
set -e
1919
if [ ${{ parameters.os }} = 'windows' ]; then export BUILDX_ACTION='--push'; fi
20-
make ${{ parameters.name }}-image OS=${{ parameters.os }} ARCH=${{ parameters.arch }} OS_VERSION=${{ parameters.os_version }}
20+
make ${{ parameters.name }}-image OS=${{ parameters.os }} ARCH=${{ parameters.arch }}
2121
name: image_build
2222
displayName: Image Build
2323
retryCountOnTaskFailure: 3

.pipelines/containers/manifest-template.steps.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ steps:
1616
1717
- script: |
1818
set -e
19-
make ${{ parameters.name }}-manifest-build PLATFORMS="${{ parameters.platforms }}" OS_VERSIONS="${{ parameters.os_versions }}"
19+
make ${{ parameters.name }}-manifest-build PLATFORMS="${{ parameters.platforms }}"
2020
workingDirectory: $(ACN_DIR)
2121
name: manifest_build
2222
displayName: Manifest Build

Makefile

Lines changed: 21 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,6 @@ GOOS ?= $(shell go env GOOS)
2020
GOARCH ?= $(shell go env GOARCH)
2121
GOOSES ?= "linux windows" # To override at the cli do: GOOSES="\"darwin bsd\""
2222
GOARCHES ?= "amd64 arm64" # To override at the cli do: GOARCHES="\"ppc64 mips\""
23-
ltsc2019 = "10.0.17763.4010"
24-
ltsc2022 = "10.0.20348.643"
25-
ltsc2025 = "10.0.26244.5000"
2623

2724
# Windows specific extensions
2825
# set these based on the GOOS, not the OS
@@ -266,15 +263,15 @@ CNS_IMAGE = azure-cns
266263
NPM_IMAGE = azure-npm
267264

268265
## Image platform tags.
269-
ACNCLI_PLATFORM_TAG ?= $(subst /,-,$(PLATFORM))$(if $(OS_VERSION),-$(OS_VERSION),)-$(ACN_VERSION)
270-
AZURE_IPAM_PLATFORM_TAG ?= $(subst /,-,$(PLATFORM))$(if $(OS_VERSION),-$(OS_VERSION),)-$(AZURE_IPAM_VERSION)
271-
AZURE_IPAM_WINDOWS_PLATFORM_TAG ?= $(subst /,-,$(PLATFORM))$(if $(OS_VERSION),-$(OS_VERSION),)-$(AZURE_IPAM_VERSION)-$(OS_SKU_WIN)
272-
IPV6_HP_BPF_IMAGE_PLATFORM_TAG ?= $(subst /,-,$(PLATFORM))$(if $(OS_VERSION),-$(OS_VERSION),)-$(IPV6_HP_BPF_VERSION)
273-
CNI_PLATFORM_TAG ?= $(subst /,-,$(PLATFORM))$(if $(OS_VERSION),-$(OS_VERSION),)-$(CNI_VERSION)
274-
CNI_WINDOWS_PLATFORM_TAG ?= $(subst /,-,$(PLATFORM))$(if $(OS_VERSION),-$(OS_VERSION),)-$(CNI_VERSION)-$(OS_SKU_WIN)
275-
CNS_PLATFORM_TAG ?= $(subst /,-,$(PLATFORM))$(if $(OS_VERSION),-$(OS_VERSION),)-$(CNS_VERSION)
276-
CNS_WINDOWS_PLATFORM_TAG ?= $(subst /,-,$(PLATFORM))$(if $(OS_VERSION),-$(OS_VERSION),)-$(CNS_VERSION)-$(OS_SKU_WIN)
277-
NPM_PLATFORM_TAG ?= $(subst /,-,$(PLATFORM))$(if $(OS_VERSION),-$(OS_VERSION),)-$(NPM_VERSION)
266+
ACNCLI_PLATFORM_TAG ?= $(subst /,-,$(PLATFORM))-$(ACN_VERSION)
267+
AZURE_IPAM_PLATFORM_TAG ?= $(subst /,-,$(PLATFORM))-$(AZURE_IPAM_VERSION)
268+
AZURE_IPAM_WINDOWS_PLATFORM_TAG ?= $(subst /,-,$(PLATFORM))-$(AZURE_IPAM_VERSION)-$(OS_SKU_WIN)
269+
IPV6_HP_BPF_IMAGE_PLATFORM_TAG ?= $(subst /,-,$(PLATFORM))-$(IPV6_HP_BPF_VERSION)
270+
CNI_PLATFORM_TAG ?= $(subst /,-,$(PLATFORM))-$(CNI_VERSION)
271+
CNI_WINDOWS_PLATFORM_TAG ?= $(subst /,-,$(PLATFORM))-$(CNI_VERSION)-$(OS_SKU_WIN)
272+
CNS_PLATFORM_TAG ?= $(subst /,-,$(PLATFORM))-$(CNS_VERSION)
273+
CNS_WINDOWS_PLATFORM_TAG ?= $(subst /,-,$(PLATFORM))-$(CNS_VERSION)-$(OS_SKU_WIN)
274+
NPM_PLATFORM_TAG ?= $(subst /,-,$(PLATFORM))-$(NPM_VERSION)
278275

279276

280277
qemu-user-static: ## Set up the host to run qemu multiplatform container builds.
@@ -287,7 +284,6 @@ container-buildah: # util target to build container images using buildah. do not
287284
buildah bud \
288285
--build-arg ARCH=$(ARCH) \
289286
--build-arg OS=$(OS) \
290-
--build-arg OS_VERSION=$(OS_VERSION) \
291287
--build-arg PLATFORM=$(PLATFORM) \
292288
--build-arg VERSION=$(TAG) \
293289
$(EXTRA_BUILD_ARGS) \
@@ -305,7 +301,6 @@ container-docker: # util target to build container images using docker buildx. d
305301
$(BUILDX_ACTION) \
306302
--build-arg ARCH=$(ARCH) \
307303
--build-arg OS=$(OS) \
308-
--build-arg OS_VERSION=$(OS_VERSION) \
309304
--build-arg PLATFORM=$(PLATFORM) \
310305
--build-arg VERSION=$(TAG) \
311306
$(EXTRA_BUILD_ARGS) \
@@ -319,7 +314,6 @@ container: # util target to build container images. do not invoke directly.
319314
$(MAKE) container-$(CONTAINER_BUILDER) \
320315
ARCH=$(ARCH) \
321316
OS=$(OS) \
322-
OS_VERSION=$(OS_VERSION) \
323317
PLATFORM=$(PLATFORM) \
324318
TAG=$(TAG) \
325319
TARGET=$(TARGET)
@@ -376,8 +370,7 @@ azure-ipam-image: ## build azure-ipam container image.
376370
TAG=$(AZURE_IPAM_PLATFORM_TAG) \
377371
TARGET=$(OS) \
378372
OS=$(OS) \
379-
ARCH=$(ARCH) \
380-
OS_VERSION=$(OS_VERSION)
373+
ARCH=$(ARCH)
381374

382375
azure-ipam-image-push: ## push azure-ipam container image.
383376
$(MAKE) container-push \
@@ -401,13 +394,12 @@ ipv6-hp-bpf-image: ## build ipv6-hp-bpf container image.
401394
$(MAKE) container \
402395
DOCKERFILE=bpf-prog/ipv6-hp-bpf/$(OS).Dockerfile \
403396
IMAGE=$(IPV6_HP_BPF_IMAGE) \
404-
EXTRA_BUILD_ARGS='--build-arg OS=$(OS) --build-arg ARCH=$(ARCH) --build-arg OS_VERSION=$(OS_VERSION) --build-arg DEBUG=$(DEBUG)'\
397+
EXTRA_BUILD_ARGS='--build-arg OS=$(OS) --build-arg ARCH=$(ARCH) --build-arg DEBUG=$(DEBUG)'\
405398
PLATFORM=$(PLATFORM) \
406399
TAG=$(IPV6_HP_BPF_IMAGE_PLATFORM_TAG) \
407400
TARGET=$(OS) \
408401
OS=$(OS) \
409-
ARCH=$(ARCH) \
410-
OS_VERSION=$(OS_VERSION)
402+
ARCH=$(ARCH)
411403

412404
ipv6-hp-bpf-image-push: ## push ipv6-hp-bpf container image.
413405
$(MAKE) container-push \
@@ -436,7 +428,6 @@ cni-image: ## build cni container image.
436428
TARGET=$(OS) \
437429
OS=$(OS) \
438430
ARCH=$(ARCH) \
439-
OS_VERSION=$(OS_VERSION) \
440431
EXTRA_BUILD_ARGS='--build-arg CNI_AI_PATH=$(CNI_AI_PATH) --build-arg CNI_AI_ID=$(CNI_AI_ID)'
441432

442433
cni-image-push: ## push cni container image.
@@ -467,8 +458,7 @@ cns-image: ## build cns container image.
467458
TAG=$(CNS_PLATFORM_TAG) \
468459
TARGET=$(OS) \
469460
OS=$(OS) \
470-
ARCH=$(ARCH) \
471-
OS_VERSION=$(OS_VERSION)
461+
ARCH=$(ARCH)
472462

473463
cns-image-push: ## push cns container image.
474464
$(MAKE) container-push \
@@ -497,8 +487,7 @@ npm-image: ## build the npm container image.
497487
TAG=$(NPM_PLATFORM_TAG) \
498488
TARGET=$(OS) \
499489
OS=$(OS) \
500-
ARCH=$(ARCH) \
501-
OS_VERSION=$(OS_VERSION)
490+
ARCH=$(ARCH)
502491

503492
npm-image-push: ## push npm container image.
504493
$(MAKE) container-push \
@@ -518,17 +507,12 @@ manifest-create:
518507
$(CONTAINER_BUILDER) manifest create $(IMAGE_REGISTRY)/$(IMAGE):$(TAG)
519508

520509
manifest-add:
521-
$(CONTAINER_BUILDER) manifest add --os=$(OS) --os-version=$($(OS_VERSION)) $(IMAGE_REGISTRY)/$(IMAGE):$(TAG) docker://$(IMAGE_REGISTRY)/$(IMAGE):$(subst /,-,$(PLATFORM))$(if $(OS_VERSION),-$(OS_VERSION),)-$(TAG)
510+
$(CONTAINER_BUILDER) manifest add --os=$(OS) $(IMAGE_REGISTRY)/$(IMAGE):$(TAG) docker://$(IMAGE_REGISTRY)/$(IMAGE):$(subst /,-,$(PLATFORM))-$(TAG)
522511

523512
manifest-build: # util target to compose multiarch container manifests from platform specific images.
524513
$(MAKE) manifest-create
525514
$(foreach PLATFORM,$(PLATFORMS),\
526-
$(if $(filter $(PLATFORM),windows/amd64),\
527-
$(foreach OS_VERSION,$(OS_VERSIONS),\
528-
$(MAKE) manifest-add CONTAINER_BUILDER=$(CONTAINER_BUILDER) OS=windows OS_VERSION=$(OS_VERSION) PLATFORM=$(PLATFORM);\
529-
),\
530-
$(MAKE) manifest-add PLATFORM=$(PLATFORM);\
531-
)\
515+
$(MAKE) manifest-add PLATFORM=$(PLATFORM);\
532516
)\
533517

534518
manifest-push: # util target to push multiarch container manifest.
@@ -559,8 +543,7 @@ azure-ipam-manifest-build: ## build azure-ipam multiplat container manifest.
559543
$(MAKE) manifest-build \
560544
PLATFORMS="$(PLATFORMS)" \
561545
IMAGE=$(AZURE_IPAM_IMAGE) \
562-
TAG=$(AZURE_IPAM_VERSION) \
563-
OS_VERSIONS="$(OS_VERSIONS)"
546+
TAG=$(AZURE_IPAM_VERSION)
564547

565548
azure-ipam-manifest-push: ## push azure-ipam multiplat container manifest
566549
$(MAKE) manifest-push \
@@ -576,8 +559,7 @@ ipv6-hp-bpf-manifest-build: ## build ipv6-hp-bpf multiplat container manifest.
576559
$(MAKE) manifest-build \
577560
PLATFORMS="$(PLATFORMS)" \
578561
IMAGE=$(IPV6_HP_BPF_IMAGE) \
579-
TAG=$(IPV6_HP_BPF_VERSION) \
580-
OS_VERSIONS="$(OS_VERSIONS)"
562+
TAG=$(IPV6_HP_BPF_VERSION)
581563

582564
ipv6-hp-bpf-manifest-push: ## push ipv6-hp-bpf multiplat container manifest
583565
$(MAKE) manifest-push \
@@ -593,8 +575,7 @@ cni-manifest-build: ## build cni multiplat container manifest.
593575
$(MAKE) manifest-build \
594576
PLATFORMS="$(PLATFORMS)" \
595577
IMAGE=$(CNI_IMAGE) \
596-
TAG=$(CNI_VERSION) \
597-
OS_VERSIONS="$(OS_VERSIONS)"
578+
TAG=$(CNI_VERSION)
598579

599580
cni-manifest-push: ## push cni multiplat container manifest
600581
$(MAKE) manifest-push \
@@ -610,8 +591,7 @@ cns-manifest-build: ## build azure-cns multiplat container manifest.
610591
$(MAKE) manifest-build \
611592
PLATFORMS="$(PLATFORMS)" \
612593
IMAGE=$(CNS_IMAGE) \
613-
TAG=$(CNS_VERSION) \
614-
OS_VERSIONS="$(OS_VERSIONS)"
594+
TAG=$(CNS_VERSION)
615595

616596
cns-manifest-push: ## push cns multiplat container manifest
617597
$(MAKE) manifest-push \
@@ -627,8 +607,7 @@ npm-manifest-build: ## build azure-npm multiplat container manifest.
627607
$(MAKE) manifest-build \
628608
PLATFORMS="$(PLATFORMS)" \
629609
IMAGE=$(NPM_IMAGE) \
630-
TAG=$(NPM_VERSION) \
631-
OS_VERSIONS="$(OS_VERSIONS)"
610+
TAG=$(NPM_VERSION)
632611

633612
npm-manifest-push: ## push multiplat container manifest
634613
$(MAKE) manifest-push \

azure-ipam/Dockerfile

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,7 @@ FROM scratch AS linux
3737
COPY --from=dropgz /go/bin/dropgz dropgz
3838
ENTRYPOINT [ "/dropgz" ]
3939

40-
# skopeo inspect --override-os windows docker://mcr.microsoft.com/windows/nanoserver:ltsc2019 --format "{{.Name}}@{{.Digest}}"
41-
FROM mcr.microsoft.com/windows/nanoserver@sha256:7f6649348a11655e3576463fd6d55c29248f97405f8e643cab2409009339f520 AS ltsc2019
42-
43-
# skopeo inspect --override-os windows docker://mcr.microsoft.com/windows/nanoserver:ltsc2022 --format "{{.Name}}@{{.Digest}}"
44-
FROM mcr.microsoft.com/windows/nanoserver@sha256:244113e50a678a25a63930780f9ccafd22e1a37aa9e3d93295e4cebf0f170a11 AS ltsc2022
45-
46-
# skopeo inspect --override-os windows docker://mcr.microsoft.com/windows/nanoserver:ltsc2025 --format "{{.Name}}@{{.Digest}}" ## 2025 isn't tagged yet
47-
FROM mcr.microsoft.com/windows/nanoserver/insider@sha256:67e0ab7f3a79cd73be4a18bae24659c03b294aed0dbeaa624feb3810931f0bd2 AS ltsc2025
48-
49-
FROM ${OS_VERSION} AS windows
40+
# skopeo inspect docker://mcr.microsoft.com/oss/kubernetes/windows-host-process-containers-base-image:v1.0.0 --format "{{.Name}}@{{.Digest}}"
41+
FROM mcr.microsoft.com/oss/kubernetes/windows-host-process-containers-base-image@sha256:b4c9637e032f667c52d1eccfa31ad8c63f1b035e8639f3f48a510536bf34032b as windows
5042
COPY --from=dropgz /go/bin/dropgz dropgz.exe
5143
ENTRYPOINT [ "/dropgz.exe" ]

cni/Dockerfile

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -51,15 +51,7 @@ FROM scratch AS linux
5151
COPY --from=dropgz /go/bin/dropgz dropgz
5252
ENTRYPOINT [ "/dropgz" ]
5353

54-
# skopeo inspect --override-os windows docker://mcr.microsoft.com/windows/nanoserver:ltsc2019 --format "{{.Name}}@{{.Digest}}"
55-
FROM mcr.microsoft.com/windows/nanoserver@sha256:7f6649348a11655e3576463fd6d55c29248f97405f8e643cab2409009339f520 AS ltsc2019
56-
57-
# skopeo inspect --override-os windows docker://mcr.microsoft.com/windows/nanoserver:ltsc2022 --format "{{.Name}}@{{.Digest}}"
58-
FROM mcr.microsoft.com/windows/nanoserver@sha256:244113e50a678a25a63930780f9ccafd22e1a37aa9e3d93295e4cebf0f170a11 AS ltsc2022
59-
60-
# skopeo inspect --override-os windows docker://mcr.microsoft.com/windows/nanoserver:ltsc2025 --format "{{.Name}}@{{.Digest}}" ## 2025 isn't tagged yet
61-
FROM mcr.microsoft.com/windows/nanoserver/insider@sha256:67e0ab7f3a79cd73be4a18bae24659c03b294aed0dbeaa624feb3810931f0bd2 AS ltsc2025
62-
63-
FROM ${OS_VERSION} as windows
54+
# skopeo inspect docker://mcr.microsoft.com/oss/kubernetes/windows-host-process-containers-base-image:v1.0.0 --format "{{.Name}}@{{.Digest}}"
55+
FROM mcr.microsoft.com/oss/kubernetes/windows-host-process-containers-base-image@sha256:b4c9637e032f667c52d1eccfa31ad8c63f1b035e8639f3f48a510536bf34032b as windows
6456
COPY --from=dropgz /go/bin/dropgz dropgz.exe
6557
ENTRYPOINT [ "/dropgz.exe" ]

cns/Dockerfile

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -30,16 +30,8 @@ COPY --from=builder /go/bin/azure-cns /usr/local/bin/azure-cns
3030
ENTRYPOINT [ "/usr/local/bin/azure-cns" ]
3131
EXPOSE 10090
3232

33-
# skopeo inspect --override-os windows docker://mcr.microsoft.com/windows/nanoserver:ltsc2019 --format "{{.Name}}@{{.Digest}}"
34-
FROM mcr.microsoft.com/windows/nanoserver@sha256:7f6649348a11655e3576463fd6d55c29248f97405f8e643cab2409009339f520 AS ltsc2019
35-
36-
# skopeo inspect --override-os windows docker://mcr.microsoft.com/windows/nanoserver:ltsc2022 --format "{{.Name}}@{{.Digest}}"
37-
FROM mcr.microsoft.com/windows/nanoserver@sha256:244113e50a678a25a63930780f9ccafd22e1a37aa9e3d93295e4cebf0f170a11 AS ltsc2022
38-
39-
# skopeo inspect --override-os windows docker://mcr.microsoft.com/windows/nanoserver:ltsc2025 --format "{{.Name}}@{{.Digest}}" ## 2025 isn't tagged yet
40-
FROM mcr.microsoft.com/windows/nanoserver/insider@sha256:67e0ab7f3a79cd73be4a18bae24659c03b294aed0dbeaa624feb3810931f0bd2 AS ltsc2025
41-
42-
FROM ${OS_VERSION} AS windows
33+
# skopeo inspect docker://mcr.microsoft.com/oss/kubernetes/windows-host-process-containers-base-image:v1.0.0 --format "{{.Name}}@{{.Digest}}"
34+
FROM mcr.microsoft.com/oss/kubernetes/windows-host-process-containers-base-image@sha256:b4c9637e032f667c52d1eccfa31ad8c63f1b035e8639f3f48a510536bf34032b as windows
4335
COPY --from=builder /azure-container-networking/cns/kubeconfigtemplate.yaml kubeconfigtemplate.yaml
4436
COPY --from=builder /azure-container-networking/npm/examples/windows/setkubeconfigpath.ps1 setkubeconfigpath.ps1
4537
COPY --from=builder /go/bin/azure-cns /azure-cns.exe

npm/windows.Dockerfile

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@ COPY . .
88
RUN GOOS=windows CGO_ENABLED=0 go build -v -o /usr/local/bin/azure-npm.exe -ldflags "-X main.version="$VERSION" -X "$NPM_AI_PATH"="$NPM_AI_ID"" -gcflags="-dwarflocationlists=true" npm/cmd/*.go
99

1010
# intermediate for win-ltsc2022
11-
FROM mcr.microsoft.com/windows/servercore@sha256:45952938708fbde6ec0b5b94de68bcdec3f8c838be018536b1e9e5bd95e6b943 as ltsc2022
12-
13-
FROM ${OS_VERSION} as windows
11+
FROM mcr.microsoft.com/windows/servercore@sha256:45952938708fbde6ec0b5b94de68bcdec3f8c838be018536b1e9e5bd95e6b943 as windows
1412
COPY --from=builder /usr/local/src/npm/examples/windows/kubeconfigtemplate.yaml kubeconfigtemplate.yaml
1513
COPY --from=builder /usr/local/src/npm/examples/windows/setkubeconfigpath.ps1 setkubeconfigpath.ps1
1614
COPY --from=builder /usr/local/src/npm/examples/windows/setkubeconfigpath-capz.ps1 setkubeconfigpath-capz.ps1

0 commit comments

Comments
 (0)