From 25a4c878c19cc0bbf7cc6d911a4dd251e539cf4b Mon Sep 17 00:00:00 2001 From: Koichi Shiraishi Date: Sun, 5 Jan 2025 00:52:18 +0900 Subject: [PATCH] deploy: add deployment yaml Signed-off-by: Koichi Shiraishi --- deploy/base/deployment.yaml | 47 ++++++++++++++++++++++ deploy/base/horizontal_pod_autoscaler.yaml | 18 +++++++++ deploy/base/kustomization.yaml | 11 +++++ deploy/base/namespace.yaml | 4 ++ deploy/base/service.yaml | 12 ++++++ deploy/base/service_account.yaml | 4 ++ deploy/dev/deployment.yaml | 10 +++++ deploy/dev/horizontal_pod_autoscaler.yaml | 18 +++++++++ deploy/dev/kustomization.yaml | 12 ++++++ deploy/dev/service_account.yaml | 4 ++ 10 files changed, 140 insertions(+) create mode 100644 deploy/base/deployment.yaml create mode 100644 deploy/base/horizontal_pod_autoscaler.yaml create mode 100644 deploy/base/kustomization.yaml create mode 100644 deploy/base/namespace.yaml create mode 100644 deploy/base/service.yaml create mode 100644 deploy/base/service_account.yaml create mode 100644 deploy/dev/deployment.yaml create mode 100644 deploy/dev/horizontal_pod_autoscaler.yaml create mode 100644 deploy/dev/kustomization.yaml create mode 100644 deploy/dev/service_account.yaml diff --git a/deploy/base/deployment.yaml b/deploy/base/deployment.yaml new file mode 100644 index 0000000..5319a16 --- /dev/null +++ b/deploy/base/deployment.yaml @@ -0,0 +1,47 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: connect-python +spec: + progressDeadlineSeconds: 600 + selector: + matchLabels: + app: connect-python + strategy: + rollingUpdate: + maxSurge: 25% + maxUnavailable: 25% + type: RollingUpdate + template: + metadata: + labels: + app: connect-python + spec: + containers: + - name: connect-python + command: + - "uv" + - "run" + - "hypercorn" + - "main:app" + - "--bind" + - "0.0.0.0" + imagePullPolicy: Always + ports: + - containerPort: 8000 + name: http2 + protocol: TCP + resources: + limits: + cpu: "1" + memory: 512Mi + requests: + cpu: 800m + memory: 400Mi + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + dnsPolicy: ClusterFirst + restartPolicy: Always + schedulerName: default-scheduler + serviceAccountName: connect-python + terminationGracePeriodSeconds: 30 diff --git a/deploy/base/horizontal_pod_autoscaler.yaml b/deploy/base/horizontal_pod_autoscaler.yaml new file mode 100644 index 0000000..398812a --- /dev/null +++ b/deploy/base/horizontal_pod_autoscaler.yaml @@ -0,0 +1,18 @@ +apiVersion: autoscaling/v2 +kind: HorizontalPodAutoscaler +metadata: + name: connect-python +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: connect-python + minReplicas: 1 + maxReplicas: 2 + metrics: + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: 60 diff --git a/deploy/base/kustomization.yaml b/deploy/base/kustomization.yaml new file mode 100644 index 0000000..ee5c8d9 --- /dev/null +++ b/deploy/base/kustomization.yaml @@ -0,0 +1,11 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +namespace: connect-python + +resources: + - deployment.yaml + - horizontal_pod_autoscaler.yaml + - namespace.yaml + - service_account.yaml + - service.yaml diff --git a/deploy/base/namespace.yaml b/deploy/base/namespace.yaml new file mode 100644 index 0000000..246ba29 --- /dev/null +++ b/deploy/base/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: connect-python diff --git a/deploy/base/service.yaml b/deploy/base/service.yaml new file mode 100644 index 0000000..1a5bebd --- /dev/null +++ b/deploy/base/service.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: connect-python +spec: + ports: + - name: http2 + port: 8000 + protocol: TCP + selector: + app: connect-python + type: ClusterIP diff --git a/deploy/base/service_account.yaml b/deploy/base/service_account.yaml new file mode 100644 index 0000000..39563ae --- /dev/null +++ b/deploy/base/service_account.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: connect-python diff --git a/deploy/dev/deployment.yaml b/deploy/dev/deployment.yaml new file mode 100644 index 0000000..08f9ca4 --- /dev/null +++ b/deploy/dev/deployment.yaml @@ -0,0 +1,10 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: connect-python +spec: + template: + spec: + containers: + - name: connect-python + image: asia-northeast1-docker.pkg.dev/gaudiy-containers/connect/connect-python diff --git a/deploy/dev/horizontal_pod_autoscaler.yaml b/deploy/dev/horizontal_pod_autoscaler.yaml new file mode 100644 index 0000000..398812a --- /dev/null +++ b/deploy/dev/horizontal_pod_autoscaler.yaml @@ -0,0 +1,18 @@ +apiVersion: autoscaling/v2 +kind: HorizontalPodAutoscaler +metadata: + name: connect-python +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: connect-python + minReplicas: 1 + maxReplicas: 2 + metrics: + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: 60 diff --git a/deploy/dev/kustomization.yaml b/deploy/dev/kustomization.yaml new file mode 100644 index 0000000..a58ac30 --- /dev/null +++ b/deploy/dev/kustomization.yaml @@ -0,0 +1,12 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: connect-python +resources: +- ../base +patches: +- path: deployment.yaml +- path: horizontal_pod_autoscaler.yaml +- path: service_account.yaml +images: +- name: asia-northeast1-docker.pkg.dev/gaudiy-containers/connect/connect-python + newTag: latest diff --git a/deploy/dev/service_account.yaml b/deploy/dev/service_account.yaml new file mode 100644 index 0000000..39563ae --- /dev/null +++ b/deploy/dev/service_account.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: connect-python