- Backup managed resource manifests:
kubectl get managed -o yaml > backup-mrs.yaml
- Update deletion policy to
Orphan
:
P.S: If this field is used in the managed resources, we need to have special treatment
kubectl patch $(kubectl get managed -o name) -p '{"spec":{"deletionPolicy":"Orphan"}}' --type=merge
- Install monolith provider:
kubectl apply -f - <<EOF
apiVersion: pkg.crossplane.io/v1
kind: Provider
Metadata:
name: $PROVIDER_NAME
spec:
package: $PACKAGE
revisionActivationPolicy: Manual
EOF
- Delete smaller provider(s):
kubectl delete provider.pkg $(kubectl get provider.pkg |grep upbound |awk '{print $1}')
- Update monolith providers with
revisionActivationPolicy:Automatic
:
kubectl patch provider.pkg $PROVIDER_NAME --type=merge -p='{"spec":{"revisionActivationPolicy":"Automatic"}}'
- Verify that MRs and providers are ready:
kubectl get managed
kubectl get provider.pkg
- Update deletion policy to
Delete
:
kubectl patch $(kubectl get managed -o name) -p '{"spec":{"deletionPolicy":"Delete"}}' --type=merge