1.2. 선택 사항: Tekton Hub에서 사용자 정의 데이터베이스 사용
클러스터 관리자는 Operator가 설치한 기본 PostgreSQL 데이터베이스 대신 Tekton Hub와 함께 사용자 지정 데이터베이스를 사용할 수 있습니다. 설치 시 사용자 지정 데이터베이스를 연결하여 Tekton Hub에서 제공하는 db-migration
,api
및 ui
인터페이스와 함께 사용할 수 있습니다. 또는 설치가 default 데이터베이스와 완료된 후에도 사용자 지정 데이터베이스를 Tekton Hub와 연결할 수 있습니다.
프로세스
다음 키를 사용하여 대상 네임스페이스에
tekton-hub-db
라는 시크릿을 생성합니다.-
POSTGRES_HOST
-
POSTGRES_DB
-
POSTGRES_USER
-
POSTGRES_PASSWORD
POSTGRES_PORT
예: 사용자 정의 데이터베이스 시크릿
apiVersion: v1 kind: Secret metadata: name: tekton-hub-db labels: app: tekton-hub-db type: Opaque stringData: POSTGRES_HOST: <The name of the host of the database> POSTGRES_DB: <Name of the database> POSTGRES_USER: <username> POSTGRES_PASSWORD: <password> POSTGRES_PORT: <The port that the database is listening on> ...
참고기본 대상 네임스페이스는
openshift-pipelines
입니다.
-
TektonHub
CR에서 데이터베이스 시크릿 속성 값을tekton-hub-db
로 설정합니다.예: 사용자 정의 데이터베이스 시크릿 추가
apiVersion: operator.tekton.dev/v1alpha1 kind: TektonHub metadata: name: hub spec: targetNamespace: openshift-pipelines db: secret: tekton-hub-db api: hubConfigUrl: https://raw.githubusercontent.com/tektoncd/hub/main/config.yaml catalogRefreshInterval: 30m ...
업데이트된
TektonHub
CR을 사용하여 사용자 지정 데이터베이스를 Tekton Hub와 연결합니다.클러스터에 Tekton Hub를 설치할 때 사용자 지정 데이터베이스를 연결하는 경우 업데이트된
TektonHub
CR을 적용합니다.$ oc apply -f <tekton-hub-cr>.yaml
또는 Tekton Hub 설치가 완료된 후 사용자 정의 데이터베이스를 연결하는 경우 기존 TektonHub CR을 업데이트된
TektonHub
$ oc replace -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.2.1. 선택 사항: Crunchy Postgres 데이터베이스 및 Tekton Hub 설치
클러스터 관리자는 Crunchy Postgres 데이터베이스를 설치하고 기본 데이터베이스 대신 사용할 Tekton Hub를 구성할 수 있습니다.
사전 요구 사항
- Operator Hub에서 Crunchy Postgres Operator를 설치합니다.
- Crunchy Postgres 데이터베이스를 시작하는 Postgres 인스턴스를 생성합니다.
프로세스
Crunchy Postgres Pod로 이동합니다.
예:
test-instance1-m7hh-0
Pod로 가져오기$ oc exec -it -n openshift-operators test-instance1-m7hh-0 -- /bin/sh Defaulting container name to database. Use 'oc describe pod/test-instance1-m7hh-0 -n openshift-operators' to see all of the containers in this pod. sh-4.4$ psql -U postgres psql (14.4) Type "help" for help.
pg_hba.conf
파일을 찾습니다.postgres=# SHOW hba_file; hba_file -------------------------- /pgdata/pg14/pg_hba.conf (1 row) postgres=#
- 데이터베이스를 종료합니다.
pg_hba.conf
파일에 들어오는 모든 연결에 액세스하는 데 필요한모든 0.0.0.0/0 md5
항목이 있는지 확인합니다. 또한pg_hba.conf
파일의 끝에 항목을 추가합니다.예:
pg_hba.conf
파일sh-4.4$ cat /pgdata/pg14/pg_hba.conf # Do not edit this file manually! # It will be overwritten by Patroni! local all "postgres" peer hostssl replication "_crunchyrepl" all cert hostssl "postgres" "_crunchyrepl" all cert host all "_crunchyrepl" all reject hostssl all all all md5 host all all 0.0.0.0/0 md5
pg_hba.conf
파일을 저장하고 데이터베이스를 다시 로드합니다.sh-4.4$ psql -U postgres psql (14.4) Type "help" for help. postgres=# SHOW hba_file; hba_file -------------------------- /pgdata/pg14/pg_hba.conf (1 row) postgres=# SELECT pg_reload_conf(); pg_reload_conf ---------------- t (1 row)
- 데이터베이스를 종료합니다.
Crunchy Postgres 호스트의 시크릿 값을 디코딩합니다.
예: Crunchy Postgres 호스트의 시크릿 값 삭제
$ echo 'aGlwcG8tcHJpbWFyeS5vcGVuc2hpZnQtb3BlcmF0b3JzLnN2YyA=' | base64 --decode test-primary.openshift-operators.svc
다음 키를 사용하여 대상 네임스페이스에
tekton-hub-db
라는 시크릿을 생성합니다.-
POSTGRES_HOST
-
POSTGRES_DB
-
POSTGRES_USER
-
POSTGRES_PASSWORD
POSTGRES_PORT
예: 사용자 정의 데이터베이스 시크릿
apiVersion: v1 kind: Secret metadata: name: tekton-hub-db labels: app: tekton-hub-db type: Opaque stringData: POSTGRES_HOST: test-primary.openshift-operators.svc POSTGRES_DB: test POSTGRES_USER: <username> POSTGRES_PASSWORD: <password> POSTGRES_PORT: '5432' ...
참고기본 대상 네임스페이스는
openshift-pipelines
입니다.-
TektonHub
CR에서 데이터베이스 시크릿 속성 값을tekton-hub-db
로 설정합니다.예: 사용자 정의 데이터베이스 시크릿 추가
apiVersion: operator.tekton.dev/v1alpha1 kind: TektonHub metadata: name: hub spec: targetNamespace: openshift-pipelines db: secret: tekton-hub-db ...
업데이트된
TektonHub
CR을 사용하여 사용자 지정 데이터베이스를 Tekton Hub와 연결합니다.$ 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.2.2. 선택 사항: Tekton Hub 데이터를 기존 Crunchy Postgres 데이터베이스로 마이그레이션
Tekton Hub는 Crunchy Postgres를 사용자 지정 데이터베이스로 사용할 수 있습니다. 기본 데이터베이스가 있는 사전 설치된 Tekton Hub의 경우 클러스터 관리자는 Tekton Hub 데이터를 내부 또는 기본 데이터베이스에서 외부 Crunchy Postgres 데이터베이스로 마이그레이션한 후 사용자 지정 데이터베이스로 Crunchy Postgres를 사용할 수 있습니다.
프로세스
내부 또는 기본 데이터베이스의 기존 데이터를 포드의 파일로 덤프합니다.
예: 데이터 덤프
$ pg_dump -Ft -h localhost -U postgres hub -f /tmp/hub.dump
데이터 덤프가 포함된 파일을 로컬 시스템에 복사합니다.
명령 형식
$ oc cp -n <namespace> <podName>:<path-to-hub.dump> <path-to-local-system>
예
$ oc cp -n openshift-pipelines tekton-hub-db-7d6d888c67-p7mdr:/tmp/hub.dump /home/test_user/Downloads/hub.dump
로컬 시스템의 데이터 덤프가 포함된 파일을 외부 Crunchy Postgres 데이터베이스를 실행하는 포드로 복사합니다.
명령 형식
$ oc cp -n <namespace> <path-to-local-system> <podName>:<path-to-hub.dump>
예
$ oc cp -n openshift-operators /home/test_user/Downloads/hub.dump test-instance1-spnz-0:/tmp/hub.dump
Crunchy Postgres 데이터베이스에서 데이터를 복원합니다.
명령 형식
$ pg_restore -d <database-name> -h localhost -U postgres <path-where-file-is-copied>
예
$ pg_restore -d test -h localhost -U postgres /tmp/hub.dump
Crunchy Postgres Pod로 이동합니다. 예:
test-instance1-m7h-0
Pod로 이동합니다.$ oc exec -it -n openshift-operators test-instance1-m7hh-0 -- /bin/sh Defaulting container name to database. Use 'oc describe pod/test-instance1-m7hh-0 -n openshift-operators' to see all of the containers in this pod. sh-4.4$ psql -U postgres psql (14.4) Type "help" for help.
pg_hba.conf
파일을 찾습니다.postgres=# SHOW hba_file; hba_file -------------------------- /pgdata/pg14/pg_hba.conf (1 row) postgres=#
- 데이터베이스를 종료합니다.
pg_hba.conf
파일에 모든 들어오는 연결에 액세스하는 데 필요한모든 0.0.0.0/0 md5가 항목 호스트가
있는지 확인합니다. 필요한 경우pg_hba.conf
파일의 끝에 항목을 추가합니다.예:
pg_hba.conf
파일sh-4.4$ cat /pgdata/pg14/pg_hba.conf # Do not edit this file manually! # It will be overwritten by Patroni! local all "postgres" peer hostssl replication "_crunchyrepl" all cert hostssl "postgres" "_crunchyrepl" all cert host all "_crunchyrepl" all reject hostssl all all all md5 host all all 0.0.0.0/0 md5
pg_hba.conf
파일을 저장하고 데이터베이스를 다시 로드합니다.sh-4.4$ psql -U postgres psql (14.4) Type "help" for help. postgres=# SHOW hba_file; hba_file -------------------------- /pgdata/pg14/pg_hba.conf (1 row) postgres=# SELECT pg_reload_conf(); pg_reload_conf ---------------- t (1 row)
- 데이터베이스를 종료합니다.
대상 네임스페이스의
tekton-hub-db
라는 보안에 다음 키가 있는지 확인합니다.-
POSTGRES_HOST
-
POSTGRES_DB
-
POSTGRES_USER
-
POSTGRES_PASSWORD
POSTGRES_PORT
예: 사용자 정의 데이터베이스 시크릿
apiVersion: v1 kind: Secret metadata: name: tekton-hub-db labels: app: tekton-hub-db type: Opaque stringData: POSTGRES_HOST: test-primary.openshift-operators.svc POSTGRES_DB: test POSTGRES_USER: test POSTGRES_PASSWORD: woXOisU5>ocJiTF7y{{;1[Q( POSTGRES_PORT: '5432' ...
참고POSTGRES_HOST
필드의 값은 시크릿으로 인코딩됩니다. 다음 예제를 사용하여 Crunchy Postgres 호스트의 값을 디코딩할 수 있습니다.예: Crunchy Postgres 호스트의 시크릿 값 삭제
$ echo 'aGlwcG8tcHJpbWFyeS5vcGVuc2hpZnQtb3BlcmF0b3JzLnN2YyA=' | base64 --decode test-primary.openshift-operators.svc
-
TektonHub
CR에서 데이터베이스 시크릿 속성 값이tekton-hub-db
인지 확인합니다.예: 데이터베이스 시크릿 이름이 있는 TektonHub CR
apiVersion: operator.tekton.dev/v1alpha1 kind: TektonHub metadata: name: hub spec: targetNamespace: openshift-pipelines db: secret: tekton-hub-db ...
외부 Crunchy Postgres 데이터베이스를 Tekton Hub와 연결하려면 기존
TektonHub
CR을 업데이트된TektonHub
CR로 교체합니다.$ oc replace -f <updated-tekton-hub-cr>.yaml
Tekton Hub의 상태를 확인합니다. 업데이트된
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/