Skip to content

Instantly share code, notes, and snippets.

@amisevsk
Created November 15, 2022 23:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save amisevsk/9df020a46156b1824cd71a45785449aa to your computer and use it in GitHub Desktop.
Save amisevsk/9df020a46156b1824cd71a45785449aa to your computer and use it in GitHub Desktop.
apiVersion: v1
kind: ServiceAccount
metadata:
name: imagepuller-cronjob
labels:
name: imagepuller-cronjob
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: imagepuller-cronjob
labels:
name: imagepuller-cronjob
rules:
- verbs:
- get
- list
apiGroups:
- operators.coreos.com
resources:
- clusterserviceversions
- verbs:
- get
- list
- patch
apiGroups:
- che.eclipse.org
resources:
- kubernetesimagepullers
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: imagepuller-cronjob
labels:
name: imagepuller-cronjob
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: imagepuller-cronjob
subjects:
- kind: ServiceAccount
name: imagepuller-cronjob
---
kind: CronJob
apiVersion: batch/v1
metadata:
name: imagepuller-update-images
labels:
name: imagepuller-cronjob
spec:
schedule: 0 * * * *
concurrencyPolicy: Allow
suspend: false
jobTemplate:
metadata:
labels:
name: imagepuller-cronjob
spec:
template:
metadata:
labels:
name: imagepuller-cronjob
spec:
containers:
- name: pod-terminator
image: 'quay.io/devfile/universal-developer-image:ubi8-latest'
command:
- /bin/sh
- '-c'
- |
export KIP_NAME=$(oc get kubernetesimagepullers --no-headers -o custom-columns=":metadata.name" | head -n 1)
export IMAGES=$(for operator in devspaces devworkspace; do \
oc get csv $(oc get csv --no-headers -o custom-columns=":metadata.name" | grep $operator) -o json \
| jq -r '.spec.relatedImages[] | "\(.name | gsub("_";"-") | .[0:63] | rtrimstr("-"))=\(.image);"'; \
done | tr -d '\n')
export NAMESPACE=$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace)
oc patch kubernetesimagepullers -n $NAMESPACE "$KIP_NAME" --type merge -p "
spec:
images: $IMAGES
"
restartPolicy: OnFailure
terminationGracePeriodSeconds: 30
serviceAccountName: imagepuller-cronjob
serviceAccount: imagepuller-cronjob
successfulJobsHistoryLimit: 3
failedJobsHistoryLimit: 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment