This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.4.7. OpenShift Pipelines에서 Tekton Hub 사용
Tekton Hub는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
Tekton Hub를 사용하면 CI/CD 워크플로를 위한 재사용 가능한 작업 및 파이프라인을 검색, 검색 및 공유할 수 있습니다. Tekton Hub의 공용 인스턴스는 hub.tekton.dev 에서 사용할 수 있습니다. 클러스터 관리자는 엔터프라이즈를 위해 Tekton Hub의 사용자 지정 인스턴스를 설치하고 배포할 수도 있습니다.
4.7.1. OpenShift Container Platform 클러스터에 Tekton Hub 설치 및 배포 링크 복사링크가 클립보드에 복사되었습니다!
Tekton Hub는 선택적 구성 요소이며 클러스터 관리자는 TektonConfig
CR(사용자 정의 리소스)을 사용하여 설치할 수 없습니다. Tekton Hub를 설치 및 관리하려면 TektonHub
CR을 사용합니다.
Github Enterprise 또는 Gitlab Enterprise를 사용하는 경우 엔터프라이즈 서버와 동일한 네트워크에 Tekton Hub를 설치 및 배포합니다. 예를 들어 엔터프라이즈 서버가 VPN 뒤에서 실행 중인 경우 VPN에도 있는 클러스터에 Tekton Hub를 배포합니다.
사전 요구 사항
-
Red Hat OpenShift Pipelines Operator가 클러스터의 기본
openshift-pipelines
네임스페이스에 설치되어 있는지 확인합니다.
프로세스
- Tekton Hub 리포지토리의 포크를 생성합니다.
- 분기된 리포지토리를 복제합니다.
다음 범위를 사용하여 하나 이상의 사용자를 포함하도록
config.yaml
파일을 업데이트합니다.-
에이전트: 카탈로그에 변경 사항이 있는 경우 간격 후에 Tekton Hub 데이터베이스를 새로 고치는 cron 작업을 설정할 수 있는 범위를 만듭니다
. -
catalog:refresh
범위가 있는 사용자는 Tekton Hub의 데이터베이스에 있는 카탈로그 및 모든 리소스를 새로 고칠 수 있습니다. 추가 범위를 가져올 수 있는
config:refresh
범위가 있는 사용자입니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 지원되는 서비스 공급자는 GitHub, GitLab, BitBucket입니다.
-
Git 리포지토리 호스팅 공급자를 사용하여 OAuth 애플리케이션을 생성하고 클라이언트 ID 및 클라이언트 보안을 기록해 둡니다.
-
GitHub OAuth 애플리케이션의 경우
Homepage URL
과Authorization 콜백 URL
을 <auth-route>로 설정합니다
. -
GitLab OAuth 애플리케이션의 경우
REDIRECT_URI
를 <auth-route>/auth/gitlab/callback
으로 설정합니다. -
BitBucket OAuth 애플리케이션의 경우
콜백 URL
을 <auth-route>로 설정합니다
.
-
GitHub OAuth 애플리케이션의 경우
Tekton Hub API 시크릿의 <
tekton_hub_repository>/config/02-api/20-api-secret.yaml
파일에서 다음 필드를 편집합니다.-
GH_CLIENT_ID
: Git 리포지토리 호스팅 서비스 공급자로 생성된 OAuth 애플리케이션의 클라이언트 ID입니다. -
GH_CLIENT_SECRET
: Git 리포지토리 호스팅 서비스 공급자로 생성된 OAuth 애플리케이션의 클라이언트 시크릿입니다. -
GHE_URL
: GitHub Enterprise를 사용하여 인증하는 경우 GitHub Enterprise URL입니다. 카탈로그에 대한 URL을 이 필드의 값으로 제공하지 마십시오. -
GL_CLIENT_ID
: GitLab OAuth 애플리케이션의 클라이언트 ID입니다. -
GL_CLIENT_SECRET
: GitLab OAuth 애플리케이션의 클라이언트 시크릿입니다. -
GLE_URL
: GitLab Enterprise를 사용하여 인증하는 경우 GitLab Enterprise URL 카탈로그에 대한 URL을 이 필드의 값으로 제공하지 마십시오. -
folder_CLIENT_ID
: BitBucket OAuth 애플리케이션의 클라이언트 ID입니다. -
folder_CLIENT_SECRET
: BitBucket OAuth 애플리케이션의 클라이언트 시크릿입니다. -
JWT_SIGNING_KEY
: 사용자를 위해 생성된 JSON 웹 토큰(JWT)에 서명하는 데 사용되는 긴 임의 문자열입니다. -
ACCESS_JWT_EXPIRES_IN
: 액세스 토큰이 만료된 후 시간 제한을 추가합니다. 예를 들어1m
은 여기서m
은 분을 나타냅니다. 지원되는 시간은 초(s
), 분(m
), 시간(h
), 일(d
) 및 몇 주(w
)입니다. -
ReFRESH_JWT_EXPIRES_IN
: 새로 고침 토큰이 만료된 후 시간 제한을 추가합니다. 예를 들어1m
은 여기서m
은 분을 나타냅니다. 지원되는 시간은 초(s
), 분(m
), 시간(h
), 일(d
) 및 몇 주(w
)입니다. 토큰 새로 고침에 설정된 만료 시간이 토큰 액세스에 설정된 만료 시간보다 큰지 확인합니다. AUTH_BASE_URL
: OAuth 애플리케이션의 경로 URL입니다.참고- 지원되는 Git 리포지토리 호스팅 서비스 공급자 중 하나에 클라이언트 ID 및 클라이언트 시크릿과 관련된 필드를 사용합니다.
-
Git 리포지토리 호스팅 서비스 공급자에 등록된 계정 자격 증명을 사용하면
카탈로그가 있는 사용자: 새로 고침
범위를 사용하여 모든 카탈로그 리소스를 인증하고 데이터베이스에 로드할 수 있습니다.
-
- 분기된 리포지토리로 변경 사항을 커밋하고 내보냅니다.
TektonHub
CR이 다음 예와 비슷한지 확인합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Tekton Hub를 설치합니다.
oc apply -f TektonHub.yaml
$ oc apply -f TektonHub.yaml
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
TektonConfig
CR의 파일 이름 또는 경로입니다.
설치 상태를 확인합니다.
oc get tektonhub.operator.tekton.dev
$ oc get tektonhub.operator.tekton.dev NAME VERSION READY REASON APIURL UIURL hub v1.7.2 True https://api.route.url/ https://ui.route.url/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.7.1.1. Tekton Hub에서 수동으로 카탈로그 새로 고침 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform 클러스터에 Tekton Hub를 설치하고 배포할 때 Postgres 데이터베이스도 설치됩니다. 처음에는 데이터베이스가 비어 있습니다. 카탈로그에서 사용 가능한 작업 및 파이프라인을 데이터베이스에 추가하려면 클러스터 관리자가 카탈로그를 새로 고쳐야 합니다.
사전 요구 사항
-
<
tekton_hub_repository>/config/
디렉터리에 있는지 확인합니다.
프로세스
Tekton Hub UI에서 Login -tekton Sign In With GitHub 를 클릭합니다.
참고GitHub는 공개적으로 사용 가능한 Tekton Hub UI의 예입니다. 클러스터에 사용자 정의 설치의 경우 클라이언트 ID와 클라이언트 시크릿을 제공한 모든 Git 리포지토리 호스팅 서비스 공급자가 나열됩니다.
- 홈 페이지에서 사용자 프로필을 클릭하고 토큰을 복사합니다.
카탈로그 새로 고침 API 호출.
특정 이름으로 카탈로그를 새로 고치려면 다음 명령을 실행합니다.
curl -X POST -H "Authorization: <jwt-token>" \ <api-url>/catalog/<catalog_name>/refresh
$ curl -X POST -H "Authorization: <jwt-token>" \
1 <api-url>/catalog/<catalog_name>/refresh
2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력:
[{"id":1,"catalogName":"tekton","status":"queued"}]
[{"id":1,"catalogName":"tekton","status":"queued"}]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 모든 카탈로그를 새로 고치려면 다음 명령을 실행합니다.
curl -X POST -H "Authorization: <jwt-token>" \ <api-url>/catalog/refresh
$ curl -X POST -H "Authorization: <jwt-token>" \
1 <api-url>/catalog/refresh
2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 브라우저에서 페이지를 새로 고칩니다.
4.7.1.2. 선택 사항: Tekton Hub에서 카탈로그 새로 고침을 위한 cron 작업 설정 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 관리자는 카탈로그의 변경이 Tekton Hub 웹 콘솔에 표시되도록 고정된 간격으로 데이터베이스를 새로 고치도록 cron 작업을 선택적으로 설정할 수 있습니다.
카탈로그에 리소스가 추가되거나 업데이트되면 카탈로그를 새로 고침하면 Tekton Hub UI에 이러한 변경 사항이 표시됩니다. 그러나 리소스가 카탈로그에서 삭제되면 카탈로그를 새로 고침해도 데이터베이스에서 리소스가 제거되지 않습니다. Tekton Hub UI는 삭제된 리소스를 계속 표시합니다.
사전 요구 사항
-
<
project_root>/config/
디렉터리에 있는지 확인합니다. 여기서 <project_root
>는 복제된 Tekton Hub 리포지토리의 최상위 디렉터리입니다. - 카탈로그를 새로 고치는 범위와 함께 JSON 웹 토큰(JWT) 토큰이 있는지 확인합니다.
프로세스
더 긴 사용을 위해 에이전트 기반 JWT 토큰을 생성합니다.
curl -X PUT --header "Content-Type: application/json" \ -H "Authorization: <access-token>" \ --data '{"name":"catalog-refresh-agent","scopes": ["catalog:refresh"]}' \ <api-route>/system/user/agent
$ curl -X PUT --header "Content-Type: application/json" \ -H "Authorization: <access-token>" \
1 --data '{"name":"catalog-refresh-agent","scopes": ["catalog:refresh"]}' \ <api-route>/system/user/agent
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- JWT 토큰입니다.
필요한 범위가 있는 에이전트 토큰은
{"token":"<agent_jwt_token>"}
형식으로 반환됩니다. 반환된 토큰을 확인하고 카탈로그 새로 고침 cron 작업용으로 유지합니다.05-catalog-refresh-cj/50-catalog-refresh-secret.yaml
파일을 편집하여HUB_TOKEN
매개 변수를 이전 단계에서 반환된 <agent_jwt_token
>로 설정합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 이전 단계에서 반환된 <
agent_jwt_token
>입니다.
수정된 YAML 파일을 적용합니다.
oc apply -f 05-catalog-refresh-cj/ -n openshift-pipelines.
$ oc apply -f 05-catalog-refresh-cj/ -n openshift-pipelines.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 기본적으로 cron 작업은 30분마다 실행되도록 구성됩니다. 간격을 변경하려면
05-catalog-refresh-cj/51-catalog-refresh-cronjob.yaml
파일에서schedule
매개변수 값을 수정합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.7.1.3. 선택 사항: Tekton Hub 구성에 새 사용자 추가 링크 복사링크가 클립보드에 복사되었습니다!
프로세스
클러스터 관리자는 원하는 범위에 따라
config.yaml
파일에 새 사용자를 추가할 수 있습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Git 리포지토리 호스팅 서비스 공급자에 등록된 사용자 이름.
참고사용자가 처음 로그인하면
config.yaml
에 추가되는 경우에도 기본 범위만 있습니다. 추가 범위를 활성화하려면 사용자가 한 번 이상 로그인했는지 확인합니다.-
config.yaml
파일에서config-refresh
범위가 있는지 확인합니다. 구성을 새로 고칩니다.
curl -X POST -H "Authorization: <access-token>" \ --header "Content-Type: application/json" \ --data '{"force": true} \ <api-route>/system/config/refresh
$ curl -X POST -H "Authorization: <access-token>" \
1 --header "Content-Type: application/json" \ --data '{"force": true} \ <api-route>/system/config/refresh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- JWT 토큰입니다.
4.7.2. 개발자 화면에서 Tekton Hub 비활성화 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 관리자는 OpenShift Container Platform 클러스터의 개발자 관점의 파이프라인 빌더 페이지에서 작업 및 파이프라인과 같은 Tekton Hub 리소스를 표시하지 않도록 선택할 수 있습니다.
사전 요구 사항
-
Red Hat OpenShift Pipelines Operator가 클러스터에 설치되어 있고
oc
명령줄 툴을 사용할 수 있는지 확인합니다.
프로세스
개발자 화면에서 Tekton Hub 리소스 표시를 선택하려면
TektonConfig
CR(사용자 정의 리소스)의enable-devconsole-integration
필드 값을false
로 설정합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본적으로
TektonConfig
CR에는enable-devconsole-integration
필드가 포함되어 있지 않으며 Red Hat OpenShift Pipelines Operator는 해당 값이true
라고 가정합니다.