Compare commits
	
		
			16 Commits
		
	
	
		
			a95e94dc8f
			...
			48dc85476e
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 48dc85476e | |||
| 1c3fdde1dd | |||
| 4582b19aaf | |||
| fe46e81fd9 | |||
| 3064d4ec7a | |||
| 3aa05f3e30 | |||
| a2cff0bf55 | |||
| b54b6b0f60 | |||
| e98d7330f1 | |||
| 08ed1eafa6 | |||
| 71d881830f | |||
| 18790396bd | |||
| 82fbc99fd0 | |||
| 2e88ded94d | |||
| 6251c63353 | |||
| 1bf165bb4a | 
							
								
								
									
										11
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								README.md
									
									
									
									
									
								
							@@ -1,7 +1,7 @@
 | 
				
			|||||||
# Kluster setup and IaaC using argoCD
 | 
					# Kluster setup and IaaC using argoCD
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Initial setup
 | 
					### Description
 | 
				
			||||||
#### Requirements:
 | 
					#### Requirements:
 | 
				
			||||||
- A running k3s instance
 | 
					- A running k3s instance
 | 
				
			||||||
- `sealedsecrets` deployed
 | 
					- `sealedsecrets` deployed
 | 
				
			||||||
@@ -27,20 +27,21 @@ The app-of-apps will bootstrap a fully featured cluster with the following compo
 | 
				
			|||||||
    - immich
 | 
					    - immich
 | 
				
			||||||
    - ...
 | 
					    - ...
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#### Recap
 | 
					## Setup instructions
 | 
				
			||||||
- install sealedsecrets see [README](./infrastructure/sealedsecrets/README.md)
 | 
					1. install sealedsecrets see [README](./infrastructure/sealedsecrets/README.md)
 | 
				
			||||||
    ```bash
 | 
					    ```bash
 | 
				
			||||||
    kubectl apply -k infrastructure/sealedsecrets
 | 
					    kubectl apply -k infrastructure/sealedsecrets
 | 
				
			||||||
    kubectl apply -f infrastructure/sealedsecrets/main.key
 | 
					    kubectl apply -f infrastructure/sealedsecrets/main.key
 | 
				
			||||||
    kubectl delete pod -n kube-system -l name=sealed-secrets-controller
 | 
					    kubectl delete pod -n kube-system -l name=sealed-secrets-controller
 | 
				
			||||||
    ```
 | 
					    ```
 | 
				
			||||||
- install argocd
 | 
					1. install argocd and the app-of-apps bundled with it
 | 
				
			||||||
    ```bash
 | 
					    ```bash
 | 
				
			||||||
    kubectl apply -k infrastructure/argocd
 | 
					    kubectl apply -k infrastructure/argocd
 | 
				
			||||||
    ```
 | 
					    ```
 | 
				
			||||||
- wait...
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					> NOTE: The argocd kustomization already mentions some CRDs available only after the full bootstrapping (traefik). You might have to apply the last step twice
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Adding an application
 | 
					### Adding an application
 | 
				
			||||||
todo
 | 
					todo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,7 +10,7 @@ resources:
 | 
				
			|||||||
images:
 | 
					images:
 | 
				
			||||||
  - name: adguard/adguardhome
 | 
					  - name: adguard/adguardhome
 | 
				
			||||||
    newName: adguard/adguardhome
 | 
					    newName: adguard/adguardhome
 | 
				
			||||||
    newTag: v0.107.63
 | 
					    newTag: v0.107.65
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace: adguard
 | 
					namespace: adguard
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,5 +17,5 @@ helmCharts:
 | 
				
			|||||||
  - releaseName: grafana
 | 
					  - releaseName: grafana
 | 
				
			||||||
    name: grafana
 | 
					    name: grafana
 | 
				
			||||||
    repo: https://grafana.github.io/helm-charts
 | 
					    repo: https://grafana.github.io/helm-charts
 | 
				
			||||||
    version: 9.2.10
 | 
					    version: 9.4.4
 | 
				
			||||||
    valuesFile: grafana.values.yaml
 | 
					    valuesFile: grafana.values.yaml
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,9 +22,9 @@ helmCharts:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
images:
 | 
					images:
 | 
				
			||||||
  - name: ghcr.io/immich-app/immich-machine-learning
 | 
					  - name: ghcr.io/immich-app/immich-machine-learning
 | 
				
			||||||
    newTag: v1.135.3
 | 
					    newTag: v1.136.0
 | 
				
			||||||
  - name: ghcr.io/immich-app/immich-server
 | 
					  - name: ghcr.io/immich-app/immich-server
 | 
				
			||||||
    newTag: v1.135.3
 | 
					    newTag: v1.136.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
patches:
 | 
					patches:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -42,7 +42,7 @@ spec:
 | 
				
			|||||||
              name: curseforge-api
 | 
					              name: curseforge-api
 | 
				
			||||||
              key: key
 | 
					              key: key
 | 
				
			||||||
        - name: CF_PAGE_URL
 | 
					        - name: CF_PAGE_URL
 | 
				
			||||||
          value: "https://www.curseforge.com/minecraft/modpacks/vault-hunters-1-18-2/files/6644480"
 | 
					          value: "https://www.curseforge.com/minecraft/modpacks/vault-hunters-1-18-2/files/6807187"
 | 
				
			||||||
        - name: VERSION
 | 
					        - name: VERSION
 | 
				
			||||||
          value: "1.18.2"
 | 
					          value: "1.18.2"
 | 
				
			||||||
        - name: INIT_MEMORY
 | 
					        - name: INIT_MEMORY
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,7 +21,7 @@ helmCharts:
 | 
				
			|||||||
  - name: redis
 | 
					  - name: redis
 | 
				
			||||||
    releaseName: redis
 | 
					    releaseName: redis
 | 
				
			||||||
    repo: https://charts.bitnami.com/bitnami
 | 
					    repo: https://charts.bitnami.com/bitnami
 | 
				
			||||||
    version: 21.2.13
 | 
					    version: 21.2.14
 | 
				
			||||||
    valuesInline:
 | 
					    valuesInline:
 | 
				
			||||||
      auth:
 | 
					      auth:
 | 
				
			||||||
        enabled: false
 | 
					        enabled: false
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,4 +14,4 @@ namespace: stump
 | 
				
			|||||||
images:
 | 
					images:
 | 
				
			||||||
  - name: stump
 | 
					  - name: stump
 | 
				
			||||||
    newName: aaronleopold/stump
 | 
					    newName: aaronleopold/stump
 | 
				
			||||||
    newTag: "0.0.10"
 | 
					    newTag: "0.0.11"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,7 @@ kind: Kustomization
 | 
				
			|||||||
namespace: argocd
 | 
					namespace: argocd
 | 
				
			||||||
resources:
 | 
					resources:
 | 
				
			||||||
  - namespace.yaml
 | 
					  - namespace.yaml
 | 
				
			||||||
  - https://github.com/argoproj/argo-cd//manifests/cluster-install?timeout=120&ref=v3.0.11
 | 
					  - https://github.com/argoproj/argo-cd//manifests/cluster-install?timeout=120&ref=v3.0.12
 | 
				
			||||||
  - ingress.yaml
 | 
					  - ingress.yaml
 | 
				
			||||||
  - argo-apps.application.yaml
 | 
					  - argo-apps.application.yaml
 | 
				
			||||||
  - bootstrap-repo.sealedsecret.yaml
 | 
					  - bootstrap-repo.sealedsecret.yaml
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,6 +27,6 @@ images:
 | 
				
			|||||||
helmCharts:
 | 
					helmCharts:
 | 
				
			||||||
  - name: authelia
 | 
					  - name: authelia
 | 
				
			||||||
    releaseName: authelia
 | 
					    releaseName: authelia
 | 
				
			||||||
    version: 0.10.41
 | 
					    version: 0.10.42
 | 
				
			||||||
    repo: https://charts.authelia.com
 | 
					    repo: https://charts.authelia.com
 | 
				
			||||||
    valuesFile: authelia.values.yaml
 | 
					    valuesFile: authelia.values.yaml
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -23,6 +23,6 @@ helmCharts:
 | 
				
			|||||||
  - name: gitea
 | 
					  - name: gitea
 | 
				
			||||||
    namespace: gitea # needs to be set explicitly for svc to be referenced correctly
 | 
					    namespace: gitea # needs to be set explicitly for svc to be referenced correctly
 | 
				
			||||||
    releaseName: gitea
 | 
					    releaseName: gitea
 | 
				
			||||||
    version: 12.0.0
 | 
					    version: 12.1.2
 | 
				
			||||||
    valuesFile: gitea.values.yaml
 | 
					    valuesFile: gitea.values.yaml
 | 
				
			||||||
    repo: https://dl.gitea.io/charts/
 | 
					    repo: https://dl.gitea.io/charts/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,7 +2,6 @@ apiVersion: metallb.io/v1beta1
 | 
				
			|||||||
kind: IPAddressPool
 | 
					kind: IPAddressPool
 | 
				
			||||||
metadata:
 | 
					metadata:
 | 
				
			||||||
  name: default
 | 
					  name: default
 | 
				
			||||||
  namespace: metallb-system
 | 
					 | 
				
			||||||
spec:
 | 
					spec:
 | 
				
			||||||
  addresses:
 | 
					  addresses:
 | 
				
			||||||
    - 192.168.3.0/24
 | 
					    - 192.168.3.0/24
 | 
				
			||||||
@@ -10,5 +9,8 @@ spec:
 | 
				
			|||||||
apiVersion: metallb.io/v1beta1
 | 
					apiVersion: metallb.io/v1beta1
 | 
				
			||||||
kind: L2Advertisement
 | 
					kind: L2Advertisement
 | 
				
			||||||
metadata:
 | 
					metadata:
 | 
				
			||||||
  name: empty
 | 
					  name: default
 | 
				
			||||||
  namespace: metallb-system
 | 
					# selector is left empty on purpose to match all IPAddressPools
 | 
				
			||||||
 | 
					# spec:
 | 
				
			||||||
 | 
					#   ipAddressPools:
 | 
				
			||||||
 | 
					#   - default
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,15 +1,12 @@
 | 
				
			|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
 | 
					apiVersion: kustomize.config.k8s.io/v1beta1
 | 
				
			||||||
kind: Kustomization
 | 
					kind: Kustomization
 | 
				
			||||||
resources: 
 | 
					 | 
				
			||||||
  - namespace.yaml
 | 
					 | 
				
			||||||
  - ipaddresspool.yaml
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace: metallb-system
 | 
					namespace: metallb-system
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					resources:
 | 
				
			||||||
 | 
					  # - namespace.yaml
 | 
				
			||||||
 | 
					  # namespace is already included in the remote kustomization
 | 
				
			||||||
 | 
					  # - github.com/metallb/metallb/config/native?ref=v0.15.2
 | 
				
			||||||
 | 
					  - github.com/metallb/metallb/config/frr?ref=v0.15.2
 | 
				
			||||||
 | 
					  - ipaddresspool.yaml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
helmCharts:
 | 
					 | 
				
			||||||
  - name: metallb
 | 
					 | 
				
			||||||
    repo: https://metallb.github.io/metallb
 | 
					 | 
				
			||||||
    version: 0.15.2
 | 
					 | 
				
			||||||
    releaseName: metallb
 | 
					 | 
				
			||||||
    valuesFile: values.yaml
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
apiVersion: v1
 | 
					apiVersion: v1
 | 
				
			||||||
kind: Namespace
 | 
					kind: Namespace
 | 
				
			||||||
metadata:
 | 
					metadata:
 | 
				
			||||||
  name: placeholder
 | 
					  name: metallb-system
 | 
				
			||||||
  labels:
 | 
					  # labels:
 | 
				
			||||||
    pod-security.kubernetes.io/enforce: privileged 
 | 
					    # pod-security.kubernetes.io/enforce: privileged
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -71,7 +71,7 @@ data:
 | 
				
			|||||||
        address = ":9100"
 | 
					        address = ":9100"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      [entryPoints.traefik]
 | 
					      [entryPoints.traefik]
 | 
				
			||||||
        address = ":9000"
 | 
					        address = ":8080"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      [entryPoints.dnsovertls]
 | 
					      [entryPoints.dnsovertls]
 | 
				
			||||||
        address = ":8853"
 | 
					        address = ":8853"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -23,8 +23,7 @@ ingressClass:
 | 
				
			|||||||
  # true is not unit-testable yet, pending https://github.com/rancher/helm-unittest/pull/12
 | 
					  # true is not unit-testable yet, pending https://github.com/rancher/helm-unittest/pull/12
 | 
				
			||||||
  enabled: true
 | 
					  enabled: true
 | 
				
			||||||
  isDefaultClass: true
 | 
					  isDefaultClass: true
 | 
				
			||||||
  # Use to force a networking.k8s.io API Version for certain CI/CD applications. E.g. "v1beta1"
 | 
					
 | 
				
			||||||
  fallbackApiVersion: ""
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Activate Pilot integration
 | 
					# Activate Pilot integration
 | 
				
			||||||
pilot:
 | 
					pilot:
 | 
				
			||||||
@@ -67,7 +66,8 @@ providers:
 | 
				
			|||||||
  kubernetesIngress:
 | 
					  kubernetesIngress:
 | 
				
			||||||
    enabled: true
 | 
					    enabled: true
 | 
				
			||||||
    allowExternalNameServices: true
 | 
					    allowExternalNameServices: true
 | 
				
			||||||
    ingressClass: traefik
 | 
					    # Ingresses missing the annotation, having an empty value, or the value traefik are processed by default.
 | 
				
			||||||
 | 
					    # ingressClass: traefik
 | 
				
			||||||
    # labelSelector: environment=production,method=traefik
 | 
					    # labelSelector: environment=production,method=traefik
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user