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


커뮤니티 External 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의 구성 리소스를 삭제합니다. 이 작업을 수행하면 Red Hat OpenShift용 외부 Secrets Operator를 설치하기 전에 충돌이 발생하지 않습니다.

사전 요구 사항

  • 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 CR(사용자 정의 resrouce)을 삭제합니다.

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

검증

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

    $ 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 설치 제거

Red Hat OpenShift용 외부 Secret Operator로 마이그레이션한 후 충돌 또는 실수로 재생성하지 않도록 커뮤니티 외부 시크릿 Operator를 설치 제거합니다.

다시 생성되거나 새 보안과 충돌하지 않도록 커뮤니티 외부 시크릿 Operator를 설치 제거해야 합니다. 설치 제거 단계는 커뮤니티 외부 시크릿 Operator 설치 방법에 따라 다르지만 사전 요구 사항은 각각에 대해 동일합니다.

11.10.2.1. helm installed community External Secrets Operator 설치 제거

Helm을 사용하여 설치된 커뮤니티 외부 Secrets Operator를 제거합니다. 이를 통해 리소스를 확보하고 클러스터에 대한 클린 환경을 유지 관리할 수 있습니다.

사전 요구 사항

  • cluster-admin 역할의 사용자로 로그인해야 합니다.
  • operatorconfig CR(사용자 정의 리소스)을 삭제해야 합니다.

프로세스

  1. Red Hat OpenShift용 외부 Secrets Operator를 설치합니다. external-secrets-operator 네임스페이스는 null이어야 합니다.
  2. 다음 명령을 실행하여 외부 Secrets Operator를 삭제합니다.

    $ oc helm delete <release_name> -n <operator_namespace>
    Copy to Clipboard Toggle word wrap
    참고

    helm delete 를 사용하면 모든 CRD(Custom Resource Definitions) 및 CR을 삭제할 수 있습니다. 네임스페이스 external-secrets-operator 가 비어 있으면 먼저 다운스트림 Operator를 설치하는 것이 좋습니다.

11.10.2.2. Operator Lifecylce Manager 설치 제거 커뮤니티 External Secrets Operator

OLM(Operator Lifecycle Manager) 서브스크립션을 통해 설치한 커뮤니티 외부 시크릿 Operator를 제거합니다. 이를 통해 리소스를 확보하고 클러스터에 대한 클린 환경을 유지 관리할 수 있습니다.

사전 요구 사항

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

프로세스

  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

원시 매니페스트에서 설치한 커뮤니티 외부 Secrets Operator를 제거합니다. 이를 통해 리소스를 확보하고 클러스터에 대한 클린 환경을 유지 관리할 수 있습니다.

사전 요구 사항

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

프로세스

  • 원시 매니페스트에서 설치한 communiity External Secrets 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 설치

커뮤니티 버전을 정리한 후 Red Hat OpenShift용 External Secrets Operator를 설치합니다. 이렇게 하면 클러스터에서 시크릿을 관리하기 위해 공식적으로 지원되는 서비스가 설정됩니다. 자세한 내용은 외부 Secrets Operator for Red Hat OpenShift 설치를 참조하십시오.

11.10.4. ExternalSecretsConfig Operator 생성

코어 external-secrets 구성 요소를 설치하고 구성할 ExternalSecretsConfig 리소스를 생성합니다. 이 설정은 Bitwarden 및 cert-manager 지원과 같은 기능이 올바르게 활성화되도록 하는 데 도움이 됩니다.

사전 요구 사항

  • 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