Конфигурация Chains
Содержание
ОбзорКонфигурацияКонфигурация в ConfigMapchains-configКонфигурация в TektonConfigКонфигурация TaskRunКонфигурация PipelineRunКонфигурация OCIКонфигурация хранилищаКонфигурация функций SigstoreЖурнал прозрачностиБесключевая подпись с FulcioСсылкиОбзор
Tekton Chains — это контроллер Custom Resource Definition (CRD) для Kubernetes, который позволяет управлять безопасностью supply chain в 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.
- Более подробную поддержку можно найти в Дополнительные поля в качестве опций
- Следующие конфигурации также существуют в
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-артефактом. Дополнительную информацию см. в документации cosign. - Если хранилище —
tekton, аттестации будут сохраняться в аннотациях TektonTaskRun.
Конфигурация PipelineRun
Аналогично TaskRuns, вы можете настроить подпись и хранение PipelineRun.
- Если хранилище —
oci, аттестации будут сохраняться рядом с самим OCI-артефактом. Дополнительную информацию см. в документации cosign. - Если хранилище —
tekton, аттестации будут сохраняться в аннотациях TektonPipelineRun.
Конфигурация OCI
- Если хранилище —
oci, аттестации будут сохраняться рядом с самим OCI-артефактом. Дополнительную информацию см. в документации cosign. - Если хранилище —
tekton, аттестации будут сохраняться в аннотациях TektonTaskRunилиPipelineRun.
Конфигурация хранилища
Chains поддерживает несколько бэкендов хранения для сохранения аттестаций и подписей. Ниже перечислены некоторые из наиболее распространенных; для более подробной конфигурации см. Конфигурация хранилища
Пояснение
- Если в вашем OCI-репозитории используется самоподписанный сертификат, необходимо установить
storage.oci.repository.insecureвtrue, чтобы разрешить небезопасное подключение.
Конфигурация функций Sigstore
Журнал прозрачности
Примечание: Если transparency.enabled установлен в manual, в журнал прозрачности будут загружаться только TaskRuns и PipelineRuns со следующей аннотацией: