Skip to content

Commit 886e552

Browse files
stuggiclaude
andcommitted
[b/r] Add backup/restore labels to ControlPlane controller
Wire the BackupConfig reconciliation into the ControlPlane controller. Add backup/restore labels to CA cert secrets via SecretTemplate, and restore=false labels to internal service cert requests. Add the ReconcileBackupConfig call, secret watch with annotation change predicate, and RBAC for openstackbackupconfigs. Set BackupConfig spec defaults in the CreateOrPatch mutate function. Jira: OSPRH-22912 Jira: OSPRH-22913 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Martin Schuppert <mschuppert@redhat.com>
1 parent b704ab1 commit 886e552

25 files changed

Lines changed: 336 additions & 39 deletions

api/bases/core.openstack.org_openstackcontrolplanes.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ kind: CustomResourceDefinition
44
metadata:
55
annotations:
66
controller-gen.kubebuilder.io/version: v0.18.0
7+
labels:
8+
backup.openstack.org/category: controlplane
9+
backup.openstack.org/restore: "true"
10+
backup.openstack.org/restore-order: "30"
711
name: openstackcontrolplanes.core.openstack.org
812
spec:
913
group: core.openstack.org

api/bases/core.openstack.org_openstackversions.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ kind: CustomResourceDefinition
44
metadata:
55
annotations:
66
controller-gen.kubebuilder.io/version: v0.18.0
7+
labels:
8+
backup.openstack.org/category: controlplane
9+
backup.openstack.org/restore: "true"
10+
backup.openstack.org/restore-order: "20"
711
name: openstackversions.core.openstack.org
812
spec:
913
group: core.openstack.org

api/bases/dataplane.openstack.org_openstackdataplanenodesets.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ kind: CustomResourceDefinition
44
metadata:
55
annotations:
66
controller-gen.kubebuilder.io/version: v0.18.0
7+
labels:
8+
backup.openstack.org/category: dataplane
9+
backup.openstack.org/restore: "true"
10+
backup.openstack.org/restore-order: "60"
711
name: openstackdataplanenodesets.dataplane.openstack.org
812
spec:
913
group: dataplane.openstack.org

api/bases/dataplane.openstack.org_openstackdataplaneservices.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ kind: CustomResourceDefinition
44
metadata:
55
annotations:
66
controller-gen.kubebuilder.io/version: v0.18.0
7+
labels:
8+
backup.openstack.org/category: dataplane
9+
backup.openstack.org/restore: "true"
10+
backup.openstack.org/restore-order: "40"
711
name: openstackdataplaneservices.dataplane.openstack.org
812
spec:
913
group: dataplane.openstack.org

api/core/v1beta1/openstackcontrolplane_types.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1118,6 +1118,9 @@ type TLSCAStatus struct {
11181118
// +kubebuilder:resource:shortName=osctlplane;osctlplanes;oscp;oscps
11191119
// +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.conditions[0].status",description="Status"
11201120
// +kubebuilder:printcolumn:name="Message",type="string",JSONPath=".status.conditions[0].message",description="Message"
1121+
// +kubebuilder:metadata:labels=backup.openstack.org/restore=true
1122+
// +kubebuilder:metadata:labels=backup.openstack.org/category=controlplane
1123+
// +kubebuilder:metadata:labels=backup.openstack.org/restore-order=30
11211124

11221125
// OpenStackControlPlane is the Schema for the openstackcontrolplanes API
11231126
type OpenStackControlPlane struct {

api/core/v1beta1/openstackversion_types.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,9 @@ type OpenStackVersionStatus struct {
218218
// +kubebuilder:printcolumn:name="Target Version",type=string,JSONPath=`.spec.targetVersion`
219219
// +kubebuilder:printcolumn:name="Available Version",type=string,JSONPath=`.status.availableVersion`
220220
// +kubebuilder:printcolumn:name="Deployed Version",type=string,JSONPath=`.status.deployedVersion`
221+
// +kubebuilder:metadata:labels=backup.openstack.org/restore=true
222+
// +kubebuilder:metadata:labels=backup.openstack.org/category=controlplane
223+
// +kubebuilder:metadata:labels=backup.openstack.org/restore-order=20
221224

222225
// OpenStackVersion defines the Schema for the openstackversionupdates API
223226
type OpenStackVersion struct {

api/dataplane/v1beta1/openstackdataplanenodeset_types.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,10 +94,13 @@ type OpenStackDataPlaneNodeSetSpec struct {
9494
// +kubebuilder:resource:shortName=osdpns;osdpnodeset;osdpnodesets
9595
// +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.conditions[0].status",description="Status"
9696
// +kubebuilder:printcolumn:name="Message",type="string",JSONPath=".status.conditions[0].message",description="Message"
97+
// +kubebuilder:metadata:labels=backup.openstack.org/restore=true
98+
// +kubebuilder:metadata:labels=backup.openstack.org/category=dataplane
99+
// +kubebuilder:metadata:labels=backup.openstack.org/restore-order=60
97100

98101
// OpenStackDataPlaneNodeSet is the Schema for the openstackdataplanenodesets API
99102
// OpenStackDataPlaneNodeSet name must be a valid RFC1123 as it is used in labels
100-
type OpenStackDataPlaneNodeSet struct {
103+
type OpenStackDataPlaneNodeSet struct{
101104
metav1.TypeMeta `json:",inline"`
102105
metav1.ObjectMeta `json:"metadata,omitempty"`
103106

api/dataplane/v1beta1/openstackdataplaneservice_types.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,9 @@ type OpenStackDataPlaneServiceStatus struct {
130130
// +kubebuilder:subresource:status
131131
// +kubebuilder:resource:shortName=osdps;osdpservice;osdpservices
132132
// +operator-sdk:csv:customresourcedefinitions:displayName="OpenStack Data Plane Service"
133+
// +kubebuilder:metadata:labels=backup.openstack.org/restore=true
134+
// +kubebuilder:metadata:labels=backup.openstack.org/category=dataplane
135+
// +kubebuilder:metadata:labels=backup.openstack.org/restore-order=40
133136

134137
// OpenStackDataPlaneService defines the Schema for the openstackdataplaneservices API.
135138
// OpenStackDataPlaneService name must be a valid RFC1123 as it is used in labels

config/crd/bases/core.openstack.org_openstackcontrolplanes.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ kind: CustomResourceDefinition
44
metadata:
55
annotations:
66
controller-gen.kubebuilder.io/version: v0.18.0
7+
labels:
8+
backup.openstack.org/category: controlplane
9+
backup.openstack.org/restore: "true"
10+
backup.openstack.org/restore-order: "30"
711
name: openstackcontrolplanes.core.openstack.org
812
spec:
913
group: core.openstack.org

config/crd/bases/core.openstack.org_openstackversions.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ kind: CustomResourceDefinition
44
metadata:
55
annotations:
66
controller-gen.kubebuilder.io/version: v0.18.0
7+
labels:
8+
backup.openstack.org/category: controlplane
9+
backup.openstack.org/restore: "true"
10+
backup.openstack.org/restore-order: "20"
711
name: openstackversions.core.openstack.org
812
spec:
913
group: core.openstack.org

0 commit comments

Comments
 (0)