diff --git a/dmz/metallb-system/Chart.yaml b/dmz/metallb-system/Chart.yaml new file mode 100644 index 0000000..4fc684f --- /dev/null +++ b/dmz/metallb-system/Chart.yaml @@ -0,0 +1,12 @@ +apiVersion: v2 +name: metallb-system +description: A Helm chart for Kubernetes +type: application + +version: 0.1.0 +appVersion: "1.16.0" + +dependencies: +- name: metallb + repository: https://metallb.github.io/metallb + version: 0.14.9 diff --git a/dmz/metallb-system/templates/config.yaml b/dmz/metallb-system/templates/config.yaml new file mode 100644 index 0000000..f08a885 --- /dev/null +++ b/dmz/metallb-system/templates/config.yaml @@ -0,0 +1,17 @@ +apiVersion: metallb.io/v1beta1 +kind: IPAddressPool +metadata: + name: cheap +spec: + addresses: + - 192.168.98.130-192.168.98.140 +--- +apiVersion: metallb.io/v1beta1 +kind: L2Advertisement +metadata: + name: pool + namespace: metallb-system +spec: + ipAddressPools: + - cheap + diff --git a/dmz/metallb-system/values.yaml b/dmz/metallb-system/values.yaml new file mode 100644 index 0000000..e69de29 diff --git a/dmz/traefik/Chart.yaml b/dmz/traefik/Chart.yaml new file mode 100644 index 0000000..30f96ac --- /dev/null +++ b/dmz/traefik/Chart.yaml @@ -0,0 +1,11 @@ +apiVersion: v2 +name: traefik +description: A Helm chart for Kubernetes +type: application +version: 0.0.1 +appVersion: 0.0.1 + +dependencies: +- name: traefik + repository: https://traefik.github.io/charts + version: 34.0.0 diff --git a/dmz/traefik/values.yaml b/dmz/traefik/values.yaml new file mode 100644 index 0000000..3d2576e --- /dev/null +++ b/dmz/traefik/values.yaml @@ -0,0 +1,47 @@ +traefik: + image: + registry: registry.durp.info + repository: traefik + pullPolicy: Always + + deployment: + replicas: 3 + revisionHistoryLimit: 1 + + ingressRoute: + dashboard: + enabled: true + + additionalArguments: + - "--serversTransport.insecureSkipVerify=true" + - "--log.level=DEBUG" + - --experimental.plugins.jwt.moduleName=github.com/traefik-plugins/traefik-jwt-plugin + - --experimental.plugins.jwt.version=v0.7.0 + + autoscaling: + enabled: true + minReplicas: 3 + maxReplicas: 10 + metrics: + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: 80 + behavior: + scaleDown: + stabilizationWindowSeconds: 300 + policies: + - type: Pods + value: 1 + periodSeconds: 60 + + + # -- [Resources](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) for `traefik` container. + resources: + requests: + cpu: "100m" + memory: "512Mi" + limits: + memory: "512Mi" diff --git a/infra/argocd/templates/metallb-system.yaml b/infra/argocd/templates/metallb-system.yaml index 4bf695a..503fe57 100644 --- a/infra/argocd/templates/metallb-system.yaml +++ b/infra/argocd/templates/metallb-system.yaml @@ -19,3 +19,26 @@ spec: syncOptions: - CreateNamespace=true +--- + +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: metallb-system-dmz + namespace: argocd +spec: + project: default + source: + repoURL: https://gitlab.com/developerdurp/homelab.git + targetRevision: main + path: dmz/metallb-system + destination: + namespace: metallb-system + name: in-cluster + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true + diff --git a/infra/argocd/templates/traefik.yaml b/infra/argocd/templates/traefik.yaml index cfcb141..9122420 100644 --- a/infra/argocd/templates/traefik.yaml +++ b/infra/argocd/templates/traefik.yaml @@ -31,7 +31,7 @@ spec: source: repoURL: https://gitlab.com/developerdurp/homelab.git targetRevision: main - path: infra/traefik + path: dmz/traefik destination: namespace: traefik name: dmz