UpgradeJobHook examples
This is a collection of upgradejobhooks for frequently used one-off tasks.
Scale down a machineset
Scale down a machineset to remove a node after upgradejob is finished.
Disables ArgoCD auto-sync for the root
and openshift4-nodes
apps.
Only runs once on the next UpgradeJob due to the .spec.run: Next
setting.
A clusterrolebinding for cluster-admin for the appuio-openshift-upgrade-controller default serviceaccount is included below.
---
apiVersion: managedupgrade.appuio.io/v1beta1
kind: UpgradeJobHook
metadata:
name: scale-down-machineset
namespace: appuio-openshift-upgrade-controller
spec:
events:
- Finish
selector:
matchLabels:
appuio-managed-upgrade: "true"
run: Next
template:
spec:
template:
spec:
containers:
- args:
- -c
- |
#!/bin/sh
set -e
oc -n syn patch apps root --type=json \
-p '[{"op":"replace", "path":"/spec/syncPolicy", "value": {}}]'
oc -n syn patch apps openshift4-nodes --type=json \
-p '[{"op":"replace", "path":"/spec/syncPolicy", "value": {}}]'
oc -n openshift-machine-api scale --replicas=3 machineset app
command:
- sh
image: quay.io/appuio/oc:v4.13
name: remove-nodes
env:
- name: HOME
value: /export
volumeMounts:
- mountPath: /export
name: export
workingDir: /export
restartPolicy: Never
volumes:
- emptyDir: {}
name: export
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: drain-nodes-upgrade-controller
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: default
namespace: appuio-openshift-upgrade-controller