Конфигурация Chains
Содержание
ОбзорКонфигурацияКонфигурация в ConfigMapchains-configКонфигурация в TektonConfigКонфигурация TaskRunКонфигурация PipelineRunКонфигурация OCIКонфигурация хранилищаКонфигурация возможностей SigstoreTransparency LogБесключевая подпись с 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: Формат attestations.artifacts.oci.storage: Бэкенд хранения для attestations.artifacts.pipelinerun.format: Формат attestations для PipelineRuns.artifacts.pipelinerun.storage: Бэкенд хранения для attestations для PipelineRuns.artifacts.taskrun.format: Формат attestations для TaskRuns.artifacts.taskrun.storage: Бэкенд хранения для attestations для TaskRuns.
Конфигурация в TektonConfig
В ресурсе TektonConfig конфигурация Chains выглядит примерно так:
Совет: Булевы значения имеют исходный тип, например
trueилиfalse.
Описание полей YAML:
spec.chain: Этот раздел содержит конфигурацию Chains.disabled: Нужно ли отключить Chains.- Эта конфигурация уникальна для TektonConfig и отсутствует в TektonChains.
generateSigningSecret: Нужно ли генерировать 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для обратной совместимости.- Если storage —
oci, attestations будут храниться вместе с самим сохраненным OCI-артефактом. Дополнительную информацию см. в документации cosign. - Если storage —
tekton, attestations будут храниться в аннотациях TektonTaskRun.
Конфигурация PipelineRun
Как и для TaskRun, вы можете настроить подпись и storage для PipelineRun.
- Если storage —
oci, attestations будут храниться вместе с самим сохраненным OCI-артефактом. Дополнительную информацию см. в документации cosign. - Если storage —
tekton, attestations будут храниться в аннотациях TektonPipelineRun.
Конфигурация OCI
- Если storage —
oci, attestations будут храниться вместе с самим сохраненным OCI-артефактом. Дополнительную информацию см. в документации cosign. - Если storage —
tekton, attestations будут храниться в аннотациях TektonTaskRunилиPipelineRun.
Конфигурация хранилища
Chains поддерживает несколько бэкендов хранения для сохранения attestations и signatures. Ниже перечислены некоторые из наиболее распространенных; для более подробной конфигурации см. Конфигурация хранилища
Пояснение
- Если ваш OCI repository использует самоподписанный сертификат, необходимо установить
storage.oci.repository.insecureвtrue, чтобы разрешить insecure connection.
Конфигурация возможностей Sigstore
Transparency Log
Примечание: Если transparency.enabled установлен в manual, то только TaskRuns и PipelineRuns со следующей аннотацией будут загружаться в transparency log: