Skip to content

Commit 87b2e70

Browse files
committed
Added validation to check if a image is being built for OKD
1 parent 2d04a2c commit 87b2e70

File tree

5 files changed

+30
-3
lines changed

5 files changed

+30
-3
lines changed

build/root/Makefile

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ PRINT_HELP ?=
3939
WHAT ?=
4040
TESTS ?=
4141
BRANCH ?=
42+
TAGS ?=
43+
GO_BUILD_FLAGS := $(if ${TAGS},-tags=${TAGS},)
4244

4345
# We don't need make's built-in rules.
4446
MAKEFLAGS += --no-builtin-rules
@@ -61,6 +63,11 @@ $(error Both KUBE_GOFLAGS and GOFLAGS are set. Please use just GOFLAGS)
6163
endif
6264
endif
6365

66+
# Add build tags to GOFLAGS
67+
ifneq ($(TAGS),)
68+
GOFLAGS := $(GOFLAGS) $(GO_BUILD_FLAGS)
69+
endif
70+
6471
# This controls the verbosity of the build. Higher numbers mean more output.
6572
KUBE_VERBOSE ?= 1
6673

openshift-hack/images/hyperkube/Dockerfile.rhel

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
FROM registry.ci.openshift.org/ocp/builder:rhel-9-golang-1.24-openshift-4.20 AS builder
2+
ARG TAGS=""
23
WORKDIR /go/src/k8s.io/kubernetes
34
COPY . .
4-
RUN make WHAT='cmd/kube-apiserver cmd/kube-controller-manager cmd/kube-scheduler cmd/kubelet cmd/watch-termination openshift-hack/cmd/k8s-tests-ext' && \
5+
RUN make TAGS="${TAGS}" WHAT='cmd/kube-apiserver cmd/kube-controller-manager cmd/kube-scheduler cmd/kubelet cmd/watch-termination openshift-hack/cmd/k8s-tests-ext' && \
56
mkdir -p /tmp/build && \
67
cp openshift-hack/images/hyperkube/hyperkube openshift-hack/images/hyperkube/kubensenter /tmp/build && \
78
cp /go/src/k8s.io/kubernetes/_output/local/bin/linux/$(go env GOARCH)/{kube-apiserver,kube-controller-manager,kube-scheduler,kubelet,watch-termination,k8s-tests-ext} \

openshift-kube-apiserver/admission/customresourcevalidation/features/validate_features.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313

1414
configv1 "github.com/openshift/api/config/v1"
1515
"k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation"
16+
"k8s.io/kubernetes/openshift-kube-apiserver/version"
1617
)
1718

1819
const PluginName = "config.openshift.io/ValidateFeatureGate"
@@ -52,8 +53,8 @@ type featureGateV1 struct {
5253

5354
func validateOKDFeatureSet(spec configv1.FeatureGateSpec) field.ErrorList {
5455
allErrs := field.ErrorList{}
55-
if spec.FeatureSet == configv1.OKD {
56-
allErrs = append(allErrs, field.NotSupported(field.NewPath("spec.featureSet"), spec.FeatureSet, []string{"OKD"}))
56+
if spec.FeatureSet == configv1.OKD && !version.IsSCOS() {
57+
allErrs = append(allErrs, field.Forbidden(field.NewPath("spec.featureSet"), "OKD featureset is not supported on OpenShift clusters"))
5758
}
5859

5960
return allErrs
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
//go:build scos
2+
3+
package version
4+
5+
func init() {
6+
SCOS = true
7+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package version
2+
3+
var (
4+
// SCOS is a setting to enable CentOS Stream CoreOS-only modifications
5+
SCOS = false
6+
)
7+
8+
// IsSCOS returns true if CentOS Stream CoreOS-only modifications are enabled
9+
func IsSCOS() bool {
10+
return SCOS
11+
}

0 commit comments

Comments
 (0)