디렉토리 구조
base/
app-cm.yml
app-ingress.yml
app-deploy.yml
app-service.yml
kustomization.yml
overlay/
kustomization.yml
patches/
app-deploy.yml
app-service.yml
base/app-cm.yml
apiVersion: v1
kind: ConfigMap
metadata:
name: oliveyoung-config
data:
DB_USER: admin
JWT_ACCESS_EXPIRATION: "5184000000"
JWT_REFRESH_EXPIRATION: "15552000000"
application.properties: |-
spring.profiles.include=k8s
spring.application.name=oliveyoung-fbu-server
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.database=mysql
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect
spring.datasource.username=admin
jwt.access-expiration=5184000000
jwt.refresh-expiration=15552000000
base/app-ingress.yml
kind: IngressClass
metadata:
name: alb-ingress-class
spec:
controller: ingress.k8s.aws/alb
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: nginx-ingress
annotations:
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/target-type: ip
alb.ingress.kubernetes.io/healthcheck-path: /health
spec:
ingressClassName: alb-ingress-class
rules:
#- host: nginx.example.com
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: app-service
port:
number: 80
base/app-deploy.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: app-deployment
spec:
replicas: 2
selector:
matchLabels:
app: oliveyoung
template:
metadata:
labels:
app: oliveyoung
spec:
containers:
- name: myapp
image: 409492321037.dkr.ecr.ap-northeast-2.amazonaws.com/cicd-gitlab:f83c2540
ports:
- containerPort: 8080
envFrom:
#- configMapRef:
# name: oliveyoung-config
- secretRef:
name: oliveyoung-secret
base/app-service.yml
apiVersion: v1
kind: Service
metadata:
name: app-service
spec:
ports:
- port: 80
targetPort: 8080
selector:
app: oliveyoung
base/kustomization.yml
resources:
- app-deploy.yml
- app-service.yml
- app-ingress.yml
- app-cm.yml
overlay/kustomization.yml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: default
resources:
- ../base
patches:
- path: patches/app-deploy.yml
- path: patches/app-service.yml
- path: patches/app-ingress.yml
images:
- name: 409492321037.dkr.ecr.ap-northeast-2.amazonaws.com/cicd-gitlab
newName: 409492321037.dkr.ecr.ap-northeast-2.amazonaws.com/cicd-gitlab
newTag: f83c2540