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
네임스페이스에 설치되어 있는지 확인합니다.
프로세스
다음 예와 유사한
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
참고TektonHub
CR에서 선택적 필드에 사용자 정의 값을 제공하지 않으면 Tekton Hub API 구성 맵에 구성된 기본값이 사용됩니다.TektonHub
CR을 적용합니다.$ oc apply -f <tekton-hub-cr>.yaml
설치 상태를 확인합니다.
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
네임스페이스에 설치되어 있는지 확인합니다.
프로세스
Git 리포지토리 호스팅 공급자를 사용하여 OAuth 애플리케이션을 생성하고 클라이언트 ID 및 클라이언트 시크릿을 기록해 둡니다. 지원되는 공급자는 GitHub, GitLab, BitBucket입니다.
-
GitHub OAuth 애플리케이션 의 경우 Homepage URL과 인증 콜백 URL을 <
auth-route>로 설정합니다
. -
GitLab OAuth 애플리케이션 의 경우
REDIRECT_URI
를 <auth-route>/auth/gitlab/callback
으로 설정합니다. -
BitBucket OAuth 애플리케이션 의 경우
콜백 URL
을 <auth-route>로 설정합니다
.
-
GitHub OAuth 애플리케이션 의 경우 Homepage URL과 인증 콜백 URL을 <
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 리포지토리 호스팅 서비스 공급자에 대해 사용되지 않는 필드를 삭제할 수 있습니다.
다음 예와 유사한
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 구성 맵에 구성된 기본값이 사용됩니다.TektonHub
CR을 적용합니다.$ oc apply -f <tekton-hub-cr>.yaml
설치 상태를 확인합니다.
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/