Skip to content

Commit 8627b58

Browse files
Merge pull request #838 from stuggi/ptr_tmpl
Move service templates to be ptr to struct
2 parents 9b7f70b + 3e78275 commit 8627b58

28 files changed

+543
-138
lines changed

apis/core/v1beta1/openstackcontrolplane_types.go

Lines changed: 35 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -128,10 +128,12 @@ type OpenStackControlPlaneSpec struct {
128128
// Memcached - Parameters related to the Memcached service
129129
Memcached MemcachedSection `json:"memcached,omitempty"`
130130

131+
// +kubebuilder:validation:Optional
131132
//+operator-sdk:csv:customresourcedefinitions:type=spec
132133
// Ovn - Overrides to use when creating the OVN Services
133134
Ovn OvnSection `json:"ovn,omitempty"`
134135

136+
// +kubebuilder:validation:Optional
135137
//+operator-sdk:csv:customresourcedefinitions:type=spec
136138
// Neutron - Overrides to use when creating the Neutron Service
137139
Neutron NeutronSection `json:"neutron,omitempty"`
@@ -151,6 +153,8 @@ type OpenStackControlPlaneSpec struct {
151153
// Ironic - Parameters related to the Ironic services
152154
Ironic IronicSection `json:"ironic,omitempty"`
153155

156+
// +kubebuilder:validation:Optional
157+
//+operator-sdk:csv:customresourcedefinitions:type=spec
154158
// Manila - Parameters related to the Manila service
155159
Manila ManilaSection `json:"manila,omitempty"`
156160

@@ -160,18 +164,27 @@ type OpenStackControlPlaneSpec struct {
160164
Horizon HorizonSection `json:"horizon,omitempty"`
161165

162166
// +kubebuilder:validation:Optional
167+
//+operator-sdk:csv:customresourcedefinitions:type=spec
163168
// Telemetry - Parameters related to the OpenStack Telemetry services
164169
Telemetry TelemetrySection `json:"telemetry,omitempty"`
165170

171+
// +kubebuilder:validation:Optional
172+
//+operator-sdk:csv:customresourcedefinitions:type=spec
166173
// Swift - Parameters related to the Swift service
167174
Swift SwiftSection `json:"swift,omitempty"`
168175

176+
// +kubebuilder:validation:Optional
177+
//+operator-sdk:csv:customresourcedefinitions:type=spec
169178
// Octavia - Parameters related to the Octavia service
170179
Octavia OctaviaSection `json:"octavia,omitempty"`
171180

181+
// +kubebuilder:validation:Optional
182+
//+operator-sdk:csv:customresourcedefinitions:type=spec
172183
// Designate - Parameters related to the Designate service
173184
Designate DesignateSection `json:"designate,omitempty"`
174185

186+
// +kubebuilder:validation:Optional
187+
//+operator-sdk:csv:customresourcedefinitions:type=spec
175188
// Barbican - Parameters related to the Barbican service
176189
Barbican BarbicanSection `json:"barbican,omitempty"`
177190

@@ -322,7 +335,7 @@ type DNSMasqSection struct {
322335
// +kubebuilder:validation:Optional
323336
//+operator-sdk:csv:customresourcedefinitions:type=spec
324337
// Template - Overrides to use when creating the DNSMasq service
325-
Template networkv1.DNSMasqSpec `json:"template,omitempty"`
338+
Template *networkv1.DNSMasqSpec `json:"template,omitempty"`
326339
}
327340

328341
// KeystoneSection defines the desired state of Keystone service
@@ -336,7 +349,7 @@ type KeystoneSection struct {
336349
// +kubebuilder:validation:Optional
337350
// +operator-sdk:csv:customresourcedefinitions:type=spec
338351
// Template - Overrides to use when creating the Keystone service
339-
Template keystonev1.KeystoneAPISpecCore `json:"template,omitempty"`
352+
Template *keystonev1.KeystoneAPISpecCore `json:"template,omitempty"`
340353

341354
// +kubebuilder:validation:Optional
342355
// +operator-sdk:csv:customresourcedefinitions:type=spec
@@ -376,7 +389,7 @@ type PlacementSection struct {
376389
// +kubebuilder:validation:Optional
377390
//+operator-sdk:csv:customresourcedefinitions:type=spec
378391
// Template - Overrides to use when creating the Placement API
379-
Template placementv1.PlacementAPISpecCore `json:"template,omitempty"`
392+
Template *placementv1.PlacementAPISpecCore `json:"template,omitempty"`
380393

381394
// +kubebuilder:validation:Optional
382395
// +operator-sdk:csv:customresourcedefinitions:type=spec
@@ -395,7 +408,7 @@ type GlanceSection struct {
395408
// +kubebuilder:validation:Optional
396409
//+operator-sdk:csv:customresourcedefinitions:type=spec
397410
// Template - Overrides to use when creating the Glance Service
398-
Template glancev1.GlanceSpecCore `json:"template,omitempty"`
411+
Template *glancev1.GlanceSpecCore `json:"template,omitempty"`
399412

400413
// +kubebuilder:validation:Optional
401414
// +operator-sdk:csv:customresourcedefinitions:type=spec
@@ -414,7 +427,7 @@ type CinderSection struct {
414427
// +kubebuilder:validation:Optional
415428
//+operator-sdk:csv:customresourcedefinitions:type=spec
416429
// Template - Overrides to use when creating Cinder Resources
417-
Template cinderv1.CinderSpecCore `json:"template,omitempty"`
430+
Template *cinderv1.CinderSpecCore `json:"template,omitempty"`
418431

419432
// +kubebuilder:validation:Optional
420433
// +operator-sdk:csv:customresourcedefinitions:type=spec
@@ -433,7 +446,7 @@ type GaleraSection struct {
433446
// +kubebuilder:validation:Optional
434447
//+operator-sdk:csv:customresourcedefinitions:type=spec
435448
// Templates - Overrides to use when creating the Galera databases
436-
Templates map[string]mariadbv1.GaleraSpecCore `json:"templates,omitempty"`
449+
Templates *map[string]mariadbv1.GaleraSpecCore `json:"templates,omitempty"`
437450
}
438451

439452
// RabbitmqSection defines the desired state of RabbitMQ service
@@ -447,7 +460,7 @@ type RabbitmqSection struct {
447460
// +kubebuilder:validation:Optional
448461
//+operator-sdk:csv:customresourcedefinitions:type=spec
449462
// Templates - Overrides to use when creating the Rabbitmq clusters
450-
Templates map[string]RabbitmqTemplate `json:"templates"`
463+
Templates *map[string]RabbitmqTemplate `json:"templates"`
451464
}
452465

453466
// MemcachedSection defines the desired state of Memcached services
@@ -461,7 +474,7 @@ type MemcachedSection struct {
461474
// +kubebuilder:validation:Optional
462475
//+operator-sdk:csv:customresourcedefinitions:type=spec
463476
// Templates - Overrides to use when creating the Memcached databases
464-
Templates map[string]memcachedv1.MemcachedSpecCore `json:"templates,omitempty"`
477+
Templates *map[string]memcachedv1.MemcachedSpecCore `json:"templates,omitempty"`
465478
}
466479

467480
// RabbitmqTemplate definition
@@ -483,7 +496,7 @@ type OvnSection struct {
483496
// +kubebuilder:validation:Optional
484497
//+operator-sdk:csv:customresourcedefinitions:type=spec
485498
// Template - Overrides to use when creating the OVN services
486-
Template OvnResources `json:"template,omitempty"`
499+
Template *OvnResources `json:"template,omitempty"`
487500
}
488501

489502
// OvnResources defines the desired state of OVN services
@@ -515,7 +528,7 @@ type NeutronSection struct {
515528
// +kubebuilder:validation:Optional
516529
//+operator-sdk:csv:customresourcedefinitions:type=spec
517530
// Template - Overrides to use when creating the Neutron Service
518-
Template neutronv1.NeutronAPISpecCore `json:"template,omitempty"`
531+
Template *neutronv1.NeutronAPISpecCore `json:"template,omitempty"`
519532

520533
// +kubebuilder:validation:Optional
521534
// +operator-sdk:csv:customresourcedefinitions:type=spec
@@ -534,7 +547,7 @@ type NovaSection struct {
534547
// +kubebuilder:validation:Optional
535548
//+operator-sdk:csv:customresourcedefinitions:type=spec
536549
// Template - Overrides to use when creating the Nova services
537-
Template novav1.NovaSpec `json:"template,omitempty"`
550+
Template *novav1.NovaSpec `json:"template,omitempty"`
538551

539552
// +kubebuilder:validation:Optional
540553
// +operator-sdk:csv:customresourcedefinitions:type=spec
@@ -566,7 +579,7 @@ type HeatSection struct {
566579
// +kubebuilder:validation:Optional
567580
//+operator-sdk:csv:customresourcedefinitions:type=spec
568581
// Template - Overrides to use when creating the Heat services
569-
Template heatv1.HeatSpecCore `json:"template,omitempty"`
582+
Template *heatv1.HeatSpecCore `json:"template,omitempty"`
570583

571584
// +kubebuilder:validation:Optional
572585
// +operator-sdk:csv:customresourcedefinitions:type=spec
@@ -590,7 +603,7 @@ type IronicSection struct {
590603
// +kubebuilder:validation:Optional
591604
//+operator-sdk:csv:customresourcedefinitions:type=spec
592605
// Template - Overrides to use when creating the Ironic services
593-
Template ironicv1.IronicSpecCore `json:"template,omitempty"`
606+
Template *ironicv1.IronicSpecCore `json:"template,omitempty"`
594607

595608
// +kubebuilder:validation:Optional
596609
// +operator-sdk:csv:customresourcedefinitions:type=spec
@@ -612,8 +625,9 @@ type ManilaSection struct {
612625
Enabled bool `json:"enabled"`
613626

614627
// +kubebuilder:validation:Optional
628+
// +operator-sdk:csv:customresourcedefinitions:type=spec
615629
// Template - Overrides to use when creating Manila Resources
616-
Template manilav1.ManilaSpecCore `json:"template,omitempty"`
630+
Template *manilav1.ManilaSpecCore `json:"template,omitempty"`
617631

618632
// +kubebuilder:validation:Optional
619633
// +operator-sdk:csv:customresourcedefinitions:type=spec
@@ -629,8 +643,9 @@ type HorizonSection struct {
629643
Enabled bool `json:"enabled"`
630644

631645
// +kubebuilder:validation:Optional
646+
// +operator-sdk:csv:customresourcedefinitions:type=spec
632647
// Template - Overrides to use when creating the Horizon services
633-
Template horizonv1.HorizonSpecCore `json:"template,omitempty"`
648+
Template *horizonv1.HorizonSpecCore `json:"template,omitempty"`
634649

635650
// +kubebuilder:validation:Optional
636651
// +operator-sdk:csv:customresourcedefinitions:type=spec
@@ -649,7 +664,7 @@ type TelemetrySection struct {
649664
// +kubebuilder:validation:Optional
650665
//+operator-sdk:csv:customresourcedefinitions:type=spec
651666
// Template - Overrides to use when creating the OpenStack Telemetry services
652-
Template telemetryv1.TelemetrySpecCore `json:"template,omitempty"`
667+
Template *telemetryv1.TelemetrySpecCore `json:"template,omitempty"`
653668

654669
// +kubebuilder:validation:Optional
655670
// +operator-sdk:csv:customresourcedefinitions:type=spec
@@ -678,7 +693,7 @@ type SwiftSection struct {
678693
// +kubebuilder:validation:Optional
679694
//+operator-sdk:csv:customresourcedefinitions:type=spec
680695
// Template - Overrides to use when creating Swift Resources
681-
Template swiftv1.SwiftSpecCore `json:"template,omitempty"`
696+
Template *swiftv1.SwiftSpecCore `json:"template,omitempty"`
682697

683698
// +kubebuilder:validation:Optional
684699
// +operator-sdk:csv:customresourcedefinitions:type=spec
@@ -697,7 +712,7 @@ type OctaviaSection struct {
697712
// +kubebuilder:valdiation:Optional
698713
// +operator-sdk:csv:customresourcedefinitions:type=spec
699714
// Template - Overrides to use when creating Octavia Resources
700-
Template octaviav1.OctaviaSpecCore `json:"template,omitempty"`
715+
Template *octaviav1.OctaviaSpecCore `json:"template,omitempty"`
701716

702717
// +kubebuilder:validation:Optional
703718
// +operator-sdk:csv:customresourcedefinitions:type=spec
@@ -716,7 +731,7 @@ type DesignateSection struct {
716731
// +kubebuilder:valdiation:Optional
717732
// +operator-sdk:csv:customresourcedefinitions:type=spec
718733
// Template - Overrides to use when creating Designate Resources
719-
Template designatev1.DesignateSpecCore `json:"template,omitempty"`
734+
Template *designatev1.DesignateSpecCore `json:"template,omitempty"`
720735

721736
// +kubebuilder:validation:Optional
722737
// +operator-sdk:csv:customresourcedefinitions:type=spec
@@ -735,7 +750,7 @@ type BarbicanSection struct {
735750
// +kubebuilder:validation:Optional
736751
//+operator-sdk:csv:customresourcedefinitions:type=spec
737752
// Template - Overrides to use when creating the Barbican Service
738-
Template barbicanv1.BarbicanSpecCore `json:"template,omitempty"`
753+
Template *barbicanv1.BarbicanSpecCore `json:"template,omitempty"`
739754

740755
// +kubebuilder:validation:Optional
741756
// +operator-sdk:csv:customresourcedefinitions:type=spec

0 commit comments

Comments
 (0)