1.2. Tekton 결과 구성
OpenShift Pipelines를 설치한 후 Tekton 결과는 기본적으로 활성화됩니다.
그러나 파이프라인 실행 및 작업 실행에 대한 로깅 정보를 저장하고 액세스하려면 이 정보를 LokiStack으로 전달하도록 구성해야 합니다.
필요한 경우 Tekton 결과에 대한 추가 구성을 완료할 수 있습니다.
1.2.1. 로깅 정보를 위한 LokiStack 전달 구성 링크 복사링크가 클립보드에 복사되었습니다!
Tekton Results를 사용하여 작업 실행에 대한 로깅 정보를 쿼리하려면 OpenShift Container Platform 클러스터에 LokiStack 및 OpenShift Logging을 설치하고 LokiStack으로 로깅 정보 전달을 구성해야 합니다.
로깅 정보에 대해 LokiStack 전달을 구성하지 않으면 Tekton Results는 이 정보를 저장하거나 명령줄 인터페이스 또는 API에서 제공하지 않습니다.
사전 요구 사항
-
OpenShift CLI(
oc) 유틸리티를 설치했습니다. - 클러스터 관리자로 OpenShift Container Platform 클러스터에 로그인되어 있습니다.
프로세스
LokiStack 전달을 구성하려면 다음 단계를 완료합니다.
- OpenShift Container Platform 클러스터에서 Loki Operator를 사용하여 LokiStack을 설치하고 OpenShift Logging Operator도 설치합니다.
OpenShift Logging 버전 6 또는 버전 5를 설치할지 여부에 따라 다음 YAML 매니페스트 중 하나를 사용하여
ClusterLogForwarder사용자 정의 리소스(CR)에 대한ClusterLogForwarder.yaml매니페스트 파일을 생성합니다.OpenShift Logging 버전 6을 설치한 경우
ClusterLogForwarderCR의 YAML 매니페스트apiVersion: observability.openshift.io/v1 kind: ClusterLogForwarder metadata: name: collector namespace: openshift-logging spec: inputs: - application: selector: matchExpressions: - key: app.kubernetes.io/managed-by operator: In values: ["tekton-pipelines", "pipelinesascode.tekton.dev"] name: only-tekton type: application managementState: Managed outputs: - lokiStack: labelKeys: application: ignoreGlobal: true labelKeys: - log_type - kubernetes.namespace_name - openshift_cluster_id authentication: token: from: serviceAccount target: name: logging-loki namespace: openshift-logging name: default-lokistack tls: ca: configMapName: openshift-service-ca.crt key: service-ca.crt type: lokiStack pipelines: - inputRefs: - only-tekton name: default-logstore outputRefs: - default-lokistack serviceAccount: name: collectorOpenShift Logging 버전 5를 설치한 경우
ClusterLogForwarderCR의 YAML 매니페스트apiVersion: "logging.openshift.io/v1" kind: ClusterLogForwarder metadata: name: instance namespace: openshift-logging spec: inputs: - name: only-tekton application: selector: matchLabels: app.kubernetes.io/managed-by: tekton-pipelines pipelines: - name: enable-default-log-store inputRefs: [ only-tekton ] outputRefs: [ default ]다음 명령을 입력하여
openshift-logging네임스페이스에서ClusterLogForwarderCR을 생성합니다.$ oc apply -n openshift-logging ClusterLogForwarder.yaml다음 명령을 사용하여
TektonConfigCR(사용자 정의 리소스)을 편집합니다.$ oc edit TektonConfig config결과사양을 다음과 같이 변경합니다.apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: result: loki_stack_name: logging-loki1 loki_stack_namespace: openshift-logging2
1.2.2. 외부 데이터베이스 서버 구성 링크 복사링크가 클립보드에 복사되었습니다!
Tekton 결과는 PostgreSQL 데이터베이스를 사용하여 데이터를 저장합니다. 기본적으로 설치에는 내부 PostgreSQL 인스턴스가 포함됩니다. 배포에 이미 존재하는 외부 PostgreSQL 서버를 사용하도록 설치를 구성할 수 있습니다.
프로세스
다음 명령을 입력하여 PostgreSQL 서버에 연결하기 위한 인증 정보를 사용하여 시크릿을 생성합니다.
$ oc create secret generic tekton-results-postgres \ --namespace=openshift-pipelines \ --from-literal=POSTGRES_USER=<user> \ --from-literal=POSTGRES_PASSWORD=<password>다음 명령을 사용하여
TektonConfigCR(사용자 정의 리소스)을 편집합니다.$ oc edit TektonConfig config결과사양을 다음과 같이 변경합니다.apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: result: is_external_db: true db_host: database.example.com1 db_port: 53422
1.2.3. Tekton 결과에 대한 보존 정책 구성 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 Tekton Results는 파이프라인 실행, 작업 실행, 이벤트 및 로그를 무기한 저장합니다. 이로 인해 스토리지 리소스를 불필요하게 사용하지 않고 데이터베이스 성능에 영향을 미칠 수 있습니다.
클러스터 수준에서 Tekton 결과에 대한 보존 정책을 구성하여 이전 결과 및 관련 레코드 및 로그를 제거할 수 있습니다.
프로세스
다음 명령을 사용하여
TektonConfigCR(사용자 정의 리소스)을 편집합니다.$ oc edit TektonConfig config결과사양을 다음과 같이 변경합니다.apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: result: options: configMaps: config-results-retention-policy: data: runAt: "3 5 * * 0"1 maxRetention: "30"2