@@ -19,62 +19,113 @@ package v1beta1
1919import (
2020 condition "github.com/openstack-k8s-operators/lib-common/modules/common/condition"
2121 corev1 "k8s.io/api/core/v1"
22+ "k8s.io/apimachinery/pkg/api/resource"
2223 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2324)
2425
2526const (
26- BarbicanOperatorName = "barbican"
27- CinderOperatorName = "cinder"
28- DesignateOperatorName = "designate"
29- GlanceOperatorName = "glance"
30- HeatOperatorName = "heat"
31- HorizonOperatorName = "horizon"
32- InfraOperatorName = "infra"
33- IronicOperatorName = "ironic"
34- KeystoneOperatorName = "keystone"
35- ManilaOperatorName = "manila"
36- MariaDBOperatorName = "mariadb"
37- NeutronOperatorName = "neutron"
38- NovaOperatorName = "nova"
39- OctaviaOperatorName = "octavia"
40- OpenStackBaremetalOperatorName = "openstack-baremetal"
41- OvnOperatorName = "ovn"
42- PlacementOperatorName = "placement"
43- RabbitMQOperatorName = "rabbitmq-cluster"
44- SwiftOperatorName = "swift"
45- TelemetryOperatorName = "telemetry"
46- TestOperatorName = "test"
47- OkrOperatorName = "okr"
27+ BarbicanOperatorName = "barbican"
28+ CinderOperatorName = "cinder"
29+ DesignateOperatorName = "designate"
30+ GlanceOperatorName = "glance"
31+ HeatOperatorName = "heat"
32+ HorizonOperatorName = "horizon"
33+ InfraOperatorName = "infra"
34+ IronicOperatorName = "ironic"
35+ KeystoneOperatorName = "keystone"
36+ ManilaOperatorName = "manila"
37+ MariaDBOperatorName = "mariadb"
38+ NeutronOperatorName = "neutron"
39+ NovaOperatorName = "nova"
40+ OctaviaOperatorName = "octavia"
41+ OpenStackBaremetalOperatorName = "openstack-baremetal"
42+ OvnOperatorName = "ovn"
43+ PlacementOperatorName = "placement"
44+ RabbitMQOperatorName = "rabbitmq-cluster"
45+ SwiftOperatorName = "swift"
46+ TelemetryOperatorName = "telemetry"
47+ TestOperatorName = "test"
48+ ReplicasEnabled int32 = 1
49+ ReplicasDisabled int32 = 0
4850)
4951
5052// NOTE: test-operator was deployed as a independant package so it may or may not be installed
5153// NOTE: depending on how watcher-operator is released for FR2 and then in FR3 it may need to be
5254// added into this list in the future
5355// IMPORTANT: have this list in synce with the kubebuilder annotations of the ServiceOperators parameter
5456var (
55- ServiceOperatorNames []string = []string {
56- BarbicanOperatorName ,
57- CinderOperatorName ,
58- DesignateOperatorName ,
59- GlanceOperatorName ,
60- HeatOperatorName ,
61- HorizonOperatorName ,
62- InfraOperatorName ,
63- IronicOperatorName ,
64- KeystoneOperatorName ,
65- ManilaOperatorName ,
66- MariaDBOperatorName ,
67- NeutronOperatorName ,
68- NovaOperatorName ,
69- OctaviaOperatorName ,
70- OpenStackBaremetalOperatorName ,
71- OvnOperatorName ,
72- PlacementOperatorName ,
73- RabbitMQOperatorName ,
74- SwiftOperatorName ,
75- TelemetryOperatorName ,
76- TestOperatorName ,
77- OkrOperatorName ,
57+ DefaultManagerCPULimit resource.Quantity = resource .MustParse ("500m" )
58+ DefaultManagerCPURequests resource.Quantity = resource .MustParse ("10m" )
59+ DefaultManagerMemoryLimit resource.Quantity = resource .MustParse ("256Mi" )
60+ DefaultManagerMemoryRequests resource.Quantity = resource .MustParse ("128Mi" )
61+ DefaultRbacProxyCPULimit resource.Quantity = resource .MustParse ("500m" )
62+ DefaultRbacProxyCPURequests resource.Quantity = resource .MustParse ("5m" )
63+ DefaultRbacProxyMemoryLimit resource.Quantity = resource .MustParse ("128Mi" )
64+ DefaultRbacProxyMemoryRequests resource.Quantity = resource .MustParse ("64Mi" )
65+ ServiceOperatorList []OperatorSpec = []OperatorSpec {
66+ {
67+ Name : BarbicanOperatorName ,
68+ },
69+ {
70+ Name : CinderOperatorName ,
71+ },
72+ {
73+ Name : DesignateOperatorName ,
74+ },
75+ {
76+ Name : GlanceOperatorName ,
77+ },
78+ {
79+ Name : HeatOperatorName ,
80+ },
81+ {
82+ Name : HorizonOperatorName ,
83+ },
84+ {
85+ Name : InfraOperatorName ,
86+ },
87+ {
88+ Name : IronicOperatorName ,
89+ },
90+ {
91+ Name : KeystoneOperatorName ,
92+ },
93+ {
94+ Name : ManilaOperatorName ,
95+ },
96+ {
97+ Name : MariaDBOperatorName ,
98+ },
99+ {
100+ Name : NeutronOperatorName ,
101+ },
102+ {
103+ Name : NovaOperatorName ,
104+ },
105+ {
106+ Name : OctaviaOperatorName ,
107+ },
108+ {
109+ Name : OpenStackBaremetalOperatorName ,
110+ },
111+ {
112+ Name : OvnOperatorName ,
113+ },
114+ {
115+ Name : PlacementOperatorName ,
116+ },
117+ {
118+ Name : RabbitMQOperatorName ,
119+ },
120+ {
121+ Name : SwiftOperatorName ,
122+ },
123+ {
124+ Name : TelemetryOperatorName ,
125+ },
126+ {
127+ Name : TestOperatorName ,
128+ },
78129 }
79130)
80131
@@ -83,8 +134,6 @@ type OpenStackSpec struct {
83134 // +kubebuilder:validation:Optional
84135 // +listType=map
85136 // +listMapKey=name
86- // +kubebuilder:validation:XValidation:rule="self.all(x, self.filter(y, y.name == x.name).size() == 1)",message="names in ServiceOperators must be unique"
87- // +kubebuilder:default={{name: barbican}, {name: cinder}, {name: designate}, {name: glance}, {name: heat}, {name: horizon}, {name: infra}, {name: keystone}, {name: manila}, {name: mariadb}, {name: neutron}, {name: nova}, {name: octavia}, {name: openstack-baremetal}, {name: ovn}, {name: placement}, {name: rabbitmq-cluster}, {name: swift}, {name: telemetry}, {name: test}, {name: okr, replicas: 0}}
88137 // ServiceOperators - list of service operators to deploy with tunings
89138 // NOTE: test-operator was deployed as a independant package so it may or may not be installed
90139 // NOTE: depending on how watcher-operator is released for FR2 and then in FR3 it may need to be
@@ -96,8 +145,10 @@ type OpenStackSpec struct {
96145type OperatorSpec struct {
97146 // +kubebuilder:validation:Required
98147 // +kubebuilder:validation:MinLength=1
148+ // +kubebuilder:validation:Enum:=barbican;cinder;designate;glance;heat;horizon;infra;keystone;manila;mariadb;neutron;nova;octavia;openstack-baremetal;ovn;placement;rabbitmq-cluster;swift;telemetry;test
99149 // Name of the service operators.
100150 Name string `json:"name"`
151+
101152 // +kubebuilder:validation:Optional
102153 // +kubebuilder:default=1
103154 // +kubebuilder:validation:Maximum=1
@@ -106,12 +157,12 @@ type OperatorSpec struct {
106157 Replicas * int32 `json:"replicas"`
107158
108159 // +kubebuilder:validation:Optional
109- // +kubebuilder:default={limits: {cpu: "500m", memory: "128Mi "},requests: {cpu: "10m", memory: "256Mi" }}
160+ // +kubebuilder:default={resources: { limits: {cpu: "500m", memory: "256Mi "},requests: {cpu: "10m", memory: "128Mi"} }}
110161 // ControllerManager - tunings for the controller manager container
111162 ControllerManager ContainerSpec `json:"controllerManager"`
112163
113164 // +kubebuilder:validation:Optional
114- // +kubebuilder:default={limits: {cpu: "500m", memory: "128Mi"},requests: {cpu: "5m", memory: "64Mi"}}
165+ // +kubebuilder:default={resources: { limits: {cpu: "500m", memory: "128Mi"},requests: {cpu: "5m", memory: "64Mi"} }}
115166 // ControllerManager - tunings for the kube-rbac-proxy container
116167 KubeRbacProxy ContainerSpec `json:"kubeRbacProxy"`
117168}
0 commit comments