5.6.5. ネットワークが制限された環境についての Operator の有効化

Operator の作成者は、Operator がネットワークが制限された環境、または非接続の環境で適切に実行されるよう追加要件を満たすことを確認する必要があります。

非接続モードをサポートするための Operator の要件

  • Operator のクラスターサービスバージョン (CSV) で以下を行います。

    • Operator がそれらの機能を実行するために必要となる可能性のある 関連イメージ または他のコンテナーを一覧表示します。
    • 指定されたすべてのイメージを、タグではなくダイジェスト (SHA) で参照します。
  • Operator のすべての依存関係は、非接続モードでの実行もサポートする必要があります。
  • Operator にはクラスター外のリソースは必要ありません。

CSV の要件については、Operator の作成者は以下の変更を加えることができます。

前提条件

  • CSV を含む Operator プロジェクト

手順

  1. Operator の CSV の 2 つの場所で関連するイメージへの SHA 参照を使用します。

    1. spec.relatedImages を更新します。

      ...
      spec:
        relatedImages: 1
          - name: etcd-operator 2
            image: quay.io/etcd-operator/operator@sha256:d134a9865524c29fcf75bbc4469013bc38d8a15cb5f41acfddb6b9e492f556e4 3
          - name: etcd-image
            image: quay.io/etcd-operator/etcd@sha256:13348c15263bd8838ec1d5fc4550ede9860fcbb0f843e48cbccec07810eebb68
      ...
      1
      relatedImages セクションを作成し、関連するイメージの一覧を設定します。
      2
      イメージの一意の識別子を指定します。
      3
      各イメージを、イメージタグでなく、ダイジェスト (SHA) で指定します。
    2. Operator が使用する必要のあるイメージを挿入する環境変数を宣言する際に、デプロイメントの env セクションを更新します。

      spec:
        install:
          spec:
            deployments:
            - name: etcd-operator-v3.1.1
              spec:
                replicas: 1
                selector:
                  matchLabels:
                    name: etcd-operator
                strategy:
                  type: Recreate
                template:
                  metadata:
                    labels:
                      name: etcd-operator
                  spec:
                    containers:
                    - args:
                      - /opt/etcd/bin/etcd_operator_run.sh
                      env:
                      - name: WATCH_NAMESPACE
                        valueFrom:
                          fieldRef:
                            fieldPath: metadata.annotations['olm.targetNamespaces']
                      - name: ETCD_OPERATOR_DEFAULT_ETCD_IMAGE 1
                        value: quay.io/etcd-operator/etcd@sha256:13348c15263bd8838ec1d5fc4550ede9860fcbb0f843e48cbccec07810eebb68 2
                      - name: ETCD_LOG_LEVEL
                        value: INFO
                      image: quay.io/etcd-operator/operator@sha256:d134a9865524c29fcf75bbc4469013bc38d8a15cb5f41acfddb6b9e492f556e4 3
                      imagePullPolicy: IfNotPresent
                      livenessProbe:
                        httpGet:
                          path: /healthy
                          port: 8080
                        initialDelaySeconds: 10
                        periodSeconds: 30
                      name: etcd-operator
                      readinessProbe:
                        httpGet:
                          path: /ready
                          port: 8080
                        initialDelaySeconds: 10
                        periodSeconds: 30
                      resources: {}
                    serviceAccountName: etcd-operator
          strategy: deployment
      1
      環境変数を使用して Operator によって参照されるイメージを挿入します。
      2
      各イメージを、イメージタグでなく、ダイジェスト (SHA) で指定します。
      3
      また、イメージタグではなく、ダイジェスト (SHA) で Operator コンテナーイメージを参照します。
      注記

      プローブの設定時に、timeoutSeconds 値は periodSeconds の値よりも低い値である必要があります。timeoutSeconds のデフォルト値は 1 です。periodSeconds のデフォルト値は 10 です。

  2. disconnected アノテーションを追加します。これは、Operator が非接続環境で機能することを示します。

    metadata:
      annotations:
        operators.openshift.io/infrastructure-features: '["disconnected"]'

    Operator は、このインフラストラクチャー機能によって OperatorHub でフィルターされます。