Skip to content

Commit 80a215c

Browse files
authored
Merge branch 'spectro-master' into PCP-1956_v1
2 parents ea9b5e9 + a3aad22 commit 80a215c

File tree

5 files changed

+51
-16
lines changed

5 files changed

+51
-16
lines changed

.github/workflows/spectro-release.yaml

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@ on:
77
description: 'Cluster API Version to Build'
88
required: true
99
default: '0.0.0'
10+
rel_type:
11+
type: choice
12+
description: Type of release
13+
options:
14+
- release
15+
- rc
1016
jobs:
1117
builder:
1218
# edge-runner machine group is a bunch of machines in US Datacenter
@@ -15,6 +21,8 @@ jobs:
1521
# Ensure that the credentials are provided as encrypted secrets
1622
env:
1723
SPECTRO_VERSION: ${{ github.event.inputs.release_version }}
24+
LEGACY_REGISTRY: gcr.io/spectro-images-public/release/cluster-api-openstack
25+
FIPS_REGISTRY: gcr.io/spectro-images-public/release-fips/cluster-api-openstack
1826
steps:
1927
-
2028
uses: mukunku/[email protected]
@@ -26,6 +34,11 @@ jobs:
2634
run: |
2735
echo "Tag already exists for v${{ github.event.inputs.release_version }}-spectro..."
2836
exit 1
37+
-
38+
if: ${{ github.event.inputs.rel_type == 'rc' }}
39+
run: |
40+
echo "LEGACY_REGISTRY=gcr.io/spectro-dev-public/release/cluster-api-openstack" >> $GITHUB_ENV
41+
echo "FIPS_REGISTRY=gcr.io/spectro-dev-public/release-fips/cluster-api-openstack" >> $GITHUB_ENV
2942
-
3043
uses: actions/checkout@v3
3144
-
@@ -41,20 +54,21 @@ jobs:
4154
-
4255
name: Build Image
4356
env:
44-
REGISTRY: gcr.io/spectro-images-public/release/cluster-api-openstack
57+
REGISTRY: ${{ env.LEGACY_REGISTRY }}
4558
run: |
4659
make docker-build-all
4760
make docker-push-all
4861
-
4962
name: Build Image - FIPS Mode
5063
env:
5164
FIPS_ENABLE: yes
52-
REGISTRY: gcr.io/spectro-images-public/release-fips/cluster-api-openstack
65+
REGISTRY: ${{ env.FIPS_REGISTRY }}
5366
run: |
5467
make docker-build-all
5568
make docker-push-all
5669
-
5770
name: Create Release
71+
if: ${{ github.event.inputs.rel_type == 'release' }}
5872
id: create_release
5973
uses: actions/create-release@v1
6074
env:
@@ -63,6 +77,6 @@ jobs:
6377
tag_name: v${{ github.event.inputs.release_version }}-spectro
6478
release_name: Release v${{ github.event.inputs.release_version }}-spectro
6579
body: |
66-
Release version ${{ github.event.inputs.release_version }}
80+
Release version v${{ github.event.inputs.release_version }}-spectro
6781
draft: false
6882
prerelease: false

Dockerfile

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,9 @@
1515
# limitations under the License.
1616

1717
# Build the manager binary
18-
FROM golang:1.19.10-alpine3.18 as builder
19-
WORKDIR /workspace
18+
ARG BUILDER_GOLANG_VERSION
19+
# First stage: build the executable.
20+
FROM --platform=$TARGETPLATFORM gcr.io/spectro-images-public/golang:${BUILDER_GOLANG_VERSION}-alpine as toolchain
2021

2122
ARG CRYPTO_LIB
2223
ENV GOEXPERIMENT=${CRYPTO_LIB:+boringcrypto}
@@ -25,6 +26,9 @@ ENV GOEXPERIMENT=${CRYPTO_LIB:+boringcrypto}
2526
ARG goproxy=https://proxy.golang.org
2627
ENV GOPROXY=$goproxy
2728

29+
FROM toolchain as builder
30+
WORKDIR /workspace
31+
2832
RUN apk update
2933
RUN apk add git gcc g++ curl
3034

@@ -34,8 +38,9 @@ COPY go.sum go.sum
3438

3539
# Cache deps before building and copying source so that we don't need to re-download as much
3640
# and so that source changes don't invalidate our downloaded layer
37-
RUN --mount=type=cache,target=/go/pkg/mod \
38-
go mod download
41+
RUN --mount=type=cache,target=/root/.local/share/golang \
42+
--mount=type=cache,target=/go/pkg/mod \
43+
go mod download
3944

4045
# Copy the sources
4146
COPY ./ ./
@@ -46,16 +51,23 @@ ARG ARCH
4651
ARG ldflags
4752

4853
# Do not force rebuild of up-to-date packages (do not use -a) and use the compiler cache folder
49-
RUN if [ "${CRYPTO_LIB}" ]; \
50-
then \
51-
CGO_ENABLED=1 GOOS=linux GOARCH=${ARCH} GO111MODULE=on go build -ldflags "-linkmode=external -extldflags '-static'" -a -o manager ${package}; \
52-
else \
53-
CGO_ENABLED=0 GOARCH=amd64 GO111MODULE=on go build -ldflags "-extldflags=-static" -a -o manager "${package}" ;\
54-
fi
54+
RUN --mount=type=cache,target=/root/.cache/go-build \
55+
--mount=type=cache,target=/go/pkg/mod \
56+
--mount=type=cache,target=/root/.local/share/golang \
57+
if [ ${CRYPTO_LIB} ];\
58+
then \
59+
GOARCH=${ARCH} go-build-fips.sh -a -o manager . ;\
60+
else \
61+
GOARCH=${ARCH} go-build-static.sh -a -o manager . ;\
62+
fi
63+
64+
RUN if [ "${CRYPTO_LIB}" ]; then assert-static.sh manager; fi
65+
RUN if [ "${CRYPTO_LIB}" ]; then assert-fips.sh manager; fi
66+
RUN scan-govulncheck.sh manager
5567

5668

5769
# Production image
58-
FROM gcr.io/distroless/static:nonroot
70+
FROM gcr.io/distroless/static:latest
5971
WORKDIR /
6072
COPY --from=builder /workspace/manager .
6173
# Use uid of nonroot user (65532) because kubernetes expects numeric user when applying pod security policies

Makefile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ endif
8080
# Release variables
8181
SPECTRO_VERSION ?= 4.0.0-dev
8282
FIPS_ENABLE ?= ""
83+
BUILDER_GOLANG_VERSION ?= 1.21
84+
BUILD_ARGS = --build-arg CRYPTO_LIB=${FIPS_ENABLE} --build-arg BUILDER_GOLANG_VERSION=${BUILDER_GOLANG_VERSION}
8385

8486
RELEASE_LOC := release
8587
ifeq ($(FIPS_ENABLE),yes)
@@ -97,7 +99,7 @@ RELEASE_DIR := out
9799
TAG ?= v0.6.2-spectro-${SPECTRO_VERSION}
98100
ARCH ?= amd64
99101
#ALL_ARCH ?= amd64 arm arm64 ppc64le s390x
100-
ALL_ARCH = amd64
102+
ALL_ARCH = amd64 arm64
101103

102104
# main controller
103105
IMAGE_NAME ?= capi-openstack-controller

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module sigs.k8s.io/cluster-api-provider-openstack
22

3-
go 1.19
3+
go 1.21
44

55
require (
66
github.com/go-logr/logr v1.2.3

go.sum

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7
4747
github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
4848
github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8=
4949
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8=
50+
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
5051
github.com/Azure/go-autorest v10.8.1+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
5152
github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
5253
github.com/Azure/go-autorest/autorest v0.11.1/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw=
@@ -356,6 +357,7 @@ github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbV
356357
github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0=
357358
github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
358359
github.com/go-logr/zapr v1.2.3 h1:a9vnzlIBPQBBkeaR9IuMUfmVOrQlkoC4YfPoFkX3T7A=
360+
github.com/go-logr/zapr v1.2.3/go.mod h1:eIauM6P8qSvTw5o2ez6UEAfGjQKrxQTl5EoK+Qa2oG4=
359361
github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
360362
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
361363
github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY=
@@ -645,6 +647,7 @@ github.com/moby/sys/mountinfo v0.4.1/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2J
645647
github.com/moby/sys/symlink v0.1.0/go.mod h1:GGDODQmbFOjFsXvfLVn3+ZRxkch54RkSiGqsZeMYowQ=
646648
github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo=
647649
github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6 h1:dcztxKSvZ4Id8iPpHERQBbIJfabdt4wUm5qy3wOL2Zc=
650+
github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw=
648651
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
649652
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
650653
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
@@ -653,6 +656,7 @@ github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3Rllmb
653656
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
654657
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
655658
github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A=
659+
github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
656660
github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ=
657661
github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
658662
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
@@ -679,6 +683,7 @@ github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9k
679683
github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
680684
github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU=
681685
github.com/onsi/ginkgo/v2 v2.1.4 h1:GNapqRSid3zijZ9H77KrgVG4/8KqiyRsxcSxe+7ApXY=
686+
github.com/onsi/ginkgo/v2 v2.1.4/go.mod h1:um6tUpWM/cxCK3/FK8BXqEiUMUwRgSM4JXG47RKZmLU=
682687
github.com/onsi/gomega v0.0.0-20151007035656-2152b45fa28a/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
683688
github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
684689
github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
@@ -896,12 +901,14 @@ go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
896901
go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
897902
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
898903
go.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA=
904+
go.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
899905
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
900906
go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4=
901907
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
902908
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
903909
go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo=
904910
go.uber.org/zap v1.21.0 h1:WefMeulhovoZ2sYXz7st6K0sLj7bBhpiFaud4r4zST8=
911+
go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw=
905912
golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
906913
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
907914
golang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=

0 commit comments

Comments
 (0)