Files
K3S/addons/jenkins/role/templates/jenkins-values.yaml.j2
Sergey Antropoff 1080e6a792 feat: расширен список Jenkins plugins — Vault, RBAC, уведомления, quality
Добавлены плагины по категориям:
- Секреты: hashicorp-vault-plugin, kubernetes-credentials
- Права: role-strategy, ldap
- VCS: bitbucket
- Build tools: maven-plugin, gradle, nodejs, ansible
- Quality: sonar, warnings-ng, jacoco, cobertura, htmlpublisher
- Artifacts: nexus-artifact-uploader, artifactory, publish-over-ssh
- Уведомления: email-ext, slack, telegram-notifications, mattermost
- Pipeline: pipeline-utility-steps, job-dsl, copyartifact, build-name-setter,
  throttle-concurrents, parameterized-trigger, docker-plugin

JCasC: при addon_vault: true автоматически настраивает hashicorpVault URL
Добавлена секция jenkins_vault_url в defaults
2026-04-25 18:53:46 +03:00

101 lines
2.9 KiB
Django/Jinja

controller:
# Учётные данные администратора
adminUser: "{{ jenkins_admin_user }}"
adminPassword: "{{ jenkins_admin_password }}"
# Plugins устанавливаются при первом старте
installPlugins:
{% for plugin in jenkins_plugins %}
- {{ plugin }}
{% endfor %}
{% if jenkins_metrics_enabled %}
- prometheus
{% endif %}
# Ресурсы
resources:
requests:
cpu: "{{ jenkins_resources.requests.cpu }}"
memory: "{{ jenkins_resources.requests.memory }}"
limits:
cpu: "{{ jenkins_resources.limits.cpu }}"
memory: "{{ jenkins_resources.limits.memory }}"
# Тип сервиса (ClusterIP — доступ через Ingress)
serviceType: ClusterIP
# Ingress
ingress:
enabled: {{ jenkins_ingress_enabled | lower }}
{% if jenkins_ingress_enabled %}
ingressClassName: "{{ jenkins_ingress_class }}"
hostName: "{{ jenkins_ingress_host }}"
{% if jenkins_ingress_tls %}
tls:
- secretName: jenkins-tls
hosts:
- "{{ jenkins_ingress_host }}"
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: "50m"
nginx.ingress.kubernetes.io/proxy-read-timeout: "300"
cert-manager.io/cluster-issuer: "{{ jenkins_ingress_cert_issuer }}"
{% endif %}
{% endif %}
# Prometheus metrics
prometheus:
enabled: {{ jenkins_metrics_enabled | lower }}
# JCasC — базовая конфигурация
JCasC:
defaultConfig: true
configScripts:
jenkins-config: |
jenkins:
systemMessage: "Managed by Ansible k3s-ansible"
numExecutors: 0
unclassified:
location:
url: "http{{ 's' if jenkins_ingress_tls else '' }}://{{ jenkins_ingress_host }}/"
{% if addon_vault | default(false) | bool %}
vault-config: |
unclassified:
hashicorpVault:
configuration:
vaultUrl: "http://vault.vault.svc.cluster.local:8200"
vaultCredentialId: "vault-approle"
engineVersion: 2
skipSslVerification: true
timeout: 60
{% endif %}
# Хранилище Jenkins Home
persistence:
enabled: true
size: "{{ jenkins_storage_size }}"
{% if jenkins_storage_class %}
storageClass: "{{ jenkins_storage_class }}"
{% endif %}
# Kubernetes Pod Agents
agent:
enabled: {{ jenkins_agent_enabled | lower }}
image:
repository: "jenkins/inbound-agent"
tag: "latest"
resources:
requests:
cpu: "{{ jenkins_agent_resources.requests.cpu }}"
memory: "{{ jenkins_agent_resources.requests.memory }}"
limits:
cpu: "{{ jenkins_agent_resources.limits.cpu }}"
memory: "{{ jenkins_agent_resources.limits.memory }}"
# Отдельный PVC для Jenkins home (master)
persistence:
enabled: true
size: "{{ jenkins_storage_size }}"
{% if jenkins_storage_class %}
storageClass: "{{ jenkins_storage_class }}"
{% endif %}