Конфигурация Chains
Содержание
ОбзорКонфигурацияКонфигурация в ConfigMapchains-configКонфигурация в TektonConfigКонфигурация TaskRunКонфигурация PipelineRunКонфигурация OCIКонфигурация хранилищаКонфигурация возможностей SigstoreЖурнал прозрачностиПодписание без ключа с FulcioСсылкиОбзор
Tekton Chains — это контроллер Kubernetes Custom Resource Definition (CRD), который позволяет управлять безопасностью цепочки поставок в Tekton. В этом документе описывается, как настраивать Tekton Chains.
Конфигурация
Конфигурация Chains хранится в ConfigMap с именем chains-config в namespace tekton-pipelines или tekton-chains. Вы можете изменить этот ConfigMap, чтобы повлиять на поведение Chains.
По умолчанию Tekton Chains автоматически развертывается через ресурс TektonConfig. Вы можете изменить ресурс TektonConfig, чтобы настроить Chains.
По сути, Tekton Operator синхронизирует конфигурацию Chains из ресурса TektonConfig в ресурс TektonChains, а затем отражает ее в ConfigMap chains-config.
Если вы развертываете Chains через TektonConfig, вы должны настраивать Chains через TektonConfig.
Если вы измените только конфигурацию в ConfigMap chains-config, и она не будет синхронизирована с ресурсом TektonChains, конфигурация может быть потеряна.
Когда конфигурация в TektonConfig изменяется или по какой-либо другой причине запускается reconciliation, конфигурация в ConfigMap chains-config будет перезаписана.
Однако некоторые расширенные конфигурации поддерживаются только в ConfigMap chains-config и не могут быть настроены в TektonConfig из-за validating webhook.
Если вы столкнетесь с этой проблемой, вам нужно отключить автоматическое развертывание Chains через TektonConfig и вручную создать ресурс TektonHub.
Ниже приведена простая демонстрация различных способов настройки Chains.
Конфигурация в ConfigMap chains-config
Ниже приведен пример ConfigMap chains-config:
Булевы значения задаются в виде строк, например "true" или "false".
Пояснение полей YAML
artifacts.oci.format: Формат аттестаций.artifacts.oci.storage: Бэкенд хранения аттестаций.artifacts.pipelinerun.format: Формат аттестаций для PipelineRuns.artifacts.pipelinerun.storage: Бэкенд хранения аттестаций для PipelineRuns.artifacts.taskrun.format: Формат аттестаций для TaskRuns.artifacts.taskrun.storage: Бэкенд хранения аттестаций для TaskRuns.
Конфигурация в TektonConfig
В ресурсе TektonConfig конфигурация Chains выглядит примерно так:
Булевы значения имеют исходный тип, например true или false.
Пояснение полей YAML
spec.chain: Этот раздел содержит конфигурацию Chains.disabled: Нужно ли отключать Chains.- Эта конфигурация уникальна для TektonConfig и отсутствует в TektonChains.
generateSigningSecret: Нужно ли генерировать signing secret.- Эта конфигурация уникальна для TektonConfig и отсутствует в TektonChains.
controllerEnvs: Переменные окружения для контроллера Tekton Chains.- Эта конфигурация уникальна для TektonConfig и отсутствует в TektonChains.
name: Имя переменной окружения.value: Значение переменной окружения.
options: Параметры контроллера Tekton Chains.- Эта конфигурация уникальна для TektonConfig и отсутствует в TektonChains.
deployments.tekton-chains-controller: Параметры развертывания для контроллера Tekton Chains.spec.template.spec.containers.env.SIGSTORE_ID_TOKEN: ID Token для контроллера Tekton Chains.
- Более подробную поддержку можно найти в Additional fields as options
- Следующие конфигурации также существуют в
TektonChainsи в конечном итоге будут синхронизированы в ConfigMapchains-config.artifacts.oci.formatartifacts.oci.storageartifacts.pipelinerun.formatartifacts.pipelinerun.storageartifacts.taskrun.formatartifacts.taskrun.storagestorage.oci.repository.insecuresigners.x509.fulcio.addresssigners.x509.fulcio.issuertransparency.enabledtransparency.url
Конфигурация TaskRun
Пояснение
slsa/v1— это псевдонимin-totoдля обратной совместимости.- Если хранилище
oci, аттестации будут сохраняться вместе с самим сохраненным OCI artifact. Дополнительные сведения см. в cosign documentation. - Если хранилище
tekton, аттестации будут сохраняться в аннотацияхTaskRunTekton.
Конфигурация PipelineRun
Аналогично TaskRun, вы можете настроить подпись и хранение PipelineRun.
- Если хранилище
oci, аттестации будут сохраняться вместе с самим сохраненным OCI artifact. Дополнительные сведения см. в cosign documentation. - Если хранилище
tekton, аттестации будут сохраняться в аннотацияхPipelineRunTekton.
Конфигурация OCI
- Если хранилище
oci, аттестации будут сохраняться вместе с самим сохраненным OCI artifact. Дополнительные сведения см. в cosign documentation. - Если хранилище
tekton, аттестации будут сохраняться в аннотацияхTaskRunилиPipelineRunTekton.
Конфигурация хранилища
Chains поддерживает несколько бэкендов хранения для сохранения аттестаций и подписей. Ниже перечислены некоторые из наиболее распространенных вариантов; для более подробной конфигурации см. Storage Configuration
Пояснение
- Если в вашем OCI repository используется самоподписанный сертификат, необходимо установить
storage.oci.repository.insecureвtrue, чтобы разрешить небезопасное соединение.
Конфигурация возможностей Sigstore
Журнал прозрачности
Примечание: Если transparency.enabled установлен в manual, то в журнал прозрачности будут загружаться только TaskRuns и PipelineRuns со следующей аннотацией: