feat: Add Lions Dev GitOps deployment infrastructure

🏗️ 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.
This commit is contained in:
DahoudG
2025-09-22 13:08:07 +00:00
parent be8b8d94ff
commit 2449035977
5 changed files with 89 additions and 0 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File