Skip to content

Commit ac668ec

Browse files
committed
use new rendering helpers
1 parent fa90bf3 commit ac668ec

1 file changed

Lines changed: 30 additions & 11 deletions

File tree

pkg/cmd/render/render.go

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,16 @@ type renderOpts struct {
2929
cloudProviderConfigOutputFile string
3030
// this file will be both input AND output
3131
featureGateManifestFile string
32-
payloadVersion string
3332
}
3433

3534
// NewRenderCommand creates a render command.
3635
func NewRenderCommand() *cobra.Command {
3736
renderOpts := renderOpts{
38-
generic: *genericrenderoptions.NewGenericOptions(),
39-
manifest: *genericrenderoptions.NewManifestOptions("config", "openshift/origin-cluster-config-operator:latest"),
40-
payloadVersion: "0.0.1-snapshot",
37+
generic: *genericrenderoptions.NewGenericOptions(),
38+
manifest: *genericrenderoptions.NewManifestOptions("config", "openshift/origin-cluster-config-operator:latest"),
4139
}
40+
renderOpts.generic.PayloadVersion = "0.0.1-snapshot"
41+
4242
cmd := &cobra.Command{
4343
Use: "render",
4444
Short: "Render kubernetes API server bootstrap manifests, secrets and configMaps",
@@ -76,7 +76,6 @@ func (r *renderOpts) AddFlags(fs *pflag.FlagSet) {
7676
fs.StringVar(&r.cloudProviderConfigOutputFile, "cloud-provider-config-output-file", r.cloudProviderConfigOutputFile, "Output path for the generated cloud provider config file.")
7777

7878
fs.StringVar(&r.featureGateManifestFile, "featuregate-manifest", r.featureGateManifestFile, "Path for the FeatureGate.config.openshift.io that will be modified with completed status for use in other bootstrapping steps.")
79-
fs.StringVar(&r.payloadVersion, "payload-version", r.payloadVersion, "Version that will eventually be placed into ClusterOperator.status. This normally comes from the CVO set via env var: OPERATOR_IMAGE_VERSION.")
8079

8180
}
8281

@@ -139,7 +138,7 @@ func (r *renderOpts) Run() error {
139138
}
140139

141140
featureGates := ReadFeatureGateV1OrDie(featureGateBytes)
142-
currentDetails, err := featuregates.FeaturesGateDetailsFromFeatureSets(configv1.FeatureSets, featureGates, r.payloadVersion)
141+
currentDetails, err := featuregates.FeaturesGateDetailsFromFeatureSets(configv1.FeatureSets, featureGates, r.generic.PayloadVersion)
143142
if err != nil {
144143
return err
145144
}
@@ -164,22 +163,25 @@ func (r *renderOpts) Run() error {
164163
return err
165164
}
166165

167-
featureGateFiles := renderConfig.ListManifestOfType(configv1.GroupVersion.WithKind("FeatureGate"))
166+
featureGateFiles, err := featureGateManifests(r.generic)
167+
if err != nil {
168+
return fmt.Errorf("problem with featuregate manifests: %w", err)
169+
}
168170
for _, featureGateFile := range featureGateFiles {
169171
featureGatesObj, err := featureGateFile.GetDecodedObj()
170172
if err != nil {
171-
return err
173+
return fmt.Errorf("error decoding FeatureGate: %w", err)
172174
}
173175
featureGates := featureGatesObj.(*configv1.FeatureGate)
174-
currentDetails, err := featuregates.FeaturesGateDetailsFromFeatureSets(configv1.FeatureSets, featureGates, r.payloadVersion)
176+
currentDetails, err := featuregates.FeaturesGateDetailsFromFeatureSets(configv1.FeatureSets, featureGates, r.generic.PayloadVersion)
175177
if err != nil {
176-
return err
178+
return fmt.Errorf("error determining FeatureGates: %w", err)
177179
}
178180
featureGates.Status.FeatureGates = []configv1.FeatureGateDetails{*currentDetails}
179181

180182
featureGateOutBytes := WriteFeatureGateV1OrDie(featureGates)
181183
if err := os.WriteFile(featureGateFile.OriginalFilename, []byte(featureGateOutBytes), 0644); err != nil {
182-
return err
184+
return fmt.Errorf("error writing FeatureGate manifest: %w", err)
183185
}
184186
}
185187

@@ -199,3 +201,20 @@ func (r *renderOpts) Run() error {
199201

200202
return nil
201203
}
204+
205+
func featureGateManifests(o genericrenderoptions.GenericOptions) (genericrenderoptions.RenderedManifests, error) {
206+
if len(o.RenderedManifestInputFilenames) == 0 {
207+
return nil, fmt.Errorf("cannot return FeatureGate without rendered manifests")
208+
}
209+
210+
inputManifest, err := o.ReadInputManifests()
211+
if err != nil {
212+
return nil, fmt.Errorf("error reading input manifests: %w", err)
213+
}
214+
featureGates := inputManifest.ListManifestOfType(configv1.GroupVersion.WithKind("FeatureGate"))
215+
if len(featureGates) == 0 {
216+
return nil, fmt.Errorf("no FeatureGates found in manfest dir: %v", o.RenderedManifestInputFilenames)
217+
}
218+
219+
return featureGates, nil
220+
}

0 commit comments

Comments
 (0)