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" # TCP probe — Agent(/) MCP(/mcp) 구분 없이 포트 오픈 여부만 확인 readinessProbe: tcpSocket: port: http initialDelaySeconds: 3 periodSeconds: 5 timeoutSeconds: 2 failureThreshold: 6 livenessProbe: tcpSocket: port: http initialDelaySeconds: 10 periodSeconds: 10 timeoutSeconds: 2 failureThreshold: 6 resources: requests: cpu: "50m" memory: "128Mi" limits: cpu: "500m" memory: "512Mi"