@@ -35,37 +35,43 @@ var _ clusterapi.PreProvider = Provider{}
3535// PreProvision tags the VIP ports and creates the security groups that are needed during CAPI provisioning.
3636func (p Provider ) PreProvision (ctx context.Context , in clusterapi.PreProvisionInput ) error {
3737 var (
38- infraID = in .InfraID
39- installConfig = in .InstallConfig
40- rhcosImage = string (* in .RhcosImage )
41- mastersSchedulable bool
38+ infraID = in .InfraID
39+ installConfig = in .InstallConfig
40+ rhcosImage = string (* in .RhcosImage )
41+ manifestsAsset = in . ManifestsAsset
4242 )
4343
44- for _ , f := range in .ManifestsAsset .Files () {
45- if f .Filename == manifests .SchedulerCfgFilename {
46- schedulerConfig := configv1.Scheduler {}
47- if err := yaml .Unmarshal (f .Data , & schedulerConfig ); err != nil {
48- return fmt .Errorf ("unable to decode the scheduler manifest: %w" , err )
49- }
50- mastersSchedulable = schedulerConfig .Spec .MastersSchedulable
51- break
52- }
53- }
54-
5544 if err := preprovision .TagVIPPorts (ctx , installConfig , infraID ); err != nil {
56- return err
45+ return fmt . Errorf ( "failed to tag VIP ports: %w" , err )
5746 }
5847
5948 // upload the corresponding image to Glance if rhcosImage contains a
6049 // URL. If rhcosImage contains a name, then that points to an existing
6150 // Glance image.
6251 if imageName , isURL := rhcos .GenerateOpenStackImageName (rhcosImage , infraID ); isURL {
6352 if err := preprovision .UploadBaseImage (ctx , installConfig .Config .Platform .OpenStack .Cloud , rhcosImage , imageName , infraID , installConfig .Config .Platform .OpenStack .ClusterOSImageProperties ); err != nil {
64- return err
53+ return fmt .Errorf ("failed to upload the RHCOS base image: %w" , err )
54+ }
55+ }
56+
57+ {
58+ var mastersSchedulable bool
59+ for _ , f := range manifestsAsset .Files () {
60+ if f .Filename == manifests .SchedulerCfgFilename {
61+ schedulerConfig := configv1.Scheduler {}
62+ if err := yaml .Unmarshal (f .Data , & schedulerConfig ); err != nil {
63+ return fmt .Errorf ("unable to decode the scheduler manifest: %w" , err )
64+ }
65+ mastersSchedulable = schedulerConfig .Spec .MastersSchedulable
66+ break
67+ }
68+ }
69+ if err := preprovision .SecurityGroups (ctx , installConfig , infraID , mastersSchedulable ); err != nil {
70+ return fmt .Errorf ("failed to create security groups: %w" , err )
6571 }
6672 }
6773
68- return preprovision . SecurityGroups ( ctx , installConfig , infraID , mastersSchedulable )
74+ return nil
6975}
7076
7177var _ clusterapi.InfraReadyProvider = Provider {}
0 commit comments