refactor: update sample helm chart

This commit is contained in:
이상진 2025-07-11 17:31:47 +09:00
parent 1364d02816
commit b9fe601005
6 changed files with 84 additions and 67 deletions

View File

@ -5,7 +5,7 @@ metadata:
name: {{ .Values.application.name }} name: {{ .Values.application.name }}
namespace: {{ .Values.common.namespace }} namespace: {{ .Values.common.namespace }}
labels: labels:
app: {{ .Values.application.name }} app: {{ .Values.application.name }}
spec: spec:
selector: selector:
@ -20,35 +20,22 @@ spec:
containers: containers:
- name: {{ .Values.application.name }} - name: {{ .Values.application.name }}
image: {{ .Values.application.image }}:{{ .Values.application.tag | default "latest" }} image: {{ .Values.application.image }}:{{ .Values.application.tag | default "latest" }}
ports: ports:
- containerPort: {{ .Values.application.ports.containerPort }} - containerPort: {{ .Values.application.ports.containerPort }}
name: {{ .Values.application.ports.name }} name: {{ .Values.application.ports.name }}
env: env:
- name: SPRING_PROFILES_ACTIVE - name: SPRING_PROFILES_ACTIVE
valueFrom: value: {{ .Values.application.env.spring_profile }}
secretKeyRef:
name: {{ .Values.common.secretName }}
key: spring_profile
- name: SPRING_DATASOURCE_URL - name: SPRING_DATASOURCE_URL
valueFrom: value: {{ .Values.application.env.database_url }}
secretKeyRef:
name: {{ .Values.common.secretName }}
key: database_url
- name: SPRING_DATASOURCE_DRIVER_CLASS_NAME - name: SPRING_DATASOURCE_DRIVER_CLASS_NAME
valueFrom: value: {{ .Values.application.env.database_driver_class }}
secretKeyRef:
name: {{ .Values.common.secretName }}
key: database_driver_class
- name: SPRING_DATASOURCE_USERNAME - name: SPRING_DATASOURCE_USERNAME
valueFrom: value: {{ .Values.database.env.username }}
secretKeyRef:
name: {{ .Values.common.secretName }}
key: database_username
- name: SPRING_DATASOURCE_PASSWORD - name: SPRING_DATASOURCE_PASSWORD
valueFrom: value: {{ .Values.database.env.password }}
secretKeyRef:
name: {{ .Values.common.secretName }} imagePullSecrets:
key: database_password - name: privateregistry

View File

@ -0,0 +1,30 @@
{{- if .Values.application.ingress.enabled -}}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ .Values.application.ingress.name }}
namespace: {{ .Values.common.namespace }}
annotations:
cert-manager.io/cluster-issuer: {{ .Values.application.ingress.clusterIssuer }}
nginx.ingress.kubernetes.io/rewrite-target: /$2
nginx.ingress.kubernetes.io/use-forwarded-headers: "true"
nginx.ingress.kubernetes.io/x-forwarded-for: "$proxy_add_x_forwarded_for"
spec:
ingressClassName: {{ .Values.application.ingress.className }}
tls:
- hosts:
- {{ .Values.application.ingress.host }}
secretName: {{ .Values.application.ingress.tls.secretName }}
rules:
- host: {{ .Values.application.ingress.host }}
http:
paths:
- path: {{ .Values.application.ingress.path }}
pathType: ImplementationSpecific
backend:
service:
name: {{ .Values.application.service.name }}
port:
number: {{ .Values.application.service.port }}
{{- end }}

View File

@ -8,6 +8,10 @@ metadata:
app: {{ .Values.database.name }} app: {{ .Values.database.name }}
spec: spec:
serviceName: {{ .Values.database.service.name }}
selector:
matchLabels:
app: {{ .Values.database.name }}
template: template:
metadata: metadata:
labels: labels:
@ -22,25 +26,13 @@ spec:
env: env:
- name: MYSQL_ROOT_PASSWORD - name: MYSQL_ROOT_PASSWORD
valueFrom: value: {{ .Values.database.env.root_password | quote }}
secretKeyRef:
name: {{ .Values.common.secretName }}
key: database_root_password
- name: MYSQL_DATABASE - name: MYSQL_DATABASE
valueFrom: value: {{ .Values.database.env.default_database | quote }}
secretKeyRef:
name: {{ .Values.common.secretName }}
key: default_database
- name: MYSQL_USER - name: MYSQL_USER
valueFrom: value: {{ .Values.database.env.username | quote }}
secretKeyRef:
name: {{ .Values.common.secretName }}
key: database_username
- name: MYSQL_PASSWORD - name: MYSQL_PASSWORD
valueFrom: value: {{ .Values.database.env.password | quote }}
secretKeyRef:
name: {{ .Values.common.secretName }}
key: database_password
volumeMounts: volumeMounts:
- name: {{ .Values.database.volume.name }} - name: {{ .Values.database.volume.name }}

View File

@ -1,18 +0,0 @@
apiVersion: v1
kind: Secret
metadata:
name: {{ .Values.common.secretName }}
type: 0paque
stringData:
spring_profile: "deploy"
default_database: "<path:demo/data/application#db_default_database>"
database_driver_class: "<path:demo/data/application#db_driver_class>"
database_url: "<path:demo/data/application#db_url>"
database_root_password: "<path:demo/data/application#db_root_password>"
database_username: "<path:demo/data/application#db_username>"
database_password: "<path:demo/data/application#db_password>"

View File

@ -2,7 +2,7 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: {{ .Values.database.name }}-service name: {{ .Values.application.service.name }}
labels: labels:
app: {{ .Values.database.name }} app: {{ .Values.database.name }}
@ -19,13 +19,13 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: {{ .Values.application.name }}-service name: {{ .Values.application.service.name }}
labels: labels:
app: {{ .Values.application.name }} app: {{ .Values.application.name }}
spec: spec:
type: {{ .Values.application.service.type }} type: {{ .Values.application.service.type }}
ports: ports:
- port: {{ .Values.application.service.port }} - port: {{ .Values.application.service.port }}
selector: selector:
app: {{ .Values.application.name }} app: {{ .Values.application.name }}

View File

@ -1,6 +1,5 @@
common: common:
namespace: argo-vault-demo namespace: argo-demo
secretName: argo-vault-demo-secret
database: database:
image: mysql:8.4 image: mysql:8.4
@ -23,6 +22,7 @@ database:
size: 512Mi size: 512Mi
service: service:
name: mysql-service
type: ClusterIP type: ClusterIP
port: 3306 port: 3306
@ -30,13 +30,39 @@ database:
name: mysql-data name: mysql-data
mountPath: /var/lib/mysql mountPath: /var/lib/mysql
env:
default_database: <path:argo-cd/data/argo-vault-demo#database_default_database>
root_password: <path:argo-cd/data/argo-vault-demo#database_root_password>
username: <path:argo-cd/data/argo-vault-demo#database_username>
password: <path:argo-cd/data/argo-vault-demo#database_password>
application: application:
name: argo-vault-demo name: argo-vault-demo
image: argo-vault-demo image: argo-vault-demo
tag: latest tag: latest
ports: ports:
containerPort: 8080 containerPort: 8080
name: application name: application
service: service:
name: argo-vault-demo-service
type: ClusterIP type: ClusterIP
port: 8080 port: 8080
ingress:
enabled: true
name: argo-vault-demo-ingress
clusterIssuer: letsencrypt-prod
className: nginx
host: "your-domain.com"
path: /api(/|$)(.*)
tls:
enabled: false
secretName: argo-demo-ingress-cert
env:
spring_profile: "deploy"
database_url: <path:argo-cd/data/argo-vault-demo#database_jdbc_url>
database_driver_class: <path:argo-cd/data/argo-vault-demo#database_driver_class>