apiVersion: v1
kind: ConfigMap
metadata:
name: html-content
namespace: default
data:
index.html: |
🚀 Fleet GitOps Demo
Deployed automatically from Gitea!
Kubernetes v1.28.15
Fleet GitOps
Rancher
Gitea
📦 Deployed Resources
- 2 Master Nodes (HA Control Plane)
- 2 Worker Nodes
- Total: 16 vCPU, 31 GiB RAM
- NGINX Ingress Controller
- Cert-Manager (Self-signed SSL)
- Fleet GitOps Engine
🔄 GitOps Workflow
- Push code to Gitea repository
- Fleet watches for changes (15s interval)
- Automatic deployment to Kubernetes
- No manual kubectl commands needed!
🌐 Deployed Applications
- This HTML Page (you're here!)
- Pastebin - paste.connectvm.cloud
- Rancher UI - rancher.connectvm.cloud
- Hello App - hello.connectvm.cloud
💻 Repository
git clone https://gitea.rootxwire.com/admin/fleet-demo.git
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: html-page
namespace: default
spec:
replicas: 2
selector:
matchLabels:
app: html-page
template:
metadata:
labels:
app: html-page
spec:
containers:
- name: nginx
image: nginx:alpine
ports:
- containerPort: 80
volumeMounts:
- name: html-content
mountPath: /usr/share/nginx/html
resources:
requests:
memory: "64Mi"
cpu: "50m"
limits:
memory: "128Mi"
cpu: "100m"
volumes:
- name: html-content
configMap:
name: html-content
---
apiVersion: v1
kind: Service
metadata:
name: html-page-service
namespace: default
spec:
selector:
app: html-page
ports:
- port: 80
targetPort: 80
type: ClusterIP
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: html-page-ingress
namespace: default
annotations:
cert-manager.io/cluster-issuer: "selfsigned-issuer"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:
ingressClassName: nginx
tls:
- hosts:
- fleet.connectvm.cloud
secretName: html-page-tls
rules:
- host: fleet.connectvm.cloud
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: html-page-service
port:
number: 80