Я поделюсь методом, который работал для меня.
CronJob, который я написал, создает контейнер на основе этого изображения (не забудьте указать версию Openshift с помощью правильного тега) и запускает типичные oc
команды для входа и масштабирования D C, упомянутого выше.
Для меня было непросто понять правильный синтаксис выполнения команд в контейнере после создания.
В любом случае, ниже я включил определение контейнера, указанное в файле yaml CronJob:
...
spec:
containers:
- name: oc-cli
image: 'registry.access.redhat.com/openshift3/ose-cli:v3.11.153' # <===== SPECIFY YOUR OPENSHIFT VERSION
command:
- /bin/sh
- '-c'
- >-
oc login https://<LOGIN URL>/
--insecure-skip-tls-verify -u <LOGIN USERNAME> -p <LOGIN PASSWORD> ; oc scale
dc/example --replicas=1 -n cronjob-test ;
...
Явное написание пароля может быть проблемой, поэтому я добавил Secret и сделал ссылку на него в том же CronJob, так что что секретные данные были частью переменных среды:
...
spec:
containers:
- name: oc-cli
image: 'registry.access.redhat.com/openshift3/ose-cli:v3.11.153' # <===== SPECIFY YOUR OPENSHIFT VERSION
command:
- /bin/sh
- '-c'
- >-
oc login $OC_URL --insecure-skip-tls-verify -u $OC_USER -p
$OC_PASSWORD ; oc scale dc/example --replicas=5 -n
cronjob-test ;
env:
- name: OC_USER
valueFrom:
secretKeyRef:
name: oc-login-credentials
key: username
- name: OC_PASSWORD
valueFrom:
secretKeyRef:
name: oc-login-credentials
key: password
- name: OC_URL
valueFrom:
secretKeyRef:
name: oc-login-credentials
key: url
...
К сожалению, документация Red Hat по этому вопросу не очень полезна, поскольку в ней приведен только один пример.
Kubernetes 'Документы были немного более полезными вместо этого.