#openshift
#openshift
Вопрос:
У меня есть BuildConfig
следующий strategy
блок:
strategy:
sourceStrategy:
from:
kind: DockerImage
name: <insecure registry pullspec>
forcePull: true
incremental: true
type: Source
Образ builder поступает из реестра, который использует самозаверяющий сертификат. Как мне указать конфигурации сборки, чтобы она либо А) использовала сертификат CA для реестра, либо Б) игнорировала ошибки сертификата?
Я попытался добавить сертификат CA как непрозрачный секрет, а затем использовать pullSecret
, но это не сработало:
strategy:
sourceStrategy:
forcePull: true
from:
kind: DockerImage
name: <insecure registry pullspec>
incremental: true
pullSecret:
name: <name of opaque secret with ca cert>
type: Source
Я запускаю эту сборку в кластере OpenShift 3.11.
Ответ №1:
На самом деле это описано в документации как добавить свой собственный корневой CA в качестве additionalTrustedCA
: Настройка дополнительных доверенных центров сертификации для сборок
Вот соответствующие части:
Создайте ConfigMap в пространстве имен openshift-config, содержащем доверенные сертификаты для реестров, которые используют самозаверяющие сертификаты. Для каждого файла CA убедитесь, что ключ в ConfigMap является именем хоста реестра в формате hostname [..port]:
$ oc create configmap registry-cas -n openshift-config --from-file=myregistry.corp.com..5000=/etc/docker/certs.d/myregistry.corp.com:5000/ca.crt --from-file=otherregistry.com=/etc/docker/certs.d/otherregistry.com/ca.crt
Обновите конфигурацию образа кластера:
$ oc patch image.config.openshift.io/cluster --patch '{"spec":{"additionalTrustedCA":{"name":"registry-cas"}}}' --type=merge
Комментарии:
1. Я предполагаю
oc patch
, что команда также должна выполняться вopenshift-config
проекте, верно?2. Кроме того, похоже
openshift-config
, что это недопустимое пространство имен :Error from server (NotFound): namespaces "openshift-config" not found
. И это после входа в систему какsystem:admin
.