diff options
| -rw-r--r-- | .gitignore | 2 | ||||
| -rw-r--r-- | README.md | 7 | ||||
| -rw-r--r-- | apps/heimdall/deployment.yaml | 37 | ||||
| -rw-r--r-- | apps/heimdall/ingress.yaml | 19 | ||||
| -rw-r--r-- | apps/heimdall/notes.txt | 2 | ||||
| -rw-r--r-- | apps/heimdall/pvc.yaml | 12 | ||||
| -rw-r--r-- | apps/heimdall/service.yaml | 13 | ||||
| -rw-r--r-- | roadmap.md | 35 | ||||
| -rw-r--r-- | setup_script.sh | 9 |
9 files changed, 136 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bd6fd88 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +links.txt +roadmap.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..8fd14ee --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +## Prerequisites +docker +kubectl +k3d + + +## TODO diff --git a/apps/heimdall/deployment.yaml b/apps/heimdall/deployment.yaml new file mode 100644 index 0000000..38b4122 --- /dev/null +++ b/apps/heimdall/deployment.yaml @@ -0,0 +1,37 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: heimdall + namespace: heimdall +spec: + replicas: 1 + selector: + matchLabels: + app: heimdall + template: + metadata: + labels: + app: heimdall + spec: + containers: + - name: heimdall + image: lscr.io/linuxserver/heimdall:latest + ports: + - containerPort: 80 + volumeMounts: + - name: heimdall-config + mountPath: /config + env: + - name: PUID + value: "1000" + - name: PGID + value: "1000" + #volumes: + #- name: heimdall-config + # hostPath: + # path: ./heimdall-config + # type: DirectoryOrCreate + volumes: + - name: heimdall-config + persistentVolumeClaim: + claimName: heimdall-pvc diff --git a/apps/heimdall/ingress.yaml b/apps/heimdall/ingress.yaml new file mode 100644 index 0000000..407afd5 --- /dev/null +++ b/apps/heimdall/ingress.yaml @@ -0,0 +1,19 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: heimdall-ingress + namespace: heimdall +spec: + ingressClassName: nginx + rules: + - http: + paths: + - path: / + pathType: Prefix + + backend: + service: + name: heimdall-service + + port: + number: 80 diff --git a/apps/heimdall/notes.txt b/apps/heimdall/notes.txt new file mode 100644 index 0000000..76c832a --- /dev/null +++ b/apps/heimdall/notes.txt @@ -0,0 +1,2 @@ +Basic docker command: +sudo docker run --name=heimdall -d -v ./config:/config -e PGID=1000 -e PUID=1000 -p 8090:80 -p 8443:443 lscr.io/linuxserver/heimdall:latest diff --git a/apps/heimdall/pvc.yaml b/apps/heimdall/pvc.yaml new file mode 100644 index 0000000..4bb3b60 --- /dev/null +++ b/apps/heimdall/pvc.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: heimdall-pvc + namespace: heimdall +spec: + accessModes: + - ReadWriteOnce + storageClassName: local-path # k3d's built-in provisioner + resources: + requests: + storage: 1Gi diff --git a/apps/heimdall/service.yaml b/apps/heimdall/service.yaml new file mode 100644 index 0000000..f3ad504 --- /dev/null +++ b/apps/heimdall/service.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + name: heimdall-service + namespace: heimdall +spec: + selector: + app: heimdall + ports: + - protocol: TCP + port: 80 + targetPort: 80 + type: ClusterIP diff --git a/roadmap.md b/roadmap.md new file mode 100644 index 0000000..ee7e667 --- /dev/null +++ b/roadmap.md @@ -0,0 +1,35 @@ +Laptop (Fedora) + |_ Docker + |_ k3d cluster + |_ ingress-nginx + sample app + ArgoCD + Prometheus/Grafana + CI/CD + + +homelab-platform/ +├── README.md +├── docs/ +│ ├── architecture.md +│ ├── networking.md +│ └── troubleshooting.md +├── bootstrap/ +│ ├── create-cluster.sh +│ └── install-argocd.sh +├── clusters/ +│ └── local-dev/ +│ ├── apps.yaml +│ └── infra.yaml +├── apps/ +│ ├── sample-app/ +│ └── whoami/ +├── infrastructure/ +│ ├── ingress-nginx/ +│ ├── prometheus/ +│ ├── grafana/ +│ └── argocd/ +├── helm-values/ +├── scripts/ +├── .github/workflows/ +└── screenshots/ diff --git a/setup_script.sh b/setup_script.sh new file mode 100644 index 0000000..222037d --- /dev/null +++ b/setup_script.sh @@ -0,0 +1,9 @@ +## Create cluster +k3d cluster create mycluster --agents 2 -p "8080:80@loadbalancer" --k3s-arg "--disable=traefik@server:*" + +## Install ingress +kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/cloud/deploy.yaml + + +## Create namespaces +kubectl creat ns heimdall |
