1장. OpenShift Pipelines와 함께 Tekton Hub 사용


중요

Tekton Hub는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

Tekton Hub를 사용하면 CI/CD 워크플로에 대해 재사용 가능한 작업과 파이프라인을 검색, 검색 및 공유할 수 있습니다. Tekton Hub의 공용 인스턴스는 hub.tekton.dev 에서 사용할 수 있습니다. 클러스터 관리자는 TektonHub CR(사용자 정의 리소스)의 구성을 수정하여 Tekton Hub의 사용자 정의 인스턴스를 설치하고 배포할 수도 있습니다.

1.1. OpenShift Container Platform 클러스터에 Tekton Hub 설치 및 배포

Tekton Hub는 선택적 구성 요소입니다. 클러스터 관리자는 TektonConfig CR(사용자 정의 리소스)을 사용하여 설치할 수 없습니다. Tekton Hub를 설치하고 관리하려면 TektonHub CR을 사용합니다.

다음 두 가지 모드를 사용하여 클러스터에 Tekton Hub를 설치할 수 있습니다.

  • 로그인 인증 없이 Tekton Hub 아티팩트에 대한 등급
  • Tekton Hub 아티팩트에 대한 로그인 권한 부여 및 등급 사용
참고

Github Enterprise 또는 Gitlab Enterprise를 사용하는 경우 엔터프라이즈 서버와 동일한 네트워크에 Tekton Hub를 설치 및 배포합니다. 예를 들어 엔터프라이즈 서버가 VPN 뒤에서 실행 중인 경우 VPN 뒤의 클러스터에 Tekton Hub를 배포합니다.

1.1.1. 로그인 및 평가 없이 Tekton Hub 설치

기본 구성으로 클러스터에 Tekton Hub를 자동으로 설치할 수 있습니다. 기본 구성을 사용하는 경우 Tekton Hub는 Tekton Hub 아티팩트에 대한 권한 부여 및 등급으로 로그인할 수 없습니다.

사전 요구 사항

  • Red Hat OpenShift Pipelines Operator가 클러스터의 기본 openshift-pipelines 네임스페이스에 설치되어 있는지 확인합니다.

프로세스

  1. 다음 예와 유사한 TektonHub CR을 생성합니다.

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonHub
    metadata:
      name: hub
    spec:
      targetNamespace: openshift-pipelines 1
      db:                      # Optional: If you want to use custom database
        secret: tekton-hub-db  # Name of db secret should be `tekton-hub-db`
    
      categories:              # Optional: If you want to use custom categories
        - Automation
        - Build Tools
        - CLI
        - Cloud
        - Code Quality
        - ...
    
      catalogs:                # Optional: If you want to use custom catalogs
        - name: tekton
          org: tektoncd
          type: community
          provider: github
          url: https://github.com/tektoncd/catalog
          revision: main
    
      scopes:                   # Optional: If you want to add new users
        - name: agent:create
          users: [abc, qwe, pqr]
        - name: catalog:refresh
          users: [abc, qwe, pqr]
        - name: config:refresh
          users: [abc, qwe, pqr]
    
      default:                   # Optional: If you want to add custom default scopes
        scopes:
          - rating:read
          - rating:write
    
      api:
        catalogRefreshInterval: 30m 2
    1
    Tekton Hub를 설치해야 하는 네임스페이스입니다. 기본값은 openshift-pipelines 입니다.
    2
    카탈로그를 자동으로 새로 고치는 시간 간격입니다. 지원되는 시간 단위는 초(s), 분(m), 시간(h), 일(d) 및 주(w)입니다. 기본 간격은 30분입니다.
    참고

    TektonHub CR에서 선택적 필드에 사용자 정의 값을 제공하지 않으면 Tekton Hub API 구성 맵에 구성된 기본값이 사용됩니다.

  2. TektonHub CR을 적용합니다.

    $ oc apply -f <tekton-hub-cr>.yaml
  3. 설치 상태를 확인합니다. TektonHub CR은 안정적인 상태를 유지하는 데 약간의 시간이 걸릴 수 있습니다.

    $ oc get tektonhub.operator.tekton.dev

    샘플 출력

    NAME   VERSION   READY   REASON   APIURL                    UIURL
    hub    v1.9.0    True             https://api.route.url/    https://ui.route.url/

1.1.2. 로그인 및 평가를 사용하여 Tekton Hub 설치

Tekton Hub 아티팩트에 대한 권한 부여 및 등급을 사용한 로그인을 지원하는 사용자 정의 구성으로 클러스터에 Tekton Hub를 설치할 수 있습니다.

사전 요구 사항

  • Red Hat OpenShift Pipelines Operator가 클러스터의 기본 openshift-pipelines 네임스페이스에 설치되어 있는지 확인합니다.

프로세스

  1. Git 리포지토리 호스팅 공급자를 사용하여 OAuth 애플리케이션을 생성하고 클라이언트 ID 및 클라이언트 시크릿을 기록해 둡니다. 지원되는 공급자는 GitHub, GitLab, BitBucket입니다.

  2. Tekton Hub API 시크릿을 포함하도록 < tekton_hub_root>/config/02-api/20-api-secret.yaml 파일을 편집합니다. 예를 들면 다음과 같습니다.

    apiVersion: v1
    kind: Secret
    metadata:
      name: tekton-hub-api
      namespace: openshift-pipelines
    type: Opaque
    stringData:
      GH_CLIENT_ID: 1
      GH_CLIENT_SECRET: 2
      GL_CLIENT_ID: 3
      GL_CLIENT_SECRET: 4
      BB_CLIENT_ID: 5
      BB_CLIENT_SECRET: 6
      JWT_SIGNING_KEY: 7
      ACCESS_JWT_EXPIRES_IN: 8
      REFRESH_JWT_EXPIRES_IN: 9
      AUTH_BASE_URL: 10
      GHE_URL: 11
      GLE_URL: 12
    1
    GitHub OAuth 애플리케이션의 클라이언트 ID입니다.
    2
    GitHub OAuth 애플리케이션의 클라이언트 시크릿.
    3
    GitLab OAuth 애플리케이션의 클라이언트 ID입니다.
    4
    GitLab OAuth 애플리케이션의 클라이언트 시크릿입니다.
    5
    BitBucket OAuth 애플리케이션의 클라이언트 ID입니다.
    6
    BitBucket OAuth 애플리케이션의 클라이언트 시크릿입니다.
    7
    사용자를 위해 생성된 JSON 웹 토큰(JWT)에 서명하는 데 사용되는 긴 임의 문자열입니다.
    8
    액세스 토큰이 만료된 후 시간 제한을 추가합니다. 예를 들어 1m 에서는 m은 분을 나타냅니다. 지원되는 시간 단위는 초(s), 분(m), 시간(h), 일(d) 및 주(w)입니다.
    9
    새로 고침 토큰이 만료된 후 시간 제한을 추가합니다. 예를 들어 1m 에서는 m 은 분을 나타냅니다. 지원되는 시간 단위는 초(s), 분(m), 시간(h), 일(d) 및 주(w)입니다. 토큰 새로 고침에 설정된 만료 시간이 토큰 액세스에 설정된 만료 시간보다 큰지 확인합니다.
    10
    OAuth 애플리케이션의 경로 URL입니다.
    11
    GitHub Enterprise URL(GitHub Enterprise을 사용하여 인증하는 경우). 이 필드의 값으로 카탈로그에 URL을 지정하지 마십시오.
    12
    GitLab Enterprise를 사용하여 인증하는 경우 GitLab Enterprise URL입니다. 이 필드의 값으로 카탈로그에 URL을 지정하지 마십시오.
    참고

    배포와 관련이 없는 Git 리포지토리 호스팅 서비스 공급자에 대해 사용되지 않는 필드를 삭제할 수 있습니다.

  3. 다음 예와 유사한 TektonHub CR을 생성합니다.

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonHub
    metadata:
      name: hub
    spec:
      targetNamespace: openshift-pipelines 1
      db: 2
        secret: tekton-hub-db 3
    
      categories: 4
        - Automation
        - Build Tools
        - CLI
        - Cloud
        - Code Quality
          ...
    
      catalogs: 5
        - name: tekton
          org: tektoncd
          type: community
          provider: github
          url: https://github.com/tektoncd/catalog
          revision: main
    
      scopes: 6
        - name: agent:create
          users: [<username>]
        - name: catalog:refresh
          users: [<username>]
        - name: config:refresh
          users: [<username>]
    
      default: 7
        scopes:
          - rating:read
          - rating:write
    
      api:
        catalogRefreshInterval: 30m 8
    1
    Tekton Hub를 설치해야 하는 네임스페이스입니다. 기본값은 openshift-pipelines 입니다.
    2
    선택 사항: Crunchy Postgres 데이터베이스와 같은 사용자 지정 데이터베이스.
    3
    데이터베이스 시크릿의 이름은 tekton-hub-db 여야 합니다.
    4
    선택사항: Tekton Hub의 작업 및 파이프라인에 대한 사용자 지정 카테고리입니다.
    5
    선택사항: Tekton Hub에 대해 사용자 지정된 카탈로그입니다.
    6
    선택 사항: 추가 사용자. [<username_1>, <username_2>, <username_3>] 과 같은 여러 사용자를 사용할 수 있습니다.
    7
    선택사항: 사용자 지정된 기본 범위입니다.
    8
    카탈로그를 자동으로 새로 고치는 시간 간격입니다. 지원되는 시간 단위는 초(s), 분(m), 시간(h), 일(d) 및 주(w)입니다. 기본 간격은 30분입니다.
    참고

    TektonHub CR에서 선택적 필드에 사용자 정의 값을 제공하지 않으면 Tekton Hub API 구성 맵에 구성된 기본값이 사용됩니다.

  4. TektonHub CR을 적용합니다.

    $ oc apply -f <tekton-hub-cr>.yaml
  5. 설치 상태를 확인합니다. TektonHub CR은 안정적인 상태를 유지하는 데 약간의 시간이 걸릴 수 있습니다.

    $ oc get tektonhub.operator.tekton.dev

    샘플 출력

    NAME   VERSION   READY   REASON   APIURL                    UIURL
    hub    v1.9.0    True             https://api.route.url/    https://ui.route.url/

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.