Skip to content

Commit d101e85

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. Label custom Issuers for backup/restore directly in ca.go where the ControlPlane controller processes them from spec.tls.*.ca.customIssuer. Return error from GetCertSecretBackupLabels for non-NotFound errors so the calling operator retries. Rename GetConfig parameter from gvk to crdName. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Martin Schuppert <mschuppert@redhat.com>
1 parent 4bcd99b commit d101e85

26 files changed

Lines changed: 361 additions & 47 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

bindata/crds/crds.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -529,6 +529,10 @@ kind: CustomResourceDefinition
529529
metadata:
530530
annotations:
531531
controller-gen.kubebuilder.io/version: v0.18.0
532+
labels:
533+
backup.openstack.org/category: controlplane
534+
backup.openstack.org/restore: "true"
535+
backup.openstack.org/restore-order: "30"
532536
name: openstackcontrolplanes.core.openstack.org
533537
spec:
534538
group: core.openstack.org
@@ -19197,6 +19201,10 @@ kind: CustomResourceDefinition
1919719201
metadata:
1919819202
annotations:
1919919203
controller-gen.kubebuilder.io/version: v0.18.0
19204+
labels:
19205+
backup.openstack.org/category: dataplane
19206+
backup.openstack.org/restore: "true"
19207+
backup.openstack.org/restore-order: "60"
1920019208
name: openstackdataplanenodesets.dataplane.openstack.org
1920119209
spec:
1920219210
group: dataplane.openstack.org
@@ -21193,6 +21201,10 @@ kind: CustomResourceDefinition
2119321201
metadata:
2119421202
annotations:
2119521203
controller-gen.kubebuilder.io/version: v0.18.0
21204+
labels:
21205+
backup.openstack.org/category: dataplane
21206+
backup.openstack.org/restore: "true"
21207+
backup.openstack.org/restore-order: "40"
2119621208
name: openstackdataplaneservices.dataplane.openstack.org
2119721209
spec:
2119821210
group: dataplane.openstack.org
@@ -21490,6 +21502,10 @@ kind: CustomResourceDefinition
2149021502
metadata:
2149121503
annotations:
2149221504
controller-gen.kubebuilder.io/version: v0.18.0
21505+
labels:
21506+
backup.openstack.org/category: controlplane
21507+
backup.openstack.org/restore: "true"
21508+
backup.openstack.org/restore-order: "20"
2149321509
name: openstackversions.core.openstack.org
2149421510
spec:
2149521511
group: core.openstack.org

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

0 commit comments

Comments
 (0)