Skip to content

Commit 8e8fb72

Browse files
Merge pull request openshift#6990 from deads2k/featuregates
pass featuregate args to config-operator to get rendered featuregates
2 parents 2ffd73e + 07da028 commit 8e8fb72

File tree

2 files changed

+60
-61
lines changed

2 files changed

+60
-61
lines changed

data/data/bootstrap/files/usr/local/bin/bootkube.sh.template

Lines changed: 37 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,43 @@ then
7878
record_service_stage_success
7979
fi
8080

81+
if [ ! -f config-bootstrap.done ]
82+
then
83+
record_service_stage_start "config-bootstrap"
84+
echo "Rendering cluster config manifests..."
85+
86+
rm --recursive --force config-bootstrap
87+
88+
ADDITIONAL_FLAGS=()
89+
if [ -f "$PWD/manifests/cloud-provider-config.yaml" ]; then
90+
ADDITIONAL_FLAGS+=("--cloud-provider-config-input-file=/assets/manifests/cloud-provider-config.yaml")
91+
fi
92+
{{- if .FeatureSet }}
93+
ADDITIONAL_FLAGS+=("--feature-set={{.FeatureSet}}")
94+
{{- end}}
95+
VERSION="$(oc adm release info -o 'jsonpath={.metadata.version}' "${RELEASE_IMAGE_DIGEST}")"
96+
97+
bootkube_podman_run \
98+
--name config-render \
99+
--volume "$PWD:/assets:z" \
100+
"${CONFIG_OPERATOR_IMAGE}" \
101+
/usr/bin/cluster-config-operator render \
102+
--cluster-infrastructure-input-file=/assets/manifests/cluster-infrastructure-02-config.yml \
103+
--cloud-provider-config-output-file=/assets/config-bootstrap/cloud-provider-config-generated.yaml \
104+
--config-output-file=/assets/config-bootstrap/config \
105+
--asset-input-dir=/assets/tls \
106+
--asset-output-dir=/assets/config-bootstrap \
107+
--featuregate-manifest=/assets/manifests/99_feature-gate.yaml \
108+
--rendered-manifest-files=/assets/manifests \
109+
--payload-version=$VERSION \
110+
"${ADDITIONAL_FLAGS[@]}"
111+
112+
cp config-bootstrap/manifests/* manifests/
113+
114+
touch config-bootstrap.done
115+
record_service_stage_success
116+
fi
117+
81118
if [ ! -f cvo-bootstrap.done ]
82119
then
83120
record_service_stage_start "cvo-bootstrap"
@@ -135,39 +172,6 @@ then
135172
record_service_stage_success
136173
fi
137174

138-
if [ ! -f config-bootstrap.done ]
139-
then
140-
record_service_stage_start "config-bootstrap"
141-
echo "Rendering cluster config manifests..."
142-
143-
rm --recursive --force config-bootstrap
144-
145-
ADDITIONAL_FLAGS=()
146-
if [ -f "$PWD/manifests/cloud-provider-config.yaml" ]; then
147-
ADDITIONAL_FLAGS+=("--cloud-provider-config-input-file=/assets/manifests/cloud-provider-config.yaml")
148-
fi
149-
{{- if .FeatureSet }}
150-
ADDITIONAL_FLAGS+=("--feature-set={{.FeatureSet}}")
151-
{{- end}}
152-
153-
bootkube_podman_run \
154-
--name config-render \
155-
--volume "$PWD:/assets:z" \
156-
"${CONFIG_OPERATOR_IMAGE}" \
157-
/usr/bin/cluster-config-operator render \
158-
--cluster-infrastructure-input-file=/assets/manifests/cluster-infrastructure-02-config.yml \
159-
--cloud-provider-config-output-file=/assets/config-bootstrap/cloud-provider-config-generated.yaml \
160-
--config-output-file=/assets/config-bootstrap/config \
161-
--asset-input-dir=/assets/tls \
162-
--asset-output-dir=/assets/config-bootstrap \
163-
"${ADDITIONAL_FLAGS[@]}"
164-
165-
cp config-bootstrap/manifests/* manifests/
166-
167-
touch config-bootstrap.done
168-
record_service_stage_success
169-
fi
170-
171175
if [ ! -f kube-apiserver-bootstrap.done ]
172176
then
173177
record_service_stage_start "kube-apiserver-bootstrap"

pkg/asset/manifests/featuregate.go

Lines changed: 23 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -40,38 +40,33 @@ func (f *FeatureGate) Generate(dependencies asset.Parents) error {
4040
installConfig := &installconfig.InstallConfig{}
4141
dependencies.Get(installConfig)
4242

43-
// A FeatureGate could be populated on every install,
44-
// even for those using the default feature set, but for
45-
// continuity let's only create a cluster feature gate
46-
// when non-default feature gates are enabled.
47-
if installConfig.Config.FeatureSet != configv1.Default {
48-
f.Config = configv1.FeatureGate{
49-
TypeMeta: metav1.TypeMeta{
50-
APIVersion: configv1.SchemeGroupVersion.String(),
51-
Kind: "FeatureGate",
43+
f.Config = configv1.FeatureGate{
44+
TypeMeta: metav1.TypeMeta{
45+
APIVersion: configv1.SchemeGroupVersion.String(),
46+
Kind: "FeatureGate",
47+
},
48+
ObjectMeta: metav1.ObjectMeta{
49+
Name: "cluster",
50+
},
51+
Spec: configv1.FeatureGateSpec{
52+
FeatureGateSelection: configv1.FeatureGateSelection{
53+
FeatureSet: installConfig.Config.FeatureSet,
5254
},
53-
ObjectMeta: metav1.ObjectMeta{
54-
Name: "cluster",
55-
},
56-
Spec: configv1.FeatureGateSpec{
57-
FeatureGateSelection: configv1.FeatureGateSelection{
58-
FeatureSet: installConfig.Config.FeatureSet,
59-
},
60-
},
61-
}
55+
},
56+
}
6257

63-
configData, err := yaml.Marshal(f.Config)
64-
if err != nil {
65-
return errors.Wrapf(err, "failed to create %s manifests from InstallConfig", f.Name())
66-
}
58+
configData, err := yaml.Marshal(f.Config)
59+
if err != nil {
60+
return errors.Wrapf(err, "failed to create %s manifests from InstallConfig", f.Name())
61+
}
6762

68-
f.FileList = []*asset.File{
69-
{
70-
Filename: fgFileName,
71-
Data: configData,
72-
},
73-
}
63+
f.FileList = []*asset.File{
64+
{
65+
Filename: fgFileName,
66+
Data: configData,
67+
},
7468
}
69+
7570
return nil
7671
}
7772

0 commit comments

Comments
 (0)