66 lines
1.8 KiB
Django/Jinja
66 lines
1.8 KiB
Django/Jinja
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: ${RELEASE_NAME}
|
|
labels:
|
|
app.kubernetes.io/name: ${RELEASE_NAME}
|
|
app.kubernetes.io/managed-by: "jenkins"
|
|
watcher.project: "{{ project_id }}"
|
|
watcher.nodeId: "{{ node_id }}"
|
|
watcher.role: "{{ node_type }}"
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app.kubernetes.io/name: ${RELEASE_NAME}
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app.kubernetes.io/name: ${RELEASE_NAME}
|
|
app.kubernetes.io/managed-by: "jenkins"
|
|
watcher.project: "{{ project_id }}"
|
|
watcher.nodeId: "{{ node_id }}"
|
|
watcher.role: "{{ node_type }}"
|
|
watcher.branch: ${BRANCH_NAME}
|
|
annotations:
|
|
watcher.enabled: "true"
|
|
spec:
|
|
{% if image_pull_secret %}
|
|
imagePullSecrets:
|
|
- name: {{ image_pull_secret }}
|
|
{% endif %}
|
|
containers:
|
|
- name: app
|
|
image: ${FULL_IMAGE}
|
|
imagePullPolicy: IfNotPresent
|
|
ports:
|
|
- name: http
|
|
containerPort: {{ app_port | default(80) }}
|
|
env:
|
|
- name: TZ
|
|
value: "Asia/Seoul"
|
|
# 기본 probe (필요 없으면 제거/수정)
|
|
readinessProbe:
|
|
httpGet:
|
|
path: /
|
|
port: http
|
|
initialDelaySeconds: 3
|
|
periodSeconds: 5
|
|
timeoutSeconds: 2
|
|
failureThreshold: 6
|
|
livenessProbe:
|
|
httpGet:
|
|
path: /
|
|
port: http
|
|
initialDelaySeconds: 10
|
|
periodSeconds: 10
|
|
timeoutSeconds: 2
|
|
failureThreshold: 6
|
|
resources:
|
|
requests:
|
|
cpu: "50m"
|
|
memory: "128Mi"
|
|
limits:
|
|
cpu: "500m"
|
|
memory: "512Mi"
|