Skip to content

Commit c9b5e5c

Browse files
stuggiclaude
andcommitted
[b/r] Add backup-restore CRD labels to DataPlaneService
Add backup-restore labels to OpenStackDataPlaneService CRD (order 40, dataplane). Custom user-created services need to be restored before DataPlaneNodeSet (order 60). Default services shipped in config/services/ are recreated by the NodeSet controller via EnsureServices/CreateOrPatch. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent cd3f52b commit c9b5e5c

7 files changed

Lines changed: 24 additions & 6 deletions

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+
openstack.org/backup-category: dataplane
9+
openstack.org/backup-restore: "true"
10+
openstack.org/backup-restore-order: "40"
711
name: openstackdataplaneservices.dataplane.openstack.org
812
spec:
913
group: dataplane.openstack.org

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=openstack.org/backup-restore=true
134+
// +kubebuilder:metadata:labels=openstack.org/backup-category=dataplane
135+
// +kubebuilder:metadata:labels=openstack.org/backup-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/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+
openstack.org/backup-category: dataplane
9+
openstack.org/backup-restore: "true"
10+
openstack.org/backup-restore-order: "40"
711
name: openstackdataplaneservices.dataplane.openstack.org
812
spec:
913
group: dataplane.openstack.org

docs/dev/backup-restore/backup-restore-controller-implementation.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ const (
9090
RestoreOrder10 = "10" // Foundation - NADs, Secrets, ConfigMaps
9191
RestoreOrder20 = "20" // Infrastructure - Issuers, MariaDB, NetConfig, Topology, BGPConfiguration, DNSData, OpenStackVersion, OpenStackBackupConfig
9292
RestoreOrder30 = "30" // CtlPlane + networking - OpenStackControlPlane, Reservation
93-
RestoreOrder40 = "40" // Backup config & IP sets - GaleraBackup, IPSet
93+
RestoreOrder40 = "40" // Backup config, IP sets, DataPlane services - GaleraBackup, IPSet, DataPlaneService
9494
RestoreOrder50 = "50" // Manual steps - database/RabbitMQ restore, resume deployment
9595
RestoreOrder60 = "60" // DataPlane - DataPlaneNodeSet
9696
)
@@ -154,6 +154,10 @@ After modifying type definitions, run `make generate manifests` to update genera
154154
4. **OpenStackBackupConfig** (`api/backup/v1beta1/openstackbackupconfig_types.go`)
155155
- `backup-restore=true`, `category=controlplane`, `order=20`
156156
157+
5. **OpenStackDataPlaneService** (`api/dataplane/v1beta1/openstackdataplaneservice_types.go`)
158+
- `backup-restore=true`, `category=dataplane`, `order=40`
159+
- Custom user-created services; default services are recreated by NodeSet controller
160+
157161
### MariaDB Operator CRDs
158162
159163
1. **MariaDBAccount** (`api/v1beta1/mariadbaccount_types.go`)
@@ -365,7 +369,7 @@ We use two separate OADP backups:
365369
| 10 | Secrets, ConfigMaps, NADs | OADP Restore CR | User-provided resources |
366370
| 20 | OpenStackVersion, OpenStackBackupConfig, MariaDBAccount, MariaDBDatabase, NetConfig, Topology, BGPConfiguration, DNSData, InstanceHa | OADP Restore CR | Infrastructure base (InstanceHa restored with `spec.disabled: True`) |
367371
| 30 | OpenStackControlPlane, Reservation | OADP Restore CR | With `deployment-stage: infrastructure-only` annotation |
368-
| 40 | GaleraBackup, IPSet | OADP Restore CR | Backup config, IP sets |
372+
| 40 | GaleraBackup, IPSet, DataPlaneService | OADP Restore CR | Backup config, IP sets, custom DataPlane services |
369373
| 50 | Database + RabbitMQ restore | **Manual/Playbook** | GaleraRestore CRs, RabbitMQ credential restore, remove staged annotation |
370374
| 60 | DataPlaneNodeSet | OADP Restore CR | DataPlane resources (optional) |
371375

docs/dev/backup-restore/backup/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,9 +109,10 @@ oc describe backup openstack-backup-pvcs -n openshift-adp
109109
- OpenStackControlPlane
110110
- Reservation
111111

112-
**Order 40 - Backup Config & IP Sets:**
112+
**Order 40 - Backup Config, IP Sets & DataPlane Services:**
113113
- GaleraBackup
114114
- IPSet
115+
- DataPlaneService (custom user-created services)
115116

116117
**Order 60 - DataPlane:**
117118
- OpenStackDataPlaneNodeSet

docs/dev/backup-restore/restore/05-restore-order-40-backup-config.yaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
---
2-
# Restore Order 40: Backup Configuration
3-
# Restores GaleraBackup and other backup-related configuration CRs
2+
# Restore Order 40: Backup Configuration, IP Sets & DataPlane Services
3+
# Restores GaleraBackup, IPSet, and DataPlaneService CRs
44
# Must be restored after OpenStackControlPlane (order 30)
5+
# DataPlaneService: Custom user-created services are restored here;
6+
# default services are recreated by the NodeSet controller
57
#
68
# Prerequisite: Create the resource modifier ConfigMap first:
79
# oc apply -f 00-resource-modifiers-configmap.yaml

docs/dev/backup-restore/restore/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Restores must be executed in sequence. Wait for each restore to complete before
1313
| `02-restore-order-10-foundation.yaml` | 10 | Secrets, ConfigMaps, NADs | User-provided resources without ownerRefs |
1414
| `03-restore-order-20-infrastructure.yaml` | 20 | OpenStackVersion, OpenStackBackupConfig, MariaDBAccount, MariaDBDatabase, NetConfig, Topology, BGPConfiguration, DNSData, InstanceHa | Infrastructure base (**InstanceHa restored with `spec.disabled: True`**) |
1515
| `04-restore-order-30-controlplane.yaml` | 30 | OpenStackControlPlane, Reservation | **Adds `deployment-stage: infrastructure-only` annotation** |
16-
| `05-restore-order-40-backup-config.yaml` | 40 | GaleraBackup, IPSet | Backup configuration CRs and IP sets |
16+
| `05-restore-order-40-backup-config.yaml` | 40 | GaleraBackup, IPSet, DataPlaneService | Backup config, IP sets, custom DataPlane services |
1717
| `06-manual-database-restore.md` | 50 | **Manual** | Create GaleraRestore CRs, run restore script |
1818
| `06b-restore-rabbitmq-secrets.yaml` | - | Secrets (to temp ns) | Restore secrets to `openstack-restore-tmp`, copy `*-default-user` as `*-restored-user`, create RabbitMQUser CRs |
1919
| *(Step 9 in playbook)* | - | **Manual** | Remove deployment-stage annotation, wait for control plane ready |

0 commit comments

Comments
 (0)