11.10. 커뮤니티 External Secrets Operator에서 Red Hat OpenShift용 외부 Secrets Operator로 마이그레이션


외부 Secrets Operator의 커뮤니티 버전에서 마이그레이션할 수 있습니다. Red Hat OpenShift용 External Secrets Operator로 마이그레이션하면 공식적으로 지원되는 제품을 통해 엔터프라이즈급 지원을 받을 수 있습니다. 또한 설치에서 업그레이드까지 원활한 통합을 제공합니다.

다음 마이그레이션 버전이 완전히 테스트되었습니다.

Expand
업스트림 버전설치 방법다운스트림 버전

0.11.0

OLM

v1.0.0 GA

0.19.0

Helm

v1.0.0 GA

참고

마이그레이션은 롤백을 지원하지 않습니다.

참고

External Secrets Operator for Red Hat OpenShift는 업스트림 버전 0.19.0을 기반으로 합니다. 더 높은 버전의 External Secrets Operator에서 마이그레이션하지 마십시오.

11.10.1. 커뮤니티 외부 시크릿 Operator 삭제

커뮤니티 외부 시크릿 Operator에서 설치한 external-secrets 애플리케이션을 삭제하려면 커뮤니티 External Secrets.io CR(사용자 정의 리소스)의 operatorconfigs.operator.external-secrets.io 사용자 정의 리소스(CR)를 삭제해야 합니다.

사전 요구 사항

  • cluster-admin 역할의 사용자로 로그인해야 합니다.
  • oc 명령줄 툴이 설치되어 구성되어 있어야 합니다.

프로세스

  1. 다음 명령을 실행하여 커뮤니티 Operator의 네임스페이스 를 찾습니다.

    $ oc get operatorconfigs.operator.external-secrets.io -A
    Copy to Clipboard Toggle word wrap

    다음은 네임스페이스 를 찾는 예입니다.

    NAMESPACE             NAME        AGE
    external-secrets      cluster     9m18s
    Copy to Clipboard Toggle word wrap
  2. 다음 명령을 실행하여 operatorconfig 를 삭제합니다.

    $ oc delete operatorconfig <config_name> -n <operator_namespace>
    Copy to Clipboard Toggle word wrap

검증

  1. operatorconfig 가 삭제되었는지 확인하려면 다음 명령을 실행합니다.

    $ oc get operatorconfig -n <operator_namespace>
    Copy to Clipboard Toggle word wrap

    명령에서 리소스를 찾을 수 없습니다.

  2. 이전 Webhook가 삭제되었는지 확인하려면 다음 명령을 실행합니다.

    $ oc get validatingwebhookconfigurations | grep external-secrets
    Copy to Clipboard Toggle word wrap
    $ oc get mutatingwebhookconfigurations | grep external-secrets
    Copy to Clipboard Toggle word wrap

    명령에서 결과를 반환하지 않아야 합니다.

11.10.2. 커뮤니티 외부 시크릿 Operator 설치 제거

다시 생성되거나 새 보안과 충돌하지 않도록 커뮤니티 외부 시크릿 Operator를 설치 제거해야 합니다.

사전 요구 사항

  • cluster-admin 역할의 사용자로 로그인해야 합니다.
  • operatorconfig 를 삭제해야 합니다.

프로세스

  1. OLM(Operator Lifecycle Manager) 서브스크립션을 통해 커뮤니티 외부 시크릿 Operator를 설치한 경우 다음 단계를 수행하여 Operator를 삭제합니다.

    1. 다음 명령을 실행하여 서브스크립션 이름을 찾습니다.

      $ oc get subscription -n <operator_namespace> | grep external-secrets
      Copy to Clipboard Toggle word wrap
    2. 다음 명령을 실행하여 서브스크립션을 삭제합니다.

      $ oc delete subscription <subscription_name> -n <operator_namespace>
      Copy to Clipboard Toggle word wrap
    3. 다음 명령을 실행하여 ClusterServiceVersion 을 삭제합니다.

      $ oc delete csv <csv_name> -n <operator_namespace>
      Copy to Clipboard Toggle word wrap
  2. Helm에 의해 커뮤니티 {external-secret-operator}를 설치한 경우 다음 명령을 실행하여 Operator를 삭제합니다.

    $ helm uninstall <release_name> -n <operator_namespace>
    Copy to Clipboard Toggle word wrap
  3. 원시 매니페스트로 커뮤니티 {external-secret-operator}를 설치한 경우 다음 명령을 실행하여 Operator를 삭제합니다.

    $ oc delete -f /path/to/your/old/manifests.yaml -n <operator_namespace>
    Copy to Clipboard Toggle word wrap

11.10.3. Red Hat OpenShift용 외부 Secrets Operator 설치

operatorconfig 가 삭제되고 커뮤니티 {external-secret-operator-short}이 삭제되면 Red Hat OpenShift용 외부 Secrets Operator를 설치할 수 있습니다. 자세한 내용은 외부 Secrets Operator for Red Hat OpenShift 설치를 참조하십시오.

11.10.4. ExternalSecretsConfig Operator 생성

ExternalSecretsConfig 를 생성하는 목적은 external-secrets 를 설치하고 구성하는 것입니다. 이 구성을 사용하면 cert-manager 및 Bitwarden 지원이 활성화됩니다.

사전 요구 사항

  • External Secrets Operator for Red Hat OpenShift가 설치되어 있습니다.
  • cert-manager Operator for Red Hat OpenShift가 설치되어 있습니다.
  • cluster-admin 권한이 있는 클러스터에 액세스할 수 있습니다.

프로세스

  1. 다음 내용으로 YAML 파일을 정의하여 externalsecretsconfig 파일을 생성합니다.

    apiVersion: operator.openshift.io/v1alpha1
    kind: ExternalSecretsConfig
    metadata:
      labels:
        app.kubernetes.io/name: cluster
      name: cluster
    spec:
      appConfig:
        logLevel: 3
      webhookConfig:
        certificateCheckInterval: 5m0s
      controllerConfig:
        certProvider:
          certManager:
            certificateDuration: 8760h0m0s
            certificateRenewBefore: 30m0s
            injectAnnotations: "true"
            issuerRef:
              group: cert-manager.io
              kind: Issuer
              name: _<created_issuer_name>_
        mode: Enabled
        networkPolicies:
        - componentName: ExternalSecretsCoreController
          egress:
          - ports:
            - port: 443
              protocol: TCP
            - port: 9998
              protocol: TCP
            name: allow-external-secrets-egress
        plugins:
          bitwardenSecretManagerProvider:
            mode: Enabled
    Copy to Clipboard Toggle word wrap
  2. 다음 명령을 실행하여 ExternalSecretsConfig 오브젝트를 생성합니다.

    $ oc create -f externalsecretsconfig.yaml
    Copy to Clipboard Toggle word wrap

검증

모든 CR(사용자 정의 리소스)이 있고 API가 v1beta1 대신 v1 을 사용하고 있는지 확인합니다. CR은 유지되며 새 Operator에 의해 자동으로 변환됩니다.

  1. external-secrets Pod가 실행 중인지 확인하려면 다음 명령을 실행합니다.

    $ oc get pods -n external-secret
    Copy to Clipboard Toggle word wrap

    다음은 external-secrets Pod가 실행 중 상태인 출력의 예입니다.

    NAME                                          READY        STATUS        RESTARTS     AGE
    bitwarden-sdk-server-5b4cf48766-w7zp7         1/1          Running       0            5m
    external-secrets-5854b85dd5-m6zf9             1/1          Running       0            5m
    external-secrets-webhook-5cb85b8fdb-6jtqb     1/1          Running       0            5m
    Copy to Clipboard Toggle word wrap
  2. SecretStore CR이 있는지 확인하려면 다음 명령을 실행합니다.

    $ oc get secretstores.external-secrets.io -A
    Copy to Clipboard Toggle word wrap

    다음은 SecretStore 가 있는지 확인하는 출력의 예입니다.

    NAMESPACE               NAME                         AGE         STATUS      CAPABILITIES    READY
    external-secrets-1      gcp-store                    18min       Valid       ReadWrite       True
    external-secrets-2      aws-secretstore              11min       Valid       ReadWrite       True
    external-secrets        bitwarden-secretsmanager     20min       Valid       Readwrite       True
    Copy to Clipboard Toggle word wrap
  3. ExternalSecret CR이 있는지 확인하려면 다음 명령을 실행합니다.

    $ oc get externalsecrets.external-secrets.io -A
    Copy to Clipboard Toggle word wrap

    다음은 SecretStore 가 있는지 확인하는 출력의 예입니다.

    NAMESPACE             NAME                    STORE                      REFRESH INTERVAL    STATUS          READY
    external-secrets-1    gcp-externalsecret      gcp-store                  1hr                 SecretSynced    True
    external-secrets-2    aws-external-secret     aws-secret-store           1hr                 SecretSynced    True
    external-secrets      bitwarden               bitwarden-secretsmanager   1hr                 SecretSynced    True
    Copy to Clipboard Toggle word wrap
  4. SecretStoreapiVersion: external-secrets.io/v1 인지 확인하려면 다음 명령을 실행합니다.

    $ oc get secretstores.external-secrets.io -n external-secrets-1 gcp-store -o yaml
    Copy to Clipboard Toggle word wrap

    다음은 SecretStoreapiVersion: external-secrets.io/v1 인 예제 출력입니다.

    apiVersion: external-secrets.io/v1
    kind: SecretStore
    metadata:
      creationTimestamp: "2025-10-27T11:38:19Z"
      generation: 1
      name: gcp-store
      namespace: external-secrets-1
      resourceVersion: "104519"
      uid: 7bccb0cc-2557-4f4a-9caa-1577f0108f4b
    spec:
    .
    .
    .
    status:
      capabilities: ReadWrite
      conditions:
      - lastTransitionTime: "2025-10-27T11:38:19Z"
        message: store validated
        reason: Valid
        status: "True"
        type: Ready
    Copy to Clipboard Toggle word wrap
  5. ExternalSecretapiVersion: external-secrets.io/v1 인지 확인하려면 다음 명령을 실행합니다.

    $ oc get externalsecrets.external-secrets.io -n external-secrets-1 gcp-externalsecret -o yaml
    Copy to Clipboard Toggle word wrap

    ExternalSecretapiVersion: external-secrets.io/v1 인 예제 출력은 다음과 같습니다.

    apiVersion: external-secrets.io/v1
    kind: ExternalSecret
    metadata:
      creationTimestamp: "2025-10-27T11:39:03Z"
      generation: 1
      name: gcp-externalsecret
      namespace: external-secrets-1
      resourceVersion: "104532"
      uid: 93a3295a-a3ad-4304-90e1-1328d951e5fb
    spec:
    .
    .
    .
    status:
      binding:
        name: k8s-secret-gcp
      conditions:
      - lastTransitionTime: "2025-10-27T11:39:03Z"
        message: secret synced
        reason: SecretSynced
        status: "True"
        type: Ready
      refreshTime: "2025-10-27T12:13:15Z"
      syncedResourceVersion: 1-f47fe3c0b255b6dd8047cdffa772587bb829efe7a1cb70febeda2eb2
    Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat