Skip to content

Commit

Permalink
Create ironicapi and ironicinspector route and svc endpoint overrides
Browse files Browse the repository at this point in the history
Creates the route for the ironicapi and ironicinspector, also allows
to customize the route via override.

Generats the service override for the env with what is configured in
the externalEndpoints, or specified in the service template override.

Depends-On: openstack-k8s-operators/lib-common#313
Depends-On: openstack-k8s-operators/keystone-operator#289
Depends-On: openstack-k8s-operators/ironic-operator#334

Jira: OSP-26690
  • Loading branch information
stuggi committed Sep 13, 2023
1 parent 4e9beac commit 67d6e20
Show file tree
Hide file tree
Showing 7 changed files with 775 additions and 199 deletions.
356 changes: 304 additions & 52 deletions apis/bases/core.openstack.org_openstackcontrolplanes.yaml

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions apis/core/v1beta1/conditions.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,9 @@ const (
// OpenStackControlPlaneIronicReadyCondition Status=True condition which indicates if Ironic is configured and operational
OpenStackControlPlaneIronicReadyCondition condition.Type = "OpenStackControlPlaneIronicReady"

// OpenStackControlPlaneExposeIronicReadyCondition Status=True condition which indicates if Ironic is exposed via a route
OpenStackControlPlaneExposeIronicReadyCondition condition.Type = "OpenStackControlPlaneExposeIronicReady"

// OpenStackControlPlaneHorizonReadyCondition Status=True condition which indicates if Horizon is configured and operational
OpenStackControlPlaneHorizonReadyCondition condition.Type = "OpenStackControlPlaneHorizonReady"

Expand Down
10 changes: 10 additions & 0 deletions apis/core/v1beta1/openstackcontrolplane_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -444,6 +444,16 @@ type IronicSection struct {
//+operator-sdk:csv:customresourcedefinitions:type=spec
// Template - Overrides to use when creating the Ironic services
Template ironicv1.IronicSpec `json:"template,omitempty"`

// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// APIOverride, provides the ability to override the generated manifest of several child resources.
APIOverride Override `json:"apiOverride,omitempty"`

// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// InspectorOverride, provides the ability to override the generated manifest of several child resources.
InspectorOverride Override `json:"inspectorOverride,omitempty"`
}

// ManilaSection defines the desired state of Manila service
Expand Down
2 changes: 2 additions & 0 deletions apis/core/v1beta1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

356 changes: 304 additions & 52 deletions config/crd/bases/core.openstack.org_openstackcontrolplanes.yaml

Large diffs are not rendered by default.

154 changes: 59 additions & 95 deletions config/manifests/bases/openstack-operator.clusterserviceversion.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,29 +37,15 @@ spec:
- description: Cinder - Parameters related to the Cinder service
displayName: Cinder
path: cinder
- description: APIOverride, provides the ability to override the generated manifest
of several child resources.
displayName: APIOverride
path: cinder.apiOverride
- description: Enabled - Whether Cinder service should be deployed and managed
displayName: Enabled
path: cinder.enabled
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:booleanSwitch
- description: IPAddressPool expose VIP via MetalLB on the IPAddressPool
displayName: IPAddress Pool
path: cinder.externalEndpoints[0].ipAddressPool
- description: LoadBalancerIPs, request given IPs from the pool if available.
Using a list to allow dual stack (IPv4/IPv6) support
displayName: Load Balancer IPs
path: cinder.externalEndpoints[0].loadBalancerIPs
- description: SharedIP if true, VIP/VIPs get shared with multiple services
displayName: Shared IP
path: cinder.externalEndpoints[0].sharedIP
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:booleanSwitch
- description: SharedIPKey specifies the sharing key which gets set as the annotation
on the LoadBalancer service. Services which share the same VIP must have
the same SharedIPKey. Defaults to the IPAddressPool if SharedIP is true,
but no SharedIPKey specified.
displayName: Shared IPKey
path: cinder.externalEndpoints[0].sharedIPKey
- description: Template - Overrides to use when creating Cinder Resources
displayName: Template
path: cinder.template
Expand Down Expand Up @@ -94,35 +80,29 @@ spec:
- description: Glance - Parameters related to the Glance service
displayName: Glance
path: glance
- description: APIOverride, provides the ability to override the generated manifest
of several child resources.
displayName: APIOverride
path: glance.apiOverride
- description: Enabled - Whether Glance service should be deployed and managed
displayName: Enabled
path: glance.enabled
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:booleanSwitch
- description: IPAddressPool expose VIP via MetalLB on the IPAddressPool
displayName: IPAddress Pool
path: glance.externalEndpoints[0].ipAddressPool
- description: LoadBalancerIPs, request given IPs from the pool if available.
Using a list to allow dual stack (IPv4/IPv6) support
displayName: Load Balancer IPs
path: glance.externalEndpoints[0].loadBalancerIPs
- description: SharedIP if true, VIP/VIPs get shared with multiple services
displayName: Shared IP
path: glance.externalEndpoints[0].sharedIP
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:booleanSwitch
- description: SharedIPKey specifies the sharing key which gets set as the annotation
on the LoadBalancer service. Services which share the same VIP must have
the same SharedIPKey. Defaults to the IPAddressPool if SharedIP is true,
but no SharedIPKey specified.
displayName: Shared IPKey
path: glance.externalEndpoints[0].sharedIPKey
- description: Template - Overrides to use when creating the Glance Service
displayName: Template
path: glance.template
- description: Heat - Parameters related to the Heat services
displayName: Heat
path: heat
- description: APIOverride, provides the ability to override the generated manifest
of several child resources.
displayName: APIOverride
path: heat.apiOverride
- description: CnfAPIOverride, provides the ability to override the generated
manifest of several child resources.
displayName: Cnf APIOverride
path: heat.cnfAPIOverride
- description: Enabled - Whether Heat services should be deployed and managed
displayName: Enabled
path: heat.enabled
Expand All @@ -134,46 +114,48 @@ spec:
- description: Horizon - Parameters related to the Horizon services
displayName: Horizon
path: horizon
- description: APIOverride, provides the ability to override the generated manifest
of several child resources.
displayName: APIOverride
path: horizon.apiOverride
- description: Ironic - Parameters related to the Ironic services
displayName: Ironic
path: ironic
- description: APIOverride, provides the ability to override the generated manifest
of several child resources.
displayName: APIOverride
path: ironic.apiOverride
- description: Enabled - Whether Ironic services should be deployed and managed
displayName: Enabled
path: ironic.enabled
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:booleanSwitch
- description: InspectorOverride, provides the ability to override the generated
manifest of several child resources.
displayName: Inspector Override
path: ironic.inspectorOverride
- description: Template - Overrides to use when creating the Ironic services
displayName: Template
path: ironic.template
- description: Keystone - Parameters related to the Keystone service
displayName: Keystone
path: keystone
- description: APIOverride, provides the ability to override the generated manifest
of several child resources.
displayName: APIOverride
path: keystone.apiOverride
- description: Enabled - Whether Keystone service should be deployed and managed
displayName: Enabled
path: keystone.enabled
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:booleanSwitch
- description: IPAddressPool expose VIP via MetalLB on the IPAddressPool
displayName: IPAddress Pool
path: keystone.externalEndpoints[0].ipAddressPool
- description: LoadBalancerIPs, request given IPs from the pool if available.
Using a list to allow dual stack (IPv4/IPv6) support
displayName: Load Balancer IPs
path: keystone.externalEndpoints[0].loadBalancerIPs
- description: SharedIP if true, VIP/VIPs get shared with multiple services
displayName: Shared IP
path: keystone.externalEndpoints[0].sharedIP
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:booleanSwitch
- description: SharedIPKey specifies the sharing key which gets set as the annotation
on the LoadBalancer service. Services which share the same VIP must have
the same SharedIPKey. Defaults to the IPAddressPool if SharedIP is true,
but no SharedIPKey specified.
displayName: Shared IPKey
path: keystone.externalEndpoints[0].sharedIPKey
- description: Template - Overrides to use when creating the Keystone service
displayName: Template
path: keystone.template
- description: APIOverride, provides the ability to override the generated manifest
of several child resources.
displayName: APIOverride
path: manila.apiOverride
- description: Enabled - Whether Manila service should be deployed and managed
displayName: Enabled
path: manila.enabled
Expand Down Expand Up @@ -204,12 +186,16 @@ spec:
- description: Neutron - Overrides to use when creating the Neutron Service
displayName: Neutron
path: neutron
- description: APIOverride, provides the ability to override the generated manifest
of several child resources.
displayName: APIOverride
path: neutron.apiOverride
- description: Enabled - Whether Neutron service should be deployed and managed
displayName: Enabled
path: neutron.enabled
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:booleanSwitch
- description: Template - Overrides to use when creating the Neutron service
- description: Template - Overrides to use when creating the Neutron Service
displayName: Template
path: neutron.template
- description: NodeSelector to target subset of worker nodes running control
Expand All @@ -219,6 +205,16 @@ spec:
- description: Nova - Parameters related to the Nova services
displayName: Nova
path: nova
- description: APIOverride, provides the ability to override the generated manifest
of several child resources.
displayName: APIOverride
path: nova.apiOverride
- description: CellOverride, provides the ability to override the generated
manifest of several child resources for a nova cell. cell0 never have compute
nodes and therefore it won't have a noVNCProxy deployed. Providing an override
for cell0 noVNCProxy does not have an effect.
displayName: Cell Override
path: nova.cellOverride
- description: Enabled - Whether Nova services should be deployed and managed
displayName: Enabled
path: nova.enabled
Expand Down Expand Up @@ -261,29 +257,15 @@ spec:
- description: Placement - Parameters related to the Placement service
displayName: Placement
path: placement
- description: APIOverride, provides the ability to override the generated manifest
of several child resources.
displayName: APIOverride
path: placement.apiOverride
- description: Enabled - Whether Placement service should be deployed and managed
displayName: Enabled
path: placement.enabled
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:booleanSwitch
- description: IPAddressPool expose VIP via MetalLB on the IPAddressPool
displayName: IPAddress Pool
path: placement.externalEndpoints[0].ipAddressPool
- description: LoadBalancerIPs, request given IPs from the pool if available.
Using a list to allow dual stack (IPv4/IPv6) support
displayName: Load Balancer IPs
path: placement.externalEndpoints[0].loadBalancerIPs
- description: SharedIP if true, VIP/VIPs get shared with multiple services
displayName: Shared IP
path: placement.externalEndpoints[0].sharedIP
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:booleanSwitch
- description: SharedIPKey specifies the sharing key which gets set as the annotation
on the LoadBalancer service. Services which share the same VIP must have
the same SharedIPKey. Defaults to the IPAddressPool if SharedIP is true,
but no SharedIPKey specified.
displayName: Shared IPKey
path: placement.externalEndpoints[0].sharedIPKey
- description: Template - Overrides to use when creating the Placement API
displayName: Template
path: placement.template
Expand All @@ -298,28 +280,6 @@ spec:
- description: Templates - Overrides to use when creating the Rabbitmq clusters
displayName: Templates
path: rabbitmq.templates
- description: ExternalEndpoint, expose a VIP via MetalLB on the pre-created
address pool
displayName: External Endpoint
path: rabbitmq.templates.externalEndpoint
- description: IPAddressPool expose VIP via MetalLB on the IPAddressPool
displayName: IPAddress Pool
path: rabbitmq.templates.externalEndpoint.ipAddressPool
- description: LoadBalancerIPs, request given IPs from the pool if available.
Using a list to allow dual stack (IPv4/IPv6) support
displayName: Load Balancer IPs
path: rabbitmq.templates.externalEndpoint.loadBalancerIPs
- description: SharedIP if true, VIP/VIPs get shared with multiple services
displayName: Shared IP
path: rabbitmq.templates.externalEndpoint.sharedIP
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:booleanSwitch
- description: SharedIPKey specifies the sharing key which gets set as the annotation
on the LoadBalancer service. Services which share the same VIP must have
the same SharedIPKey. Defaults to the IPAddressPool if SharedIP is true,
but no SharedIPKey specified.
displayName: Shared IPKey
path: rabbitmq.templates.externalEndpoint.sharedIPKey
- description: 'Secret - FIXME: make this optional'
displayName: Secret
path: secret
Expand All @@ -335,6 +295,10 @@ spec:
path: swift.enabled
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:booleanSwitch
- description: ProxyOverride, provides the ability to override the generated
manifest of several child resources.
displayName: Proxy Override
path: swift.proxyOverride
- description: Template - Overrides to use when creating Swift Resources
displayName: Template
path: swift.template
Expand Down
Loading

0 comments on commit 67d6e20

Please sign in to comment.