From 2e718c06f636f7e5c10a6dab7c38b81189de46f8 Mon Sep 17 00:00:00 2001 From: Vargha Csongor Date: Sun, 17 Mar 2024 16:59:32 +0100 Subject: [PATCH] backend deployment --- deployment/backend/certificate.yaml | 29 +++++++++++ deployment/backend/deployment.yaml | 50 +++++++++++++++++++ .../backend/horizontalPodAutoScaler.yaml | 26 ++++++++++ deployment/backend/ingressRoute.yaml | 19 +++++++ deployment/backend/service.yaml | 20 ++++++++ 5 files changed, 144 insertions(+) create mode 100644 deployment/backend/certificate.yaml create mode 100644 deployment/backend/deployment.yaml create mode 100644 deployment/backend/horizontalPodAutoScaler.yaml create mode 100644 deployment/backend/ingressRoute.yaml create mode 100644 deployment/backend/service.yaml diff --git a/deployment/backend/certificate.yaml b/deployment/backend/certificate.yaml new file mode 100644 index 0000000..8d288d2 --- /dev/null +++ b/deployment/backend/certificate.yaml @@ -0,0 +1,29 @@ +apiVersion: cert-manager.io/v1 +kind: Certificate +metadata: + name: gh-backend-certificate + annotations: + argocd.argoproj.io/hook: PreSync +spec: + isCA: false + duration: 2160h # 90d + renewBefore: 360h # 15d + dnsNames: + - gh-backend.generations-heritage.svc.cluster.local + - gh-backend + - localhost + ipAddresses: + - 127.0.0.1 + subject: + organizations: + - GenerationsHeritage + secretName: gh-backend-tls + privateKey: + algorithm: RSA + encoding: PKCS1 + size: 2048 + issuerRef: + name: default-cluster-ca-issuer + kind: ClusterIssuer + group: cert-manager.io + \ No newline at end of file diff --git a/deployment/backend/deployment.yaml b/deployment/backend/deployment.yaml new file mode 100644 index 0000000..e706e27 --- /dev/null +++ b/deployment/backend/deployment.yaml @@ -0,0 +1,50 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/instance: gh-backend + app.kubernetes.io/name: gh-backend + annotations: + argocd.argoproj.io/sync-wave: "1" + argocd.argoproj.io/hook: Synce + name: gh-backend + namespace: generations-heritage +spec: + podManagementPolicy: OrderedReady + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/instance: gh-backend + app.kubernetes.io/name: gh-backend + serviceName: gh-backend + template: + metadata: + labels: + app.kubernetes.io/instance: gh-backend + app.kubernetes.io/name: gh-backend + spec: + containers: + - image: vcscsvcscs/gheritage-backend-service:latest + imagePullPolicy: Always + name: gh-backend + ports: + - containerPort: 443 + name: gin + securityContext: + runAsUser: 0 + resources: + limits: + cpu: 500m + memory: 500Mi + requests: + cpu: 100m + memory: 100Mi + volumeMounts: + - name: gh-backend-certs + mountPath: /etc/gh-backend/ssl + volumes: + - name: gh-backend-certs + secret: + secretName: gh-backend-tls + updateStrategy: + type: RollingUpdate \ No newline at end of file diff --git a/deployment/backend/horizontalPodAutoScaler.yaml b/deployment/backend/horizontalPodAutoScaler.yaml new file mode 100644 index 0000000..ef131b6 --- /dev/null +++ b/deployment/backend/horizontalPodAutoScaler.yaml @@ -0,0 +1,26 @@ +apiVersion: autoscaling/v2 +kind: HorizontalPodAutoscaler +metadata: + name: gh-backend + annotations: + argocd.argoproj.io/hook: PostSync +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: gh-backend + minReplicas: 1 + maxReplicas: 5 + metrics: + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: 50 + - type: Resource + resource: + name: memory + target: + type: Utilization + averageUtilization: 50 diff --git a/deployment/backend/ingressRoute.yaml b/deployment/backend/ingressRoute.yaml new file mode 100644 index 0000000..90803f7 --- /dev/null +++ b/deployment/backend/ingressRoute.yaml @@ -0,0 +1,19 @@ +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: IngressRoute +metadata: + name: gh-backend + annotations: + argocd.argoproj.io/hook: PostSync +spec: + entryPoints: + - websecure + routes: + - kind: Rule + match: Host(`heritagebackend.varghacsongor.hu`) + services: + - name: gh-backend + port: 443 + passHostHeader: true + scheme: https + tls: {} \ No newline at end of file diff --git a/deployment/backend/service.yaml b/deployment/backend/service.yaml new file mode 100644 index 0000000..10b9abb --- /dev/null +++ b/deployment/backend/service.yaml @@ -0,0 +1,20 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/instance: gh-backend + app.kubernetes.io/name: gh-backend + name: gh-backend + annotations: + argocd.argoproj.io/sync-wave: "2" + argocd.argoproj.io/hook: Synce +spec: + ports: + - name: gin + port: 443 + protocol: TCP + targetPort: 443 + selector: + app.kubernetes.io/instance: gh-backend + app.kubernetes.io/name: gh-backend + type: ClusterIP \ No newline at end of file