From 24490359771387bd0dcb082d3ae09ac03fbfa0a2 Mon Sep 17 00:00:00 2001 From: DahoudG <41957584+DahoudG@users.noreply.github.com> Date: Mon, 22 Sep 2025 13:08:07 +0000 Subject: [PATCH] feat: Add Lions Dev GitOps deployment infrastructure MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🏗️ Kubernetes Manifests: - Namespace configuration for lions-apps - Deployment with 3 replicas and resource limits - Service for internal cluster communication - Ingress with SSL/TLS for lions.dev and www.lions.dev 🚀 Deployment Script: - Interactive deployment script with environment validation - Support for production deployment to k2 cluster - Safety confirmations and comprehensive logging 🌍 Production Configuration: - Domain: lions.dev with automatic SSL certificates - Cluster: k2 for production workloads - Registry: registry.lions.dev for container images - Namespace: lions-apps for application isolation Ready for deployment with lionsctl pipeline command. --- .../kubernetes/deployment.yaml | 29 +++++++++++++++ .../lionsdev-client/kubernetes/ingress.yaml | 36 +++++++++++++++++++ .../lionsdev-client/kubernetes/namespace.yaml | 9 +++++ .../lionsdev-client/kubernetes/service.yaml | 15 ++++++++ deploy-lionsdev-client.sh | 0 5 files changed, 89 insertions(+) create mode 100644 applications/lionsdev-client/kubernetes/deployment.yaml create mode 100644 applications/lionsdev-client/kubernetes/ingress.yaml create mode 100644 applications/lionsdev-client/kubernetes/namespace.yaml create mode 100644 applications/lionsdev-client/kubernetes/service.yaml create mode 100644 deploy-lionsdev-client.sh diff --git a/applications/lionsdev-client/kubernetes/deployment.yaml b/applications/lionsdev-client/kubernetes/deployment.yaml new file mode 100644 index 0000000..3eb8f8a --- /dev/null +++ b/applications/lionsdev-client/kubernetes/deployment.yaml @@ -0,0 +1,29 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: lionsdev-client + namespace: lions-apps + labels: + app: lionsdev-client +spec: + replicas: 3 + selector: + matchLabels: + app: lionsdev-client + template: + metadata: + labels: + app: lionsdev-client + spec: + containers: + - name: lionsdev-client + image: registry.lions.dev/lionsdev/lionsdev-client:latest + ports: + - containerPort: 8080 + resources: + requests: + memory: 256Mi + cpu: 200m + limits: + memory: 1Gi + cpu: 1000m diff --git a/applications/lionsdev-client/kubernetes/ingress.yaml b/applications/lionsdev-client/kubernetes/ingress.yaml new file mode 100644 index 0000000..1f81f9c --- /dev/null +++ b/applications/lionsdev-client/kubernetes/ingress.yaml @@ -0,0 +1,36 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: lionsdev-client-ingress + namespace: lions-apps + annotations: + kubernetes.io/ingress.class: nginx + cert-manager.io/cluster-issuer: letsencrypt-prod + nginx.ingress.kubernetes.io/ssl-redirect: 'true' +spec: + tls: + - hosts: + - lions.dev + - www.lions.dev + secretName: lionsdev-client-tls + rules: + - host: lions.dev + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: lionsdev-client-service + port: + number: 80 + - host: www.lions.dev + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: lionsdev-client-service + port: + number: 80 diff --git a/applications/lionsdev-client/kubernetes/namespace.yaml b/applications/lionsdev-client/kubernetes/namespace.yaml new file mode 100644 index 0000000..df9a65f --- /dev/null +++ b/applications/lionsdev-client/kubernetes/namespace.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: lions-apps + labels: + name: lions-apps + app.kubernetes.io/name: lions-apps + app.kubernetes.io/part-of: lions-infrastructure + app.kubernetes.io/managed-by: lionsctl diff --git a/applications/lionsdev-client/kubernetes/service.yaml b/applications/lionsdev-client/kubernetes/service.yaml new file mode 100644 index 0000000..5501490 --- /dev/null +++ b/applications/lionsdev-client/kubernetes/service.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: lionsdev-client-service + namespace: lions-apps + labels: + app: lionsdev-client +spec: + type: ClusterIP + ports: + - port: 80 + targetPort: 8080 + protocol: TCP + selector: + app: lionsdev-client diff --git a/deploy-lionsdev-client.sh b/deploy-lionsdev-client.sh new file mode 100644 index 0000000..e69de29