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"