• Русский
  • Настройка ConfigMap tektoncd-enhancement через TektonConfig

    В этом руководстве показано, как управлять tektoncd-enhancement-config через TektonConfig с помощью spec.pipeline.options.configMaps.

    Примечание о namespace: В этом руководстве <tekton-pipelines> используется как заполнитель для вашего namespace Tekton. Замените его на фактическое имя вашего namespace. При установке по умолчанию используется namespace tekton-pipelines.

    Предварительные требования

    • Установлен Tekton Operator.
    • Ресурс TektonConfig существует (обычно называется config).
    • У вас есть возможность изменять TektonConfig в кластере.

    Шаги

    1. Обновите TektonConfig с помощью spec.pipeline.options.configMaps

    Структура options следует тому же шаблону, что и описано в Adjusting Optional Configuration Items of Subcomponents.

    Используйте такой patch для TektonConfig:

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      targetNamespace: <tekton-pipelines>
      pipeline:
        options:
          configMaps:
            tektoncd-enhancement-config:
              data:
                config: |
                  # Общая конфигурация для функций tektoncd-enhancement.
                  template-render:
                    # Шаблон для формирования URL деталей.
                    details-url-template: "{{- if .isPipelineRun -}}{{ .platformURL }}/console-acp/workspace/{{ .project }}~{{ .cluster }}~{{ .namespace }}/pipeline/pipelineRuns/detail/{{ .pipelineRunName }}{{- else -}}{{ .platformURL }}/console-acp/workspace/{{ .project }}~{{ .cluster }}~{{ .namespace }}/pipeline/taskRuns/detail/{{ .taskRunName }}{{- end -}}"
                    # Пустое значение означает использование локального часового пояса контейнера.
                    time-zone: ""

    2. Справочник параметров и значения по умолчанию

    ПараметрЗначениеПо умолчанию
    template-render.details-url-templateGo-шаблон, используемый для формирования detailsURL в контексте рендеринга mail/template.{{- if .isPipelineRun -}}{{ .platformURL }}/console-acp/workspace/{{ .project }}~{{ .cluster }}~{{ .namespace }}/pipeline/pipelineRuns/detail/{{ .pipelineRunName }}{{- else -}}{{ .platformURL }}/console-acp/workspace/{{ .project }}~{{ .cluster }}~{{ .namespace }}/pipeline/taskRuns/detail/{{ .taskRunName }}{{- end -}}
    template-render.time-zoneГлобальная настройка часового пояса для рендеринга шаблонов."" (использовать локальный часовой пояс контейнера)

    3. Проверьте обновление ConfigMap

    После обновления TektonConfig проверьте, был ли tektoncd-enhancement-config приведен в соответствие:

    kubectl get configmap tektoncd-enhancement-config -n <tekton-pipelines> -o yaml

    4. Перезапустите tektoncd-enhancement

    Перезапустите workload tektoncd-enhancement в namespace <tekton-pipelines>:

    kubectl rollout restart deployment/tektoncd-enhancement -n <tekton-pipelines>
    # deployment.apps/tektoncd-enhancement restarted
    
    kubectl rollout status deployment/tektoncd-enhancement -n <tekton-pipelines>
    # Waiting for deployment "tektoncd-enhancement" rollout to finish: 1 old replica is pending termination...
    # deployment "tektoncd-enhancement" successfully rolled out

    FAQ

    Я обновил TektonConfig, но итоговая конфигурация не изменилась. Что нужно проверить?

    Проверьте в следующем порядке:

    1. TektonConfig был успешно обновлен.
    2. tektoncd-enhancement-config в namespace <tekton-pipelines> содержит ожидаемый data.config.
    3. tektoncd-enhancement был перезапущен, и rollout завершен.