You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: web/docs/resource-name-migration.md
+79-45Lines changed: 79 additions & 45 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ sidebar_position: 41
8
8
9
9
:::warning
10
10
Before running the migration script or applying the manifest, please:
11
-
1.**Review the complete manifest**on the [Migration Manifest](migration-manifest.md) page to understand what changes will be made
11
+
1.**Review the complete manifest**at [migration-rbac.yaml](/migration-rbac.yaml) to understand what changes will be made
12
12
2.**Test in a non-production environment** first if possible
13
13
3.**Ensure you have proper backups** of your cluster configuration
14
14
4.**Verify the resource names match** your current installation (default namespace is `cnpg-system`)
@@ -50,26 +50,16 @@ Using generic names for cluster-wide resources is discouraged as they may confli
50
50
The migration process is straightforward and can be completed with a few kubectl commands.
51
51
52
52
:::danger Verify Resources Before Deletion
53
-
**IMPORTANT**: The old resource names are generic and could potentially belong to other components in your cluster. Before deleting, verify they belong to the barman plugin by checking their labels:
53
+
**IMPORTANT**: The old resource names are generic and could potentially belong to other components in your cluster.
54
54
55
-
```bash
56
-
# Check if the resources have the barman plugin labels
57
-
kubectl get clusterrole metrics-auth-role -o yaml | grep -A 5 "labels:"
58
-
kubectl get clusterrole metrics-reader -o yaml | grep -A 5 "labels:"
59
-
kubectl get clusterrole objectstore-viewer-role -o yaml | grep -A 5 "labels:"
60
-
kubectl get clusterrole objectstore-editor-role -o yaml | grep -A 5 "labels:"
61
-
kubectl get clusterrolebinding metrics-auth-rolebinding -o yaml | grep -A 5 "labels:"
62
-
```
55
+
**Before deleting each resource, verify it belongs to the barman plugin by checking:**
56
+
- For `objectstore-*` roles: Look for `barmancloud.cnpg.io` in the API groups
57
+
- For `metrics-*` roles: Check if they reference the `plugin-barman-cloud` ServiceAccount in `cnpg-system` namespace
58
+
- For other roles: Look for labels like `app.kubernetes.io/name: plugin-barman-cloud`
63
59
64
-
Look for labels like `app.kubernetes.io/name: plugin-barman-cloud` or references to `barmancloud.cnpg.io` in the rules. If the resources don't have these indicators, **DO NOT DELETE THEM** as they may belong to another application.
65
-
66
-
If you're unsure, you can also check what the resources manage:
67
-
```bash
68
-
kubectl get clusterrole objectstore-viewer-role -o yaml
69
-
kubectl get clusterrole objectstore-editor-role -o yaml
70
-
```
60
+
If a resource doesn't have these indicators, **DO NOT DELETE IT** as it may belong to another application.
71
61
72
-
These should reference `barmancloud.cnpg.io` API groups. If they don't, they are not barman plugin resources.
62
+
In Step 1 below, carefully review the output of each verification command before proceeding with the delete.
73
63
:::
74
64
75
65
:::tip Dry Run First
@@ -80,24 +70,55 @@ You can add `--dry-run=client` to any `kubectl delete` command to preview what w
80
70
81
71
**Only proceed if you've verified these resources belong to the barman plugin (see warning above).**
82
72
73
+
For each resource below, first verify it belongs to barman, then delete it:
74
+
83
75
```bash
84
-
# Only delete if this belongs to barman plugin (check labels first)
85
-
kubectl delete clusterrole metrics-auth-role
76
+
# 1. Check metrics-auth-rolebinding FIRST (we'll check the role after)
77
+
# Look for references to plugin-barman-cloud ServiceAccount
# 5. Check metrics-reader (MOST DANGEROUS - very generic name)
103
+
# First, check if it's being used by any rolebindings OTHER than barman's:
104
+
kubectl get clusterrolebinding -o json | jq -r '.items[] | select(.roleRef.name=="metrics-reader") | "\(.metadata.name) -> \(.subjects[0].name) in \(.subjects[0].namespace)"'
105
+
# If this shows ANY rolebindings, review them carefully. Only proceed if they're all barman-related.
106
+
# Then check the role itself:
107
+
kubectl describe clusterrole metrics-reader
108
+
# If it ONLY has nonResourceURLs: /metrics and NO other rolebindings use it, delete it:
109
+
kubectl delete clusterrole metrics-reader
98
110
```
99
111
100
-
If any resource is not found, that's okay - it means it was never created or already deleted.
112
+
:::warning
113
+
The `metrics-reader` role is particularly dangerous to delete blindly. Many monitoring systems use this exact name. Only delete it if:
114
+
1. You've verified it ONLY grants access to `/metrics`
115
+
2. No other rolebindings reference it (checked with the jq command above)
116
+
3. You're certain it was created by the barman plugin
117
+
118
+
If you're unsure, it's safer to leave it and let the new `barman-plugin-metrics-reader` role coexist with it.
119
+
:::
120
+
121
+
If any resource is not found during the `describe` command, that's okay - it means it was never created or already deleted. Simply skip the delete command for that resource.
# Replace ALL occurrences of cnpg-system with your namespace
153
+
sed -i.bak 's/cnpg-system/your-namespace/g' migration-rbac.yaml
154
+
155
+
# Review the changes
156
+
cat migration-rbac.yaml
157
+
158
+
# Apply it
159
+
kubectl apply -f migration-rbac.yaml
160
+
```
161
+
162
+
The manifest has `cnpg-system` hardcoded in multiple places (namespace metadata and ClusterRoleBinding subjects), so all occurrences need to be replaced.
163
+
:::
164
+
165
+
Alternatively, you can download the [migration-rbac.yaml](/migration-rbac.yaml) file and review it locally before applying:
# Apply it (no need to specify namespace, it's in the manifest)
175
+
kubectl apply -f migration-rbac.yaml
128
176
```
129
177
130
178
:::info
131
-
The new manifest will create all RBAC resources with the `barman-plugin-` prefix. Review the [Migration Manifest](migration-manifest.md) page to see exactly what will be created.
179
+
The new manifest will create all RBAC resources with the `barman-plugin-` prefix. You can review the complete YAML at [migration-rbac.yaml](/migration-rbac.yaml).
132
180
:::
133
181
134
182
## Impact
@@ -170,20 +218,6 @@ If the plugin fails to start after migration, check:
If you encounter issues during migration, please open an issue on the [GitHub repository](https://github.com/cloudnative-pg/plugin-barman-cloud/issues).
0 commit comments