Добавление или изменение секрета опроса Red Hat в кластере Azure Red Hat OpenShift 4

В этом руководстве описывается добавление или изменение секрета опроса Red Hat для существующего кластера Azure Red Hat OpenShift (ARO) 4.x.

При первом создании кластера можно добавить свой секрет опроса. Дополнительные сведения о создании кластера ARO с секретом опроса Red Hat см. в статье Создание кластера Azure Red Hat OpenShift 4.

Подготовка к работе

В этом руководстве предполагается, что кластер Azure Red Hat OpenShift 4 уже существует. Убедитесь в наличии доступа к кластеру с правами администратора.

Подготовка секрета опроса

При создании кластера ARO без добавления секрета опроса Red Hat такой секрет создается в кластере автоматически. Однако этот секрет по запросу заполнен не полностью.

В этом разделе описано, как изменить этот секрет опроса, используя дополнительные значения из секрета по запросу Red Hat.

  1. Извлеките секрет с именем pull-secret в пространстве имен openshift-config и сохраните его в отдельный файл, выполнив следующую команду:

    oc get secrets pull-secret -n openshift-config -o template='{{index .data ".dockerconfigjson"}}' | base64 -d > pull-secret.json
    

    Результат должен быть аналогичен следующему. (Обратите внимание, что фактическое значение секрета было удалено.)

    {
        "auths": {
            "arosvc.azurecr.io": {
                "auth": "<my-aroscv.azurecr.io-secret>"
            }
        }
    }
    
  2. Перейдите на портал диспетчера кластеров Red Hat OpenShift и выберите Скачать секрет опроса. Секрет опроса для Red Hat будет выглядеть следующим образом. (Обратите внимание, что фактические значения секрета были удалены.)

    {
        "auths": {
            "cloud.openshift.com": {
                "auth": "<my-crc-secret>",
                "email": "klamenzo@redhat.com"
            },
            "quay.io": {
                "auth": "<my-quayio-secret>",
                "email": "klamenzo@redhat.com"
            },
            "registry.connect.redhat.com": {
                "auth": "<my-registry.connect.redhat.com-secret>",
                "email": "klamenzo@redhat.com"
            },
            "registry.redhat.io": {
                "auth": "<my-registry.redhat.io-secret>",
                "email": "klamenzo@redhat.com"
            }
        }
    }
    
  3. Измените файл секрета опроса, полученный из кластера, добавив записи, найденные в секрете опроса Red Hat.

    Важно!

    Включение записи cloud.openshift.com из секрета опроса Red Hat приведет к тому, что кластер начнет отправлять данные телеметрии в Red Hat. Включайте этот раздел, только если нужно отправлять данные телеметрии. В противном случае пропустите следующий раздел.

    {
            "cloud.openshift.com": {
                "auth": "<my-crc-secret>",
                "email": "klamenzo@redhat.com"
            }
    

    Внимание

    Не удаляйте и не изменяйте запись arosvc.azurecr.io в секрете опроса. Этот раздел необходим для правильной работы кластера.

    "arosvc.azurecr.io": {
                "auth": "<my-aroscv.azurecr.io-secret>"
            }
    

    Окончательный файл должен выглядеть примерно следующим образом. (Обратите внимание, что фактические значения секрета были удалены.)

    {
        "auths": {
            "cloud.openshift.com": {
                "auth": "<my-crc-secret>",
                "email": "klamenzo@redhat.com"
            },
            "quay.io": {
                "auth": "<my-quayio-secret>",
                "email": "klamenzo@redhat.com"
            },
            "registry.connect.redhat.com": {
                "auth": "<my-registry.connect.redhat.com-secret>",
                "email": "klamenzo@redhat.com"
            },
            "registry.redhat.io": {
                "auth": "<my-registry.redhat.io-secret>",
                "email": "klamenzo@redhat.com"
            },
            "arosvc.azurecr.io": {
                "auth": "<my-aroscv.azurecr.io-secret>"
            }
        }
    }
    
  4. Убедитесь, что файл является правильным JSON-файлом. Проверить правильность формата JSON можно разными способами. В следующем примере используется jq:

    cat pull-secret.json | jq
    

    Примечание.

    Если в файле есть ошибка, она отображается как parse error.

Добавление секрета опроса в кластер

Выполните следующую команду, чтобы изменить секрет опроса.

Примечание.

В ARO 4.9 или более ранней версии эта команда приведет к перезапуску узлов кластера по одному по мере их обновления. В версии ARO 4.10 или более поздней перезагрузка не будет активирована.

oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=./pull-secret.json

Убедитесь, что секрет извлечения установлен

oc exec -n openshift-apiserver $(oc get pod -n openshift-apiserver -o jsonpath="{.items[0].metadata.name}") -- cat /var/lib/kubelet/config.json

После настройки секрета можно включить операторы Certified в Red Hat.

Изменение файлов конфигурации

Измените следующие объекты, чтобы включить операторы Red Hat.

Сначала измените файл конфигурации оператора Samples. Затем можно выполнить следующую команду, чтобы изменить файл конфигурации:

oc edit configs.samples.operator.openshift.io/cluster -o yaml

Измените значение параметра spec.managementState с Removed на Managed.

В следующем фрагменте кода YAML показаны только соответствующие разделы измененного файла YAML:

apiVersion: samples.operator.openshift.io/v1
kind: Config
metadata:
  
  ...
  
spec:
  architectures:
  - x86_64
  managementState: Managed

Во-вторых, выполните следующую команду, чтобы изменить файл конфигурации оператора Hub:

oc edit operatorhub cluster -o yaml

Измените Spec.Sources.Disabled значение на truefalse любые источники, которые вы хотите включить.

В следующем фрагменте кода YAML показаны только соответствующие разделы измененного файла YAML:

Name:         cluster

...
                 dd3310b9-e520-4a85-98e5-8b4779ee0f61
Spec:
  Sources:
    Disabled:  false
    Name:      certified-operators
    Disabled:  false
    Name:      redhat-operators

Сохраните файл, чтобы применить изменения.

Проверка работоспособности секрета

Для обновления кластера после добавления секрета допроса и изменения правильных файлов конфигурации может потребоваться несколько минут. Чтобы проверить, обновился ли кластер, выполните следующую команду, чтобы показать доступные источники операторов Certified и операторов Red Hat:

$ oc get catalogsource -A
NAMESPACE               NAME                  DISPLAY               TYPE   PUBLISHER   AGE
openshift-marketplace   certified-operators   Certified Operators   grpc   Red Hat     10s
openshift-marketplace   community-operators   Community Operators   grpc   Red Hat     18h
openshift-marketplace   redhat-operators      Red Hat Operators     grpc   Red Hat     11s

Если операторы Certified и Red Hat не видны, подождите несколько минут и повторите попытку.

Чтобы убедиться, что секрет опроса обновлен и работает правильно, откройте OperatorHub и проверьте любой проверенный оператор Red Hat. Например, проверьте, доступен ли оператор хранилища контейнера OpenShift, и проверьте, есть ли у вас разрешения на установку.

Следующие шаги

Дополнительные сведения о секретах опроса для Red Hat см. в статье Использование секретов опроса образа.

Дополнительные сведения о Red Hat OpenShift 4 см. в документации платформы контейнеров Red Hat OpenShift.