5.8.5. OLM 관리 Operator를 사용하여 스코어 카드 실행


CSV(클러스터 서비스 버전)를 사용하여 스코어 카드를 실행하여 클러스터 지원 및 비Operator SDK Operator를 테스트할 수 있습니다.

절차

  1. 스코어 카드에는 Operator의 배포 Pod에 있는 프록시 컨테이너가 Operator 로그를 읽어야 합니다. CSV를 수정하고 한 개의 추가 오브젝트를 생성해야 OLM(Operator Lifecycle Manager)을 사용하여 Operator를 배포하기 전에 프록시를 실행해야 합니다.

    이 단계는 bash 함수를 사용하여 수동으로 또는 자동화할 수 있습니다. 다음 방법 중 하나를 선택합니다.

    • 수동 방법:

      1. local kubeconfig 파일 을 포함하는 프록시 서버 보안을 생성합니다.

        1. 스코어 카드 프록시의 네임스페이스 소유자 참조를 사용하여 사용자 이름을 생성합니다.

          $ echo '{"apiVersion":"","kind":"","name":"scorecard","uid":"","Namespace":"'<namespace>'"}' | base64 -w 0 
          1
          Copy to Clipboard Toggle word wrap
          1
          <namespace> 를 Operator가 배포할 네임스페이스로 바꿉니다.
        2. 다음 템플릿을 사용하여 구성 매니페스트 scorecard-config.yaml 을 작성하고 <username> 을 이전 단계에서 생성한 base64 사용자 이름으로 바꿉니다.

          apiVersion: v1
          kind: Config
          clusters:
          - cluster:
              insecure-skip-tls-verify: true
              server: http://<username>@localhost:8889
            name: proxy-server
          contexts:
          - context:
              cluster: proxy-server
              user: admin/proxy-server
            name: <namespace>/proxy-server
          current-context: <namespace>/proxy-server
          preferences: {}
          users:
          - name: admin/proxy-server
            user:
              username: <username>
              password: unused
          Copy to Clipboard Toggle word wrap
        3. Config 를 base64로 인코딩합니다.

          $ cat scorecard-config.yaml | base64 -w 0
          Copy to Clipboard Toggle word wrap
        4. 시크릿 매니페스트 scorecard-secret.yaml을 생성합니다.

          apiVersion: v1
          kind: Secret
          metadata:
            name: scorecard-kubeconfig
            namespace: <namespace> 
          1
          
          data:
            kubeconfig: <kubeconfig_base64> 
          2
          Copy to Clipboard Toggle word wrap
          1
          <namespace> 를 Operator가 배포할 네임스페이스로 바꿉니다.
          2
          <kubeconfig_base64> 를 base64로 인코딩된 Config 로 바꿉니다.
        5. 보안을 적용합니다.

          $ oc apply -f scorecard-secret.yaml
          Copy to Clipboard Toggle word wrap
        6. 보안을 참조하는 볼륨을 Operator의 배포에 삽입합니다.

          spec:
            install:
              spec:
                deployments:
                - name: memcached-operator
                  spec:
                    ...
                    template:
                      ...
                      spec:
                        containers:
                        ...
                        volumes:
                        - name: scorecard-kubeconfig 
          1
          
                          secret:
                            secretName: scorecard-kubeconfig
                            items:
                            - key: kubeconfig
                              path: config
          Copy to Clipboard Toggle word wrap
          1
          Scorecard kubeconfig 볼륨.
      2. Operator 배포에 있는 각 컨테이너에 볼륨 마운트 및 KUBECONFIG 환경 변수를 삽입합니다.

        spec:
          install:
            spec:
              deployments:
              - name: memcached-operator
                spec:
                  ...
                  template:
                    ...
                    spec:
                      containers:
                      - name: container1
                        ...
                        volumeMounts:
                        - name: scorecard-kubeconfig 
        1
        
                          mountPath: /scorecard-secret
                        env:
                        - name: KUBECONFIG 
        2
        
                          value: /scorecard-secret/config
                      - name: container2 
        3
        
                        ...
        Copy to Clipboard Toggle word wrap
        1
        Scorecard kubeconfig 볼륨 마운트.
        2
        Scorecard kubeconfig 환경 변수.
        3
        이 및 다른 모든 컨테이너에 대해서도 동일한 작업을 반복합니다.
      3. Operator 배포에 스코어 카드 프록시 컨테이너를 삽입합니다.

        spec:
          install:
            spec:
              deployments:
              - name: memcached-operator
                spec:
                  ...
                  template:
                    ...
                    spec:
                      containers:
                      ...
                      - name: scorecard-proxy 
        1
        
                        command:
                        - scorecard-proxy
                        env:
                        - name: WATCH_NAMESPACE
                          valueFrom:
                            fieldRef:
                              apiVersion: v1
                              fieldPath: metadata.namespace
                        image: quay.io/operator-framework/scorecard-proxy:master
                        imagePullPolicy: Always
                        ports:
                        - name: proxy
                          containerPort: 8889
        Copy to Clipboard Toggle word wrap
        1
        스코어 카드 프록시 컨테이너.
    • 자동화된 방법:

      community-operators 리포지토리에는 프로세스의 이전 단계를 수행할 수 있는 여러 bash 함수가 있습니다.

      1. 다음 curl 명령을 실행합니다.

        $ curl -Lo csv-manifest-modifiers.sh \
            https://raw.githubusercontent.com/operator-framework/community-operators/master/scripts/lib/file
        Copy to Clipboard Toggle word wrap
      2. csv-manifest-modifiers.sh 파일을 가져옵니다.

        $ . ./csv-manifest-modifiers.sh
        Copy to Clipboard Toggle word wrap
      3. kubeconfig 시크릿 파일을 생성합니다.

        $ create_kubeconfig_secret_file scorecard-secret.yaml "<namespace>" 
        1
        Copy to Clipboard Toggle word wrap
        1
        <namespace> 를 Operator가 배포할 네임스페이스로 바꿉니다.
      4. 보안을 적용합니다.

        $ oc apply -f scorecard-secret.yaml
        Copy to Clipboard Toggle word wrap
      5. kubeconfig 볼륨을 삽입합니다.

        $ insert_kubeconfig_volume "<csv_file>" 
        1
        Copy to Clipboard Toggle word wrap
        1
        <csv_file> 을 CSV 매니페스트 경로로 바꿉니다.
      6. kubeconfig 보안 마운트를 삽입합니다.

        $ insert_kubeconfig_secret_mount "<csv_file>"
        Copy to Clipboard Toggle word wrap
      7. 프록시 컨테이너를 삽입합니다.

        $ insert_proxy_container "<csv_file>" "quay.io/operator-framework/scorecard-proxy:master"
        Copy to Clipboard Toggle word wrap
  2. 프록시 컨테이너를 삽입한 후 Operator SDK 가이드로 시작하기의 단계를 수행하여 CSV 및 CRD(사용자 정의 리소스 정의)를 번들하고 OLM에 Operator를 배포합니다.
  3. OLM에 Operator가 배포된 후 Operator 프로젝트에 .osdk-scorecard.yaml 구성 파일을 정의하고 csv-path: <csv_manifest_path>olm-deployed 옵션이 설정되었는지 확인합니다.
  4. csv-path: <csv_manifest_path>olm-deployed 옵션이 스코어 카드 구성 파일에 설정된 스코어 카드를 실행합니다.

    $ operator-sdk scorecard
    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