Files
service-catalog/manifests/helm/rancher/2.14.3/values.yaml
T
wbsong111 16321b52c7 dipup 사용 차트를 카탈로그에 동기화 (7개 갱신 + 5개 신규)
dipup 이 go:embed 로 직접 보관·관리하던 Helm 차트를 카탈로그로 옮기는 첫 단계다.
두 저장소가 각자 CVE/SBOM 파이프라인을 운영하는 이중화를 해소하려면, 먼저 카탈로그가
dipup 과 같은 차트·같은 이미지를 보게 만들어야 한다.

배경: CVE 파이프라인 구성 이전에 두 곳에서 같은 차트를 유지하기 어려워 dipup 이 별도로
차트를 관리해 왔고, 그 결과 버전이 갈라졌다. 겹치는 10개 중 버전까지 일치하는 것은
postgresql-ha·dnsup 2개뿐이었다.

## 버전 갱신 (7개) — 신규 버전 디렉토리 추가, 구버전은 보존

| 차트 | 기존 | 신규 | appVersion |
|---|---|---|---|
| apisix | 2.14.0 | 2.16.0 | 3.16.0 → 3.17.0 |
| argo-cd | 7.7.0 | 7.8.11 | v2.13.0 → v2.14.5 |
| cert-manager | v1.16.1 | v1.21.0 | 동일 |
| gitea | 12.4.0 | 12.6.0 | 1.24.6 → 1.26.1 |
| harbor | 1.16.2 | 1.19.1 | 2.12.2 → 2.15.1 |
| kyverno | 3.4.1 | 3.8.2 | v1.14.1 → v1.18.2 |
| rancher | 2.10.1 | 2.14.3 | v2.10.1 → v2.14.3 |

차트 본문은 dipup 이 임베딩한 .tgz 를 그대로 전개했다(네트워크 pull 이 아니라 dipup 이
실제 배포하는 바이트와 동일함을 보장하기 위함). BUILD-README/CUSTOM-README/custom-values
3개 파일은 구버전에서 승계했다.

## 신규 추가 (5개)

infisical-standalone 1.9.0, longhorn 109.3.1+up1.11.2, longhorn-crd 109.3.1+up1.11.2,
metallb 0.16.1, secrets-operator v0.10.33.

longhorn/longhorn-crd 는 업스트림이 아니라 Rancher 패키징 차트(109.x 라인, Rancher 2.14
계열과 짝)다. BUILD-README 의 `helm repo add` 라인은 chart_version_detector 가 파싱하는
계약이라 실제 업스트림 repo 를 검증해 기재했고, 감지기로 현재/최신 버전이 정상 조회되는
것을 확인했다.

## custom-values — 버전과 결합된 이미지 핀 정리

카탈로그 스캐너가 dipup 의 effective image 를 보게 하려면 이미지 핀이 맞아야 한다.

- **kyverno: 승계본이 3.8.2 에서 깨져 재작성.** 3.4.1 은 정리 훅이
  `registry: ~ / repository: bitnami/kubectl` 이라 bitnamilegacy 오버라이드가 맞았지만,
  3.8.2 는 `registry: ghcr.io / repository: kyverno/readiness-checker` 로 바뀌었다.
  그대로 옮기면 ghcr.io/bitnamilegacy/kubectl 이라는 없는 좌표가 된다. 해당 오버라이드를
  제거하고, 3.8.2 에서 삭제된 policyReportsCleanup 키도 함께 뺐다. 남는 조치는 tag 고정뿐
  (기본 tag 가 비어 latest 로 떨어짐 → v1.18.2 로 고정).
- apisix: 3.16.0-keycloak-authz → 3.17.0-keycloak-authz (차트 appVersion 과 함께 이동)
- gitea: image.tag 1.26.4 핀 추가 — 차트 기본 1.26.1 대비 CRITICAL 2→0, HIGH 44→12
- infisical: image.tag v0.162.7 핀 — 기본 v0.158.x 는 stale Debian base 로 OS 기인 CVE
  다수(fixable CRITICAL 53→5, HIGH 491→55). redis/postgresql 은 bitnamilegacy 좌표로.
- longhorn: 실측 기반 리소스 튜닝(manager request, guaranteedInstanceManagerCPU,
  systemManagedCSIComponentsResourceLimits). replica 수처럼 노드 수에 의존하는 값은
  넣지 않았다 — 소비 측에서 주입한다.

## 검증

12개 차트 전부 `helm template --kube-version 1.34.1` 렌더 성공. 렌더 결과 이미지가
dipup 배포 이미지와 일치함을 확인(paasup/apisix:3.17.0-keycloak-authz,
gitea:1.26.4-rootless, readiness-checker:v1.18.2, infisical:v0.162.7).

## 범위에서 뺀 것

- **keycloak**: 카탈로그는 codecentric(app 17.0.1-legacy), dipup 은 bitnami(app 26.2.4)로
  계보가 다르다. 이슈 #1(bitnami 대체 방안 검토)의 결론이 나온 뒤 처리한다.
- **rancher-monitoring(-crd)**: 14c05f1 에서 불필요 판단으로 제거된 차트이고
  victoria-metrics 스택으로 대체 예정이라 추가하지 않는다.
- **dip-api/dip-console**: 자체 개발 차트로 각 앱 저장소가 출처다. 대조 결과 앱 저장소와
  dipup 사본이 일치해 카탈로그가 개입할 이유가 없다.
- **postgresql-ha/dnsup**: 이미 버전이 일치해 작업 대상이 아니었다.

## 후속 과제

dnsup 은 카탈로그·dipup 사본(1.0.1)이 원본(dip-console-api helm/dnsup 1.0.0)보다 앞서
있다. 1.0.1 에만 있는 service.LoadBalancerIP·service.annotations 지원을 원본으로 백포트한
뒤, 카탈로그에서 dnsup 을 제거하는 것이 자체 개발 차트 출처 원칙에 맞다.
2026-08-06 09:42:24 +09:00

344 lines
12 KiB
YAML

# Additional Trusted CAs.
# Enable this flag and add your CA certs as a secret named tls-ca-additional in the namespace.
# See README.md for details.
additionalTrustedCAs: false
antiAffinity: preferred
topologyKey: kubernetes.io/hostname
# Source: https://ranchermanager.docs.rancher.com/how-to-guides/advanced-user-guides/enable-api-audit-log
auditLog:
enabled: false
# level can be one of 0, 1, 2, or 3 with 3 being the most verbose. This value is a system level default and may
# impact the verbosity on any AuditPolicies you define. See below for a description of each log level:
# 0: Only log metadata such as URI, method, user, etc
# 1: Log metadata, request headers, and response headers
# 2: Log metadata, request header, response headers, and request body
# 3: Log metadata, request header, response heaeders, request body, and response body
level: 0
# destination may be one of "sidecar" or "hostpath". When set to "sidecar" logs will be sent and output to a sidecar
# container called "rancher-audit-log". When "hostpath" logs are written to a hostpath volume called "audit-log" to
# a directory configured by auditLog.hostPath.
destination: sidecar
hostPath: /var/log/rancher/audit/
maxAge: 1
maxBackup: 1
maxSize: 100
# Set pod resource requests/limits for Audit log sidecar (ONLY used if destination=sidecar).
resources: {}
# Image for collecting rancher audit logs.
# Important: update pkg/image/export/resolve.go when this default image is changed, so that it's reflected accordingly in rancher-images.txt generated for air-gapped setups.
image:
# Optional: Image-specific registry override
# registry: ""
repository: "rancher/mirrored-bci-micro"
tag: 15.6.24.2
# Optional: Image-specific pullPolicy Override
# options: Always, Never, IfNotPresent
pullPolicy: "IfNotPresent"
# Timeout for rancher controllers to complete a cache sync. Larger clusters may need to increase this value.
# cacheSyncTimeout: 5m
# As of Rancher v2.5.0 this flag is deprecated and must be set to 'true' in order for Rancher to start
addLocal: "true"
# Add debug flag to Rancher server
debug: false
# Control how the Rancher agents validate TLS connections
# Valid options: strict, or system-store
# Note, for new installations empty will default to strict on 2.9+, or system-store on 2.8 or older
agentTLSMode: ""
# Extra environment variables passed to the rancher pods.
# extraEnv:
# - name: CATTLE_TLS_MIN_VERSION
# value: "1.0"
# Fully qualified name to reach your Rancher server
# hostname: rancher.my.org
## Optional array of imagePullSecrets containing private registry credentials
## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
imagePullSecrets: []
# - name: secretName
# Network exposure configuration
# Choose between 'ingress' or 'gateway'
networkExposure:
type: "ingress" # Options: "ingress", "gateway", or "none"
# Traditional Ingress configuration
# Readme for details and instruction on adding tls secrets.
ingress:
# If set to false, ingress will not be created
# Defaults to true; options: true, false
# Note: Ingress is only created when BOTH this is true AND networkExposure.type is 'ingress'
enabled: true
# The includeDefaultExtraAnnotations are deprecated due to ingress-nginx retiring in March 2026.
includeDefaultExtraAnnotations: false
extraAnnotations: {}
# When left blank the ingress will use the cluster default ingress class.
# The ingress template only renders annotations for `ingress-nginx` by default.
# Use `ingress.extraAnnotations` to define annotations for other ingress classes.
# As of March 2026 `ingress-nginx` has been retired and should be migrated away from.
ingressClassName: ""
# Certain ingress controllers will require the pathType or path to be set to a different value.
pathType: ImplementationSpecific
path: "/"
# Backend port number; should use either: 80, or 443.
# Must use 443 when `service.disableHTTP` is set to true.
servicePort: 80
# configurationSnippet - Add additional Nginx configuration. This example statically sets a header on the ingress.
# configurationSnippet: |
# more_set_input_headers "X-Forwarded-Host: {{ .Values.hostname }}";
tls:
# options: rancher, letsEncrypt, secret
source: rancher
secretName: tls-rancher-ingress
# Gateway API configuration
gateway:
gatewayClass:
name: "traefik" # Set to the Gateway class name (k3s/rke2: traefik)
ports: # Must match the GatewayClass's configured entrypoints
http: 8000 # k3s Traefik defaults to web entrypoint to 8000
https: 8443 # k3s Traefik defaults to websecure entrypoint to 8443
additionalListeners: [] # Additional listener configs
# - name: http
# protocol: HTTP
# port: 80
# hostname: "*.example.com"
# - name: https
# protocol: HTTPS
# port: 443
# hostname: "*.example.com"
# tls:
# mode: Terminate
# certificateRefs:
# - name: app-tls
# kind: Secret
tls:
# options: rancher, letsEncrypt, secret
source: rancher
secretName: tls-rancher-ingress
### service ###
# Override to use NodePort or LoadBalancer service type - default is ClusterIP
service:
type: ""
annotations: {}
# An optional security setting to disables the HTTP port of the rancher service
# When set true, you must also set `ingress.servicePort` to 443 and the appropriate ingress annotation to use HTTPS
disableHTTP: false
### LetsEncrypt config ###
# ProTip: The production environment only allows you to register a name 5 times a week.
# Use staging until you have your config right.
letsEncrypt:
# email: none@example.com
environment: production
ingress:
# options: traefik, nginx
class: ""
# If you are using certs signed by a private CA set to 'true' and set the 'tls-ca'
# in the 'cattle-system' namespace. See the README.md for details
privateCA: false
# http[s] proxy server passed into rancher server.
# proxy: http://<username>@<password>:<url>:<port>
# comma separated list of domains or ip addresses that will not use the proxy
noProxy: 127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.svc,.cluster.local
# Rancher image configuration
image:
# Optional: Image-specific registry override
# registry: ""
repository: rancher/rancher
# Defaults to .Chart.appVersion
# rancher/rancher image tag. https://hub.docker.com/r/rancher/rancher/tags/
tag: ""
pullPolicy: IfNotPresent
## Deprecation Notice: `rancherImage`, `rancherImageTag`, and `rancherImagePullPolicy` are deprecated - use `image.*` fields instead.
# Override the name of the Rancher image to pull.
# To override the registry location use systemDefaultRegistry instead.
# rancherImage: ""
# rancher/rancher image tag. https://hub.docker.com/r/rancher/rancher/tags/
# Defaults to .Chart.appVersion
# rancherImageTag: v2.0.7
# Override imagePullPolicy for rancher server images
# options: Always, Never, IfNotPresent
# Defaults to IfNotPresent
# rancherImagePullPolicy: <pullPolicy>
# aggregationRegistrationTimeout: 5m
# Number of Rancher server replicas. Setting to negative number will dynamically between 0 and the abs(replicas) based on available nodes.
# of available nodes in the cluster
replicas: 3
# Set priorityClassName to avoid eviction
priorityClassName: rancher-critical
# Set pod resource requests/limits for Rancher.
resources: {}
#
# tls
# Where to offload the TLS/SSL encryption
# - ingress (default)
# - external
tls: ingress
# Set a custom image registry mirror to pull Rancher images from; useful in air-gapped environments.
systemDefaultRegistry:
# Set to use the packaged system charts
useBundledSystemChart: false
# Certmanager version compatibility
certmanager:
version: ""
# Rancher custom logos persistence
customLogos:
enabled: false
volumeSubpaths:
emberUi: "ember"
vueUi: "vue"
## Volume kind to use for persistence: persistentVolumeClaim, configMap
volumeKind: persistentVolumeClaim
## Use an existing volume. Custom logos should be copied to the volume by the user
# volumeName: custom-logos
## Just for volumeKind: persistentVolumeClaim
## To disables dynamic provisioning, set storageClass: "" or storageClass: "-"
# storageClass: "-"
accessMode: ReadWriteOnce
size: 1Gi
# Rancher post-delete hook
postDelete:
enabled: true
image:
# Optional: Image-specific registry override
# registry: ""
repository: rancher/shell
tag: v0.7.1
# Optional: Image-specific pullPolicy Override
# options: Always, Never, IfNotPresent
# pullPolicy: "Always"
namespaceList:
- cattle-fleet-system
- cattle-system
- rancher-operator-system
# Number of seconds to wait for an app to be uninstalled
timeout: 120
# by default, the job will fail if it fail to uninstall any of the apps
ignoreTimeoutError: false
preUpgrade:
image:
# Optional: Image-specific registry override
# registry: ""
repository: rancher/shell
tag: v0.7.1
# Optional: Image-specific pull policy override
# pullPolicy: "Always"
# Set a bootstrap password. If leave empty, a random password will be generated.
bootstrapPassword: ""
startupProbe:
## should be ready within 2 minutes
timeoutSeconds: 5
periodSeconds: 10
failureThreshold: 12
# Additional taints to tolerate
extraTolerations: {}
# Additional node selector terms for the rancher deployment
# Ex:
# - key: topology.kubernetes.io/zone
# operator: In
# values:
# - us-north-42
extraNodeSelectorTerms: {}
livenessProbe:
timeoutSeconds: 5
periodSeconds: 30
failureThreshold: 5
readinessProbe:
timeoutSeconds: 5
periodSeconds: 30
failureThreshold: 5
# Enable host networking for Rancher pods.
# Required for EKS clusters using non-VPC CNIs (e.g. Calico).
hostNetwork: false
# helm values to use when installing the rancher-webhook chart.
# helm values set here will override all other global values used when installing the webhook such as priorityClassName and systemRegistry settings.
webhook: ""
# helm values to use when installing the fleet chart.
# helm values set here will override all other global values used when installing the fleet chart.
fleet: ""
# Create a dynamic manifests via values:
# Beware: There will be no validation on these resource manifests in `extraObjects` - they must be valid k8s resources.
# If you encounter issues installing/upgrading rancher while using these, please investigate these first.
extraObjects: []
# - apiVersion: "networking.k8s.io/v1"
# kind: NetworkPolicy
# metadata:
# name: allow-https-444-to-rancher
# namespace: your-namespace # Change to the appropriate namespace
# spec:
# podSelector:
# matchLabels:
# app: rancher # Selects pods labeled with "app: rancher"
# policyTypes:
# - Ingress # Controls inbound traffic to the selected pods
# ingress:
# - ports:
# - protocol: TCP
# port: 444 # Allows only TCP traffic on port 444 (custom HTTPS port)
# # Since no other ingress rules are defined, all other traffic is denied by default.
# - apiVersion: "networking.k8s.io/v1"
# kind: NetworkPolicy
# metadata:
# name: rancher-deny-ingress
# namespace: cattle-system
# spec:
# podSelector:
# matchLabels:
# app: rancher
# policyTypes:
# - Ingress
# Control additional labels and annotations on namespaces create by Rancher.
rancherNamespaces:
# If enabled is true, the "cattle.io/managed-namespace" annotation will be applied to any new namespaces.
enabled: false
# Additional labels to be added to new namespaces.
# labels:
# foo: bar
# Additional annotaitons to be added to new namespaces. Will be appied along with the "cattle.io/managed-namespace" annotation.
# annotations:
# foo: bar