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