44 lines
1.7 KiB
Django/Jinja
44 lines
1.7 KiB
Django/Jinja
#jinja2: trim_blocks:True, lstrip_blocks:True
|
||
{#
|
||
Манифест секретов доступа к приватному реестру, собираемый из ключа
|
||
сервисного аккаунта (registry_key_src) на control-node.
|
||
|
||
Секретов два и они РАЗНОГО назначения:
|
||
* yc-cr-auth (flux-system) — им source-controller тянет OCI-ЧАРТЫ.
|
||
Обязателен: без него не поедет ни один HelmRelease.
|
||
* regcred (namespace потребителя) — imagePullSecrets подов. Продублирован
|
||
из манифестов репозитория; на уровне ноды образы и так доступны через
|
||
/etc/rancher/k3s/registries.yaml, но манифесты на него ссылаются.
|
||
|
||
Namespace создаётся здесь же: секрет нужен РАНЬШЕ, чем чарт создаст namespace.
|
||
|
||
ВНИМАНИЕ: файл содержит секрет в открытом виде. Рендерится с mode 0600
|
||
во временный каталог и удаляется сразу после kubectl apply.
|
||
#}
|
||
{% set docker_config = {
|
||
"auths": {
|
||
registry_host: {
|
||
"username": registry_username,
|
||
"password": registry_key_content,
|
||
"auth": (registry_username ~ ":" ~ registry_key_content) | b64encode
|
||
}
|
||
}
|
||
}
|
||
%}
|
||
{% for s in registry_secrets %}
|
||
---
|
||
apiVersion: v1
|
||
kind: Namespace
|
||
metadata:
|
||
name: {{ s.namespace }}
|
||
---
|
||
apiVersion: v1
|
||
kind: Secret
|
||
metadata:
|
||
name: {{ s.name }}
|
||
namespace: {{ s.namespace }}
|
||
type: kubernetes.io/dockerconfigjson
|
||
data:
|
||
.dockerconfigjson: {{ docker_config | to_json | b64encode }}
|
||
{% endfor %}
|