From 1faf9aecf9c4d923b6fec594b1c411158759a79c Mon Sep 17 00:00:00 2001 From: Ultradesu Date: Wed, 29 Apr 2026 17:40:54 +0300 Subject: [PATCH] Added petting web site --- k8s/apps/web-petting/app.yaml | 21 ++++++++++ k8s/apps/web-petting/deployment.yaml | 53 +++++++++++++++++++++++++ k8s/apps/web-petting/ingress.yaml | 27 +++++++++++++ k8s/apps/web-petting/kustomization.yaml | 10 +++++ k8s/apps/web-petting/service.yaml | 15 +++++++ k8s/apps/web-petting/storage.yaml | 12 ++++++ 6 files changed, 138 insertions(+) create mode 100644 k8s/apps/web-petting/app.yaml create mode 100644 k8s/apps/web-petting/deployment.yaml create mode 100644 k8s/apps/web-petting/ingress.yaml create mode 100644 k8s/apps/web-petting/kustomization.yaml create mode 100644 k8s/apps/web-petting/service.yaml create mode 100644 k8s/apps/web-petting/storage.yaml diff --git a/k8s/apps/web-petting/app.yaml b/k8s/apps/web-petting/app.yaml new file mode 100644 index 0000000..ce44815 --- /dev/null +++ b/k8s/apps/web-petting/app.yaml @@ -0,0 +1,21 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: web-petting + namespace: argocd +spec: + project: apps + destination: + namespace: web-petting + server: https://kubernetes.default.svc + source: + repoURL: ssh://git@gt.hexor.cy:30022/ab/homelab.git + targetRevision: HEAD + path: k8s/apps/web-petting + syncPolicy: + automated: + selfHeal: true + prune: true + syncOptions: + - CreateNamespace=true + diff --git a/k8s/apps/web-petting/deployment.yaml b/k8s/apps/web-petting/deployment.yaml new file mode 100644 index 0000000..dd51e5f --- /dev/null +++ b/k8s/apps/web-petting/deployment.yaml @@ -0,0 +1,53 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: web-petting + labels: + app: web-petting +spec: + replicas: 1 + selector: + matchLabels: + app: web-petting + template: + metadata: + labels: + app: web-petting + spec: + nodeSelector: + kubernetes.io/os: linux + volumes: + - name: data + persistentVolumeClaim: + claimName: web-petting-data + containers: + - name: web-petting + image: ultradesu/web-petting:v0.1.0 + imagePullPolicy: Always + args: + - "-l" + - "0.0.0.0:3000" + ports: + - containerPort: 3000 + name: http + volumeMounts: + - name: data + mountPath: /data + env: + - name: RUST_LOG + value: "info" + resources: + requests: + memory: "64Mi" + cpu: "50m" + limits: + memory: "128Mi" + cpu: "150m" + securityContext: + runAsNonRoot: true + runAsUser: 1000 + allowPrivilegeEscalation: false + readOnlyRootFilesystem: true + capabilities: + drop: + - ALL diff --git a/k8s/apps/web-petting/ingress.yaml b/k8s/apps/web-petting/ingress.yaml new file mode 100644 index 0000000..2989c0f --- /dev/null +++ b/k8s/apps/web-petting/ingress.yaml @@ -0,0 +1,27 @@ +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: web-petting-tls-ingress + annotations: + ingressClassName: traefik + cert-manager.io/cluster-issuer: letsencrypt + traefik.ingress.kubernetes.io/router.middlewares: kube-system-https-redirect@kubernetescrd + acme.cert-manager.io/http01-edit-in-place: "true" +spec: + rules: + - host: pet.hexor.cy + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: web-petting + port: + number: 80 + tls: + - secretName: web-petting-tls + hosts: + - pet.hexor.cy + diff --git a/k8s/apps/web-petting/kustomization.yaml b/k8s/apps/web-petting/kustomization.yaml new file mode 100644 index 0000000..5dca463 --- /dev/null +++ b/k8s/apps/web-petting/kustomization.yaml @@ -0,0 +1,10 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: + - app.yaml + - deployment.yaml + - service.yaml + - ingress.yaml + - storage.yaml + diff --git a/k8s/apps/web-petting/service.yaml b/k8s/apps/web-petting/service.yaml new file mode 100644 index 0000000..8797246 --- /dev/null +++ b/k8s/apps/web-petting/service.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: web-petting + labels: + app: web-petting +spec: + type: ClusterIP + selector: + app: web-petting + ports: + - port: 80 + targetPort: 3000 + protocol: TCP + name: http diff --git a/k8s/apps/web-petting/storage.yaml b/k8s/apps/web-petting/storage.yaml new file mode 100644 index 0000000..987d34a --- /dev/null +++ b/k8s/apps/web-petting/storage.yaml @@ -0,0 +1,12 @@ +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: web-petting-data +spec: + accessModes: + - ReadWriteOnce + storageClassName: longhorn + resources: + requests: + storage: 10Gi