Skip to content

Commit 2c07ce6

Browse files
authored
Merge pull request #17658 from justinsb/one_version
fix: use kopsbase.Version instead of kopsbase.KOPS_RELEASE_VERSION
2 parents 3f67b45 + fe7b09e commit 2c07ce6

File tree

15 files changed

+59
-116
lines changed

15 files changed

+59
-116
lines changed

Makefile

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ unexport AZURE_CLIENT_ID AZURE_CLIENT_SECRET AZURE_STORAGE_ACCOUNT AZURE_SUBSCRI
5454

5555

5656
VERSION=$(shell tools/get_version.sh | grep VERSION | awk '{print $$2}')
57+
IMAGE_TAG=$(shell tools/get_version.sh | grep IMAGE_TAG | awk '{print $$2}')
5758

58-
KOPS_RELEASE_VERSION:=$(shell grep 'KOPS_RELEASE_VERSION\s*=' kops-version.go | awk '{print $$3}' | sed -e 's_"__g')
5959
KOPS_CI_VERSION:=$(shell grep 'KOPS_CI_VERSION\s*=' kops-version.go | awk '{print $$3}' | sed -e 's_"__g')
6060

6161
# kops local location
@@ -66,17 +66,13 @@ GITSHA := $(shell cd ${KOPS_ROOT}; git describe --always)
6666
# We lock the versions of our controllers also
6767
# We need to keep in sync with:
6868
# pkg/model/components/etcdmanager/model.go
69-
KOPS_UTILS_CP_TAG=1.34.0-beta.1
70-
KOPS_UTILS_CP_PUSH_TAG=$(shell tools/get_workspace_status.sh | grep STABLE_KOPS_UTILS_CP_TAG | awk '{print $$2}')
69+
KOPS_UTILS_CP_TAG=$(IMAGE_TAG)
7170
# upup/models/cloudup/resources/addons/dns-controller/
72-
DNS_CONTROLLER_TAG=1.34.0-beta.1
73-
DNS_CONTROLLER_PUSH_TAG=$(shell tools/get_workspace_status.sh | grep STABLE_DNS_CONTROLLER_TAG | awk '{print $$2}')
71+
DNS_CONTROLLER_TAG=$(IMAGE_TAG)
7472
# upup/models/cloudup/resources/addons/kops-controller.addons.k8s.io/
75-
KOPS_CONTROLLER_TAG=1.34.0-beta.1
76-
KOPS_CONTROLLER_PUSH_TAG=$(shell tools/get_workspace_status.sh | grep STABLE_KOPS_CONTROLLER_TAG | awk '{print $$2}')
73+
KOPS_CONTROLLER_TAG=$(IMAGE_TAG)
7774
# pkg/model/components/kubeapiserver/model.go
78-
KUBE_APISERVER_HEALTHCHECK_TAG=1.34.0-beta.1
79-
KUBE_APISERVER_HEALTHCHECK_PUSH_TAG=$(shell tools/get_workspace_status.sh | grep STABLE_KUBE_APISERVER_HEALTHCHECK_TAG | awk '{print $$2}')
75+
KUBE_APISERVER_HEALTHCHECK_TAG=$(IMAGE_TAG)
8076

8177
CGO_ENABLED=0
8278
export CGO_ENABLED
@@ -261,9 +257,7 @@ gcs-upload-and-tag: gsutil gcs-upload
261257
gsutil -h "Cache-Control:private, max-age=0, no-transform" cp ${UPLOAD}/latest.txt ${GCS_LOCATION}${LATEST_FILE}
262258

263259
# gcs-publish-ci is the entry point for CI testing
264-
# In CI testing, always upload the CI version.
265260
.PHONY: gcs-publish-ci
266-
gcs-publish-ci: VERSION := ${KOPS_CI_VERSION}+${GITSHA}
267261
gcs-publish-ci: gsutil version-dist-ci
268262
@echo "== Uploading kops =="
269263
gsutil -h "Cache-Control:private, max-age=0, no-transform" -m cp -n -r ${UPLOAD}/kops/* ${GCS_LOCATION}
@@ -308,14 +302,14 @@ dns-controller-push: ko-dns-controller-push
308302

309303
.PHONY: ko-dns-controller-push
310304
ko-dns-controller-push:
311-
KO_DOCKER_REPO="${DOCKER_REGISTRY}/${DOCKER_IMAGE_PREFIX}dns-controller" GOFLAGS="-tags=peer_name_alternative,peer_name_hash" ${KO} build --tags ${DNS_CONTROLLER_PUSH_TAG} --platform=linux/amd64,linux/arm64 --bare ./dns-controller/cmd/dns-controller/
305+
KO_DOCKER_REPO="${DOCKER_REGISTRY}/${DOCKER_IMAGE_PREFIX}dns-controller" GOFLAGS="-tags=peer_name_alternative,peer_name_hash" ${KO} build --tags ${DNS_CONTROLLER_TAG} --platform=linux/amd64,linux/arm64 --bare ./dns-controller/cmd/dns-controller/
312306

313307
.PHONY: kops-utils-cp-push
314308
kops-utils-cp-push: ko-kops-utils-cp-push
315309

316310
.PHONY: ko-kops-utils-cp-push
317311
ko-kops-utils-cp-push:
318-
KO_DOCKER_REPO="${DOCKER_REGISTRY}/${DOCKER_IMAGE_PREFIX}kops-utils-cp" ${KO} build --tags ${KOPS_UTILS_CP_PUSH_TAG} --platform=linux/amd64,linux/arm64 --bare ./cmd/kops-utils-cp/
312+
KO_DOCKER_REPO="${DOCKER_REGISTRY}/${DOCKER_IMAGE_PREFIX}kops-utils-cp" ${KO} build --tags ${KOPS_UTILS_CP_TAG} --platform=linux/amd64,linux/arm64 --bare ./cmd/kops-utils-cp/
319313

320314
# --------------------------------------------------
321315
# development targets
@@ -410,6 +404,8 @@ quick-ci: verify-crds verify-goimports govet verify-boilerplate verify-versions
410404
# --------------------------------------------------
411405
# release tasks
412406

407+
KOPS_RELEASE_VERSION:=$(shell grep 'KOPS_RELEASE_VERSION\s*=' kops-version.go | awk '{print $$3}' | sed -e 's_"__g')
408+
413409
.PHONY: release-tag
414410
release-tag:
415411
git tag v${KOPS_RELEASE_VERSION}
@@ -762,7 +758,7 @@ kops-controller-push: ko-kops-controller-push
762758

763759
.PHONY: ko-kops-controller-push
764760
ko-kops-controller-push:
765-
KO_DOCKER_REPO="${DOCKER_REGISTRY}/${DOCKER_IMAGE_PREFIX}kops-controller" ${KO} build --tags ${KOPS_CONTROLLER_PUSH_TAG} --platform=linux/amd64,linux/arm64 --bare ./cmd/kops-controller/
761+
KO_DOCKER_REPO="${DOCKER_REGISTRY}/${DOCKER_IMAGE_PREFIX}kops-controller" ${KO} build --tags ${KOPS_CONTROLLER_TAG} --platform=linux/amd64,linux/arm64 --bare ./cmd/kops-controller/
766762

767763
#------------------------------------------------------
768764
# kube-apiserver-healthcheck
@@ -772,7 +768,7 @@ kube-apiserver-healthcheck-push: ko-kube-apiserver-healthcheck-push
772768

773769
.PHONY: ko-kube-apiserver-healthcheck-push
774770
ko-kube-apiserver-healthcheck-push:
775-
KO_DOCKER_REPO="${DOCKER_REGISTRY}/${DOCKER_IMAGE_PREFIX}kube-apiserver-healthcheck" ${KO} build --tags ${KUBE_APISERVER_HEALTHCHECK_PUSH_TAG} --platform=linux/amd64,linux/arm64 --bare ./cmd/kube-apiserver-healthcheck/
771+
KO_DOCKER_REPO="${DOCKER_REGISTRY}/${DOCKER_IMAGE_PREFIX}kube-apiserver-healthcheck" ${KO} build --tags ${KUBE_APISERVER_HEALTHCHECK_TAG} --platform=linux/amd64,linux/arm64 --bare ./cmd/kube-apiserver-healthcheck/
776772

777773
#------------------------------------------------------
778774
# CloudBuild artifacts

cmd/kops/create_cluster.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -907,7 +907,7 @@ func completeZone(options *CreateClusterOptions, rootCommand *RootCmd) func(cmd
907907
}
908908

909909
func completeKubernetesVersion(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
910-
kopsVersion, err := kopsutil.ParseKubernetesVersion(kopsbase.KOPS_RELEASE_VERSION)
910+
kopsVersion, err := kopsutil.ParseKubernetesVersion(kopsbase.Version)
911911
if err != nil {
912912
commandutils.CompletionError("parsing kops version", err)
913913
}

hack/.shellcheck_failures

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,3 @@
55
./hooks/nvidia-device-plugin/image/files/nvidia-device-plugin.sh
66
./hooks/nvidia-device-plugin/image/run.sh
77
./hooks/prepull-images/image/run.sh
8-
./tools/get_workspace_status.sh

hack/set-version

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,6 @@ KOPS_CI_VERSION=`grep 'KOPS_CI_VERSION\s*=' kops-version.go | awk '{print $3}'
5656
echo "KOPS_RELEASE_VERSION ${KOPS_RELEASE_VERSION} -> ${NEW_RELEASE_VERSION}"
5757
echo "KOPS_CI_VERSION ${KOPS_CI_VERSION} -> ${NEW_CI_VERSION}"
5858

59-
sed -i.bak -e "s@KOPS_UTILS_CP_TAG=${KOPS_RELEASE_VERSION}@KOPS_UTILS_CP_TAG=${NEW_RELEASE_VERSION}@g" Makefile
60-
sed -i.bak -e "s@DNS_CONTROLLER_TAG=${KOPS_RELEASE_VERSION}@DNS_CONTROLLER_TAG=${NEW_RELEASE_VERSION}@g" Makefile
61-
sed -i.bak -e "s@KOPS_CONTROLLER_TAG=${KOPS_RELEASE_VERSION}@KOPS_CONTROLLER_TAG=${NEW_RELEASE_VERSION}@g" Makefile
62-
sed -i.bak -e "s@KUBE_APISERVER_HEALTHCHECK_TAG=${KOPS_RELEASE_VERSION}@KUBE_APISERVER_HEALTHCHECK_TAG=${NEW_RELEASE_VERSION}@g" Makefile
63-
sed -i.bak -e "s@\"${KOPS_RELEASE_VERSION}\"@\"${NEW_RELEASE_VERSION}\"@g" upup/pkg/fi/cloudup/bootstrapchannelbuilder/bootstrapchannelbuilder.go
6459
sed -i.bak -e "s@${KOPS_RELEASE_VERSION}@${NEW_RELEASE_VERSION}@g" pkg/nodemodel/wellknownassets/kopsassets_test.go
6560

6661
git grep -l registry.k8s.io/kops/dns-controller | xargs -I {} sed -i.bak -e "s@dns-controller:${KOPS_RELEASE_VERSION}@dns-controller:${NEW_RELEASE_VERSION}@g" {}

kops-version.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,18 @@ limitations under the License.
1616

1717
package kops
1818

19+
import "strings"
20+
1921
// Version can be replaced by build tooling
2022
var Version = KOPS_RELEASE_VERSION
2123

24+
// KopsVersionImageTag is like Version, but with + replaced by - (so it can be used in docker tags)
25+
func KopsVersionImageTag() string {
26+
tag := Version
27+
// We replace + with - so that we can use the tag in docker image tags
28+
return strings.ReplaceAll(tag, "+", "-")
29+
}
30+
2231
// These constants are parsed by build tooling - be careful about changing the formats
2332
const (
2433
KOPS_RELEASE_VERSION = "1.34.0-beta.1"

pkg/apis/kops/channel.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -403,9 +403,9 @@ func (c *Channel) GetPackageVersion(name string, kubernetesVersion *semver.Versi
403403
}
404404

405405
if pkg.KopsVersion != "" {
406-
kopsVersion, err := util.ParseVersion(kopsbase.KOPS_RELEASE_VERSION)
406+
kopsVersion, err := util.ParseVersion(kopsbase.Version)
407407
if err != nil {
408-
return nil, fmt.Errorf("parsing kops version %q: %w", kopsbase.KOPS_RELEASE_VERSION, err)
408+
return nil, fmt.Errorf("parsing kops version %q: %w", kopsbase.Version, err)
409409
}
410410

411411
versionRange, err := semver.ParseRange(pkg.KopsVersion)

pkg/model/components/etcdmanager/model.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"k8s.io/apimachinery/pkg/api/resource"
2727
"k8s.io/apimachinery/pkg/util/sets"
2828
"k8s.io/klog/v2"
29+
kopsversion "k8s.io/kops"
2930
"k8s.io/kops/pkg/apis/kops"
3031
"k8s.io/kops/pkg/assets"
3132
"k8s.io/kops/pkg/featureflag"
@@ -208,7 +209,7 @@ spec:
208209
emptyDir: {}
209210
`
210211

211-
const kopsUtilsImage = "registry.k8s.io/kops/kops-utils-cp:1.34.0-beta.1"
212+
var kopsUtilsImage = "registry.k8s.io/kops/kops-utils-cp:" + kopsversion.KopsVersionImageTag()
212213

213214
// buildPod creates the pod spec, based on the EtcdClusterSpec
214215
func (b *EtcdManagerBuilder) buildPod(etcdCluster kops.EtcdClusterSpec, instanceGroupName string) (*v1.Pod, error) {

pkg/model/components/kubeapiserver/model.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"fmt"
2121

2222
corev1 "k8s.io/api/core/v1"
23+
kopsversion "k8s.io/kops"
2324
"k8s.io/kops/pkg/apis/kops"
2425
"k8s.io/kops/pkg/assets"
2526
"k8s.io/kops/pkg/k8scodecs"
@@ -80,7 +81,7 @@ kind: Pod
8081
spec:
8182
containers:
8283
- name: healthcheck
83-
image: registry.k8s.io/kops/kube-apiserver-healthcheck:1.34.0-beta.1
84+
image: registry.k8s.io/kops/kube-apiserver-healthcheck:%s
8485
livenessProbe:
8586
httpGet:
8687
# The sidecar serves a healthcheck on the same port,
@@ -113,7 +114,7 @@ spec:
113114
func (b *KubeApiserverBuilder) buildHealthcheckSidecar() (*corev1.Pod, error) {
114115
// TODO: pull from bundle
115116
bundle := "(embedded kube-apiserver-healthcheck manifest)"
116-
manifest := []byte(fmt.Sprintf(defaultManifest, wellknownports.KubeAPIServerHealthCheck))
117+
manifest := []byte(fmt.Sprintf(defaultManifest, kopsversion.KopsVersionImageTag(), wellknownports.KubeAPIServerHealthCheck))
117118

118119
var pod *corev1.Pod
119120
var container *corev1.Container

tests/e2e/kubetest2-kops/builder/build.go

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,15 +83,25 @@ func (b *BuildOptions) Build() (*BuildResults, error) {
8383
return results, nil
8484
}
8585

86-
cmd := exec.Command("make", "gcs-publish-ci")
87-
cmd.SetEnv(
86+
args := []string{"make", "gcs-publish-ci"}
87+
cmd := exec.Command(args[0], args[1:]...)
88+
env := []string{
8889
fmt.Sprintf("HOME=%v", os.Getenv("HOME")),
8990
fmt.Sprintf("PATH=%v", os.Getenv("PATH")),
9091
fmt.Sprintf("GCS_LOCATION=%v", gcsLocation),
9192
fmt.Sprintf("GOPATH=%v", os.Getenv("GOPATH")),
92-
)
93+
}
94+
// We need to "forward" some variables, in particular the variables like "CI" that change the version we use
95+
for _, k := range []string{"CI"} {
96+
v := os.Getenv(k)
97+
if v != "" {
98+
env = append(env, fmt.Sprintf("%s=%s", k, v))
99+
}
100+
}
101+
cmd.SetEnv(env...)
93102
cmd.SetDir(b.KopsRoot)
94103
exec.InheritOutput(cmd)
104+
klog.Infof("Executing %q (in %v) with env %v", strings.Join(args, " "), b.KopsRoot, env)
95105
if err := cmd.Run(); err != nil {
96106
return nil, err
97107
}

tools/get_version.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,7 @@ if [[ -n "${CI}" ]]; then
4444
fi
4545

4646
echo "VERSION ${VERSION}"
47+
48+
# IMAGE_TAG is like VERSION, but with + replaced by - (so it can be used in docker tags)
49+
IMAGE_TAG="${VERSION/+/-}"
50+
echo "IMAGE_TAG ${IMAGE_TAG}"

0 commit comments

Comments
 (0)