diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..485dee6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.idea diff --git a/argocd/templates/InternalProxy.yaml b/argocd/templates/InternalProxy.yaml index 1769a19..a99813e 100644 --- a/argocd/templates/InternalProxy.yaml +++ b/argocd/templates/InternalProxy.yaml @@ -7,7 +7,7 @@ spec: project: default source: repoURL: https://gitlab.com/developerdurp/homelab.git - targetRevision: main + targetRevision: dev path: internalproxy directory: recurse: true diff --git a/argocd/templates/argocd.yaml b/argocd/templates/argocd.yaml index d8f0fd3..5df8c09 100644 --- a/argocd/templates/argocd.yaml +++ b/argocd/templates/argocd.yaml @@ -7,7 +7,7 @@ spec: project: default source: repoURL: https://gitlab.com/developerdurp/homelab.git - targetRevision: main + targetRevision: dev path: argocd destination: namespace: argocd diff --git a/argocd/templates/authentik.yaml b/argocd/templates/authentik.yaml index 735fa1a..ff4a7a1 100644 --- a/argocd/templates/authentik.yaml +++ b/argocd/templates/authentik.yaml @@ -7,7 +7,7 @@ spec: project: default source: repoURL: https://gitlab.com/developerdurp/homelab.git - targetRevision: main + targetRevision: dev path: authentik destination: namespace: authentik diff --git a/argocd/templates/bitwarden.yaml b/argocd/templates/bitwarden.yaml index 6aad52f..6936d6b 100644 --- a/argocd/templates/bitwarden.yaml +++ b/argocd/templates/bitwarden.yaml @@ -7,7 +7,7 @@ spec: project: default source: repoURL: https://gitlab.com/developerdurp/homelab.git - targetRevision: main + targetRevision: dev path: bitwarden directory: recurse: true diff --git a/argocd/templates/cert-manager.yaml b/argocd/templates/cert-manager.yaml index 1eb8fe2..2dfa2d4 100644 --- a/argocd/templates/cert-manager.yaml +++ b/argocd/templates/cert-manager.yaml @@ -7,7 +7,7 @@ spec: project: default source: repoURL: https://gitlab.com/developerdurp/homelab.git - targetRevision: main + targetRevision: dev path: cert-manager destination: namespace: cert-manager diff --git a/argocd/templates/crossplane.yml b/argocd/templates/crossplane.yml index e079c78..299ebc9 100644 --- a/argocd/templates/crossplane.yml +++ b/argocd/templates/crossplane.yml @@ -7,7 +7,7 @@ spec: project: default source: repoURL: https://gitlab.com/developerdurp/homelab.git - targetRevision: main + targetRevision: dev path: crossplane destination: namespace: crossplane diff --git a/argocd/templates/durpapi.yaml b/argocd/templates/durpapi.yaml index 53c2db6..c468265 100644 --- a/argocd/templates/durpapi.yaml +++ b/argocd/templates/durpapi.yaml @@ -7,7 +7,7 @@ spec: project: default source: repoURL: https://gitlab.com/developerdurp/homelab.git - targetRevision: main + targetRevision: dev path: durpapi destination: namespace: durpapi diff --git a/argocd/templates/durpot.yaml b/argocd/templates/durpot.yaml index 1bfcd37..6cf517e 100644 --- a/argocd/templates/durpot.yaml +++ b/argocd/templates/durpot.yaml @@ -7,7 +7,7 @@ spec: project: default source: repoURL: https://gitlab.com/developerdurp/homelab.git - targetRevision: main + targetRevision: dev path: durpot destination: namespace: durpot diff --git a/argocd/templates/external-dns.yaml b/argocd/templates/external-dns.yaml index ba05f2c..e097b89 100644 --- a/argocd/templates/external-dns.yaml +++ b/argocd/templates/external-dns.yaml @@ -7,7 +7,7 @@ spec: project: default source: repoURL: https://gitlab.com/developerdurp/homelab.git - targetRevision: main + targetRevision: dev path: external-dns destination: namespace: external-dns diff --git a/argocd/templates/external-secrets.yaml b/argocd/templates/external-secrets.yaml index cf8a595..0c0ddab 100644 --- a/argocd/templates/external-secrets.yaml +++ b/argocd/templates/external-secrets.yaml @@ -7,7 +7,7 @@ spec: project: default source: repoURL: https://gitlab.com/developerdurp/homelab.git - targetRevision: main + targetRevision: dev path: external-secrets destination: namespace: external-secrets diff --git a/argocd/templates/gatekeeper.yaml b/argocd/templates/gatekeeper.yaml index 5c60c12..225194d 100644 --- a/argocd/templates/gatekeeper.yaml +++ b/argocd/templates/gatekeeper.yaml @@ -7,7 +7,7 @@ spec: project: default source: repoURL: https://gitlab.com/developerdurp/homelab.git - targetRevision: main + targetRevision: dev path: gatekeeper destination: namespace: gatekeeper diff --git a/argocd/templates/gitlab-runner.yaml b/argocd/templates/gitlab-runner.yaml index c5539d7..6caa79d 100644 --- a/argocd/templates/gitlab-runner.yaml +++ b/argocd/templates/gitlab-runner.yaml @@ -7,7 +7,7 @@ spec: project: default source: repoURL: https://gitlab.com/developerdurp/homelab.git - targetRevision: main + targetRevision: dev path: gitlab-runner destination: namespace: gitlab-runner diff --git a/argocd/templates/heimdall.yaml b/argocd/templates/heimdall.yaml index d695e34..2340dca 100644 --- a/argocd/templates/heimdall.yaml +++ b/argocd/templates/heimdall.yaml @@ -7,7 +7,7 @@ spec: project: default source: repoURL: https://gitlab.com/developerdurp/homelab.git - targetRevision: main + targetRevision: dev path: heimdall destination: namespace: heimdall diff --git a/internalproxy/templates/argocd.yaml b/argocd/templates/ingress.yaml similarity index 66% rename from internalproxy/templates/argocd.yaml rename to argocd/templates/ingress.yaml index 15dfaf9..11fa1bc 100644 --- a/internalproxy/templates/argocd.yaml +++ b/argocd/templates/ingress.yaml @@ -8,9 +8,9 @@ spec: entryPoints: - websecure routes: - - match: Host(`argocd.internal.durp.info`) + - match: Host(`argocd.internal.dev.durp.info`) middlewares: - - name: whitelist + - name: internal-only namespace: traefik kind: Rule services: @@ -22,16 +22,6 @@ spec: --- -kind: Service -apiVersion: v1 -metadata: - name: argocd-server -spec: - type: ExternalName - externalName: argocd-server.argocd.svc.cluster.local - ---- - apiVersion: cert-manager.io/v1 kind: Certificate metadata: @@ -41,6 +31,6 @@ spec: issuerRef: name: letsencrypt-production kind: ClusterIssuer - commonName: "argocd.internal.durp.info" + commonName: "argocd.internal.dev.durp.info" dnsNames: - - "argocd.internal.durp.info" \ No newline at end of file + - "argocd.internal.dev.durp.info" diff --git a/argocd/templates/krakend.yaml b/argocd/templates/krakend.yaml index 68a57d1..f1e1b78 100644 --- a/argocd/templates/krakend.yaml +++ b/argocd/templates/krakend.yaml @@ -7,7 +7,7 @@ spec: project: default source: repoURL: https://gitlab.com/developerdurp/homelab.git - targetRevision: main + targetRevision: dev path: krakend destination: namespace: krakend diff --git a/argocd/templates/kube-prometheus-stack.yaml b/argocd/templates/kube-prometheus-stack.yaml index 02f8261..59800a7 100644 --- a/argocd/templates/kube-prometheus-stack.yaml +++ b/argocd/templates/kube-prometheus-stack.yaml @@ -7,7 +7,7 @@ spec: project: default source: repoURL: https://gitlab.com/developerdurp/homelab.git - targetRevision: main + targetRevision: dev path: kube-prometheus-stack destination: namespace: kube-prometheus-stack diff --git a/argocd/templates/kubeclarity.yaml b/argocd/templates/kubeclarity.yaml index c812528..0457b36 100644 --- a/argocd/templates/kubeclarity.yaml +++ b/argocd/templates/kubeclarity.yaml @@ -7,7 +7,7 @@ spec: project: default source: repoURL: https://gitlab.com/developerdurp/homelab.git - targetRevision: main + targetRevision: dev path: kubeclarity destination: namespace: kubeclarity diff --git a/argocd/templates/littlelink.yaml b/argocd/templates/littlelink.yaml index 99b08fe..42e2c2d 100644 --- a/argocd/templates/littlelink.yaml +++ b/argocd/templates/littlelink.yaml @@ -7,7 +7,7 @@ spec: project: default source: repoURL: https://gitlab.com/developerdurp/homelab.git - targetRevision: main + targetRevision: dev path: littlelink directory: recurse: true diff --git a/argocd/templates/longhorn.yaml b/argocd/templates/longhorn.yaml index 017da6f..ea388f0 100644 --- a/argocd/templates/longhorn.yaml +++ b/argocd/templates/longhorn.yaml @@ -7,7 +7,7 @@ spec: project: default source: repoURL: https://gitlab.com/developerdurp/homelab.git - targetRevision: main + targetRevision: dev path: longhorn destination: namespace: longhorn-system diff --git a/argocd/templates/metallb-system.yaml b/argocd/templates/metallb-system.yaml new file mode 100644 index 0000000..8c33829 --- /dev/null +++ b/argocd/templates/metallb-system.yaml @@ -0,0 +1,21 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: metallb-system + namespace: argocd +spec: + project: default + source: + repoURL: https://gitlab.com/developerdurp/homelab.git + targetRevision: dev + path: metallb-system + destination: + namespace: metallb-system + name: in-cluster + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true + diff --git a/argocd/templates/nfs-client.yaml b/argocd/templates/nfs-client.yaml index e374885..f101b4d 100644 --- a/argocd/templates/nfs-client.yaml +++ b/argocd/templates/nfs-client.yaml @@ -7,7 +7,7 @@ spec: project: default source: repoURL: https://gitlab.com/developerdurp/homelab.git - targetRevision: main + targetRevision: dev path: nfs-client directory: recurse: true diff --git a/argocd/templates/open-webui.yaml b/argocd/templates/open-webui.yaml index a2b25fa..658a941 100644 --- a/argocd/templates/open-webui.yaml +++ b/argocd/templates/open-webui.yaml @@ -7,7 +7,7 @@ spec: project: default source: repoURL: https://gitlab.com/developerdurp/homelab.git - targetRevision: main + targetRevision: dev path: open-webui destination: namespace: open-webui diff --git a/argocd/templates/traefik.yaml b/argocd/templates/traefik.yaml index 3995a9f..d2247d7 100644 --- a/argocd/templates/traefik.yaml +++ b/argocd/templates/traefik.yaml @@ -7,7 +7,7 @@ spec: project: default source: repoURL: https://gitlab.com/developerdurp/homelab.git - targetRevision: main + targetRevision: dev path: traefik destination: namespace: traefik diff --git a/argocd/templates/uptimekuma.yaml b/argocd/templates/uptimekuma.yaml index ff0e1af..dc00dc0 100644 --- a/argocd/templates/uptimekuma.yaml +++ b/argocd/templates/uptimekuma.yaml @@ -7,7 +7,7 @@ spec: project: default source: repoURL: https://gitlab.com/developerdurp/homelab.git - targetRevision: main + targetRevision: dev path: uptimekuma directory: recurse: true diff --git a/argocd/templates/vault.yaml b/argocd/templates/vault.yaml index 6e243c5..672a6dd 100644 --- a/argocd/templates/vault.yaml +++ b/argocd/templates/vault.yaml @@ -7,7 +7,7 @@ spec: project: default source: repoURL: https://gitlab.com/developerdurp/homelab.git - targetRevision: main + targetRevision: dev path: vault destination: namespace: vault diff --git a/argocd/values.yaml b/argocd/values.yaml index 47a56e3..957a47e 100644 --- a/argocd/values.yaml +++ b/argocd/values.yaml @@ -1,28 +1,10 @@ argo-cd: - global: revisionHistoryLimit: 1 image: repository: registry.internal.durp.info/argoproj/argocd imagePullPolicy: Always - server: - #extraArgs: - # - --dex-server-plaintext - # - --dex-server=argocd-dex-server:5556 - # oidc.config: | - # name: AzureAD - # issuer: https://login.microsoftonline.com/TENANT_ID/v2.0 - # clientID: CLIENT_ID - # clientSecret: $oidc.azuread.clientSecret - # requestedIDTokenClaims: - # groups: - # essential: true - # requestedScopes: - # - openid - # - profile - # - email - dex: enabled: true image: @@ -33,13 +15,13 @@ argo-cd: cm: create: true annotations: {} - url: https://argocd.internal.durp.info + url: https://argocd.dev.durp.info oidc.tls.insecure.skip.verify: "true" dex.config: | connectors: - config: - issuer: https://authentik.durp.info/application/o/argocd/ - clientID: dbb8ffc06104fb6e7fac3e4ae7fafb1d90437625 + issuer: https://authentik.dev.durp.info/application/o/argocd/ + clientID: lKuMgyYaOlQMNAUSjsRVYgkwZG9UT6CeFWeTLAcl clientSecret: $client-secret:clientSecret insecureEnableGroups: true scopes: @@ -54,9 +36,9 @@ argo-cd: rbac: create: true policy.csv: | - g, ArgoCD Admins, role:admin + g, ArgoCD Admins, role:admin scopes: "[groups]" server: - route: + route: enabled: false diff --git a/authentik/templates/ingress.yaml b/authentik/templates/ingress.yaml index ac10303..1de2d83 100644 --- a/authentik/templates/ingress.yaml +++ b/authentik/templates/ingress.yaml @@ -6,7 +6,7 @@ spec: entryPoints: - websecure routes: - - match: Host(`authentik.durp.info`) && PathPrefix(`/`) + - match: Host(`authentik.dev.durp.info`) && PathPrefix(`/`) kind: Rule services: - name: authentik-server @@ -25,9 +25,9 @@ spec: issuerRef: name: letsencrypt-production kind: ClusterIssuer - commonName: "authentik.durp.info" + commonName: "authentik.dev.durp.info" dnsNames: - - "authentik.durp.info" + - "authentik.dev.durp.info" --- diff --git a/authentik/values.yaml b/authentik/values.yaml index bd03ad1..ecc79d1 100644 --- a/authentik/values.yaml +++ b/authentik/values.yaml @@ -1,6 +1,8 @@ authentik: global: env: + - name: AUTHENTIK_REDIS__DB + value: "1" - name: AUTHENTIK_POSTGRESQL__PASSWORD valueFrom: secretKeyRef: @@ -32,9 +34,16 @@ authentik: registry: registry.internal.durp.info repository: bitnami/postgresql pullPolicy: Always - postgresqlUsername: "authentik" - postgresqlDatabase: "authentik" - existingSecret: db-pass + auth: + username: "authentik" + existingSecret: db-pass + secretKeys: + adminPasswordKey: dbpass + userPasswordKey: dbpass + + #postgresqlUsername: "authentik" + #postgresqlDatabase: "authentik" + #existingSecret: db-pass persistence: enabled: true storageClass: longhorn diff --git a/bitwarden/templates/deployment.yaml b/bitwarden/templates/deployment.yaml index d6e1788..9a78d07 100644 --- a/bitwarden/templates/deployment.yaml +++ b/bitwarden/templates/deployment.yaml @@ -17,7 +17,7 @@ spec: spec: containers: - name: bitwarden - image: registry.internal.durp.info/vaultwarden/server:1.30.3 + image: registry.internal.durp.info/vaultwarden/server:1.30.5 imagePullPolicy: Always volumeMounts: - name: bitwarden-pvc @@ -28,7 +28,7 @@ spec: containerPort: 80 env: - name: SIGNUPS_ALLOWED - value: "FALSE" + value: "TRUE" - name: INVITATIONS_ALLOWED value: "FALSE" - name: WEBSOCKET_ENABLED @@ -39,7 +39,7 @@ spec: value: "80" - name: ROCKET_WORKERS value: "10" - - name: SECRET_USERNAME + - name: ADMIN_TOKEN valueFrom: secretKeyRef: name: bitwarden-secret diff --git a/bitwarden/templates/ingress.yaml b/bitwarden/templates/ingress.yaml index 8a9a628..011ad8a 100644 --- a/bitwarden/templates/ingress.yaml +++ b/bitwarden/templates/ingress.yaml @@ -6,7 +6,7 @@ spec: entryPoints: - websecure routes: - - match: Host(`bitwarden.durp.info`) && PathPrefix(`/`) + - match: Host(`bitwarden.dev.durp.info`) && PathPrefix(`/`) kind: Rule services: - name: bitwarden @@ -25,9 +25,9 @@ spec: issuerRef: name: letsencrypt-production kind: ClusterIssuer - commonName: "bitwarden.durp.info" + commonName: "bitwarden.dev.durp.info" dnsNames: - - "bitwarden.durp.info" + - "bitwarden.dev.durp.info" --- @@ -36,7 +36,28 @@ apiVersion: v1 metadata: name: bitwarden-external-dns annotations: - external-dns.alpha.kubernetes.io/hostname: bitwarden.durp.info + external-dns.alpha.kubernetes.io/hostname: bitwarden.dev.durp.info spec: type: ExternalName - externalName: durp.info \ No newline at end of file + externalName: dev.durp.info + +--- + +apiVersion: traefik.containo.us/v1alpha1 +kind: IngressRoute +metadata: + name: bitwarden-admin-ingress +spec: + entryPoints: + - websecure + routes: + - match: Host(`bitwarden.dev.durp.info`) && PathPrefix(`/admin`) + kind: Rule + middlewares: + - name: whitelist + namespace: traefik + services: + - name: bitwarden + port: 80 + tls: + secretName: bitwarden-tls diff --git a/cert-manager/templates/letsencrypt-prroduction.yaml b/cert-manager/templates/letsencrypt-production.yaml similarity index 100% rename from cert-manager/templates/letsencrypt-prroduction.yaml rename to cert-manager/templates/letsencrypt-production.yaml diff --git a/cert-manager/templates/self-signed.yaml b/cert-manager/templates/self-signed.yaml new file mode 100644 index 0000000..fa3ea4d --- /dev/null +++ b/cert-manager/templates/self-signed.yaml @@ -0,0 +1,13 @@ +apiVersion: cert-manager.io/v1 +kind: Issuer +metadata: + name: selfsigned-issuer +spec: + selfSigned: {} +--- +apiVersion: cert-manager.io/v1 +kind: ClusterIssuer +metadata: + name: selfsigned-cluster-issuer +spec: + selfSigned: {} diff --git a/crossplane/Chart.yaml b/crossplane/Chart.yaml index c7bf1ab..d8f781c 100644 --- a/crossplane/Chart.yaml +++ b/crossplane/Chart.yaml @@ -9,4 +9,4 @@ appVersion: "1.16.0" dependencies: - name: crossplane repository: https://charts.crossplane.io/stable - version: 1.12.0 + version: 1.16.0 diff --git a/crossplane/templates/gitlab.yml b/crossplane/templates/gitlab.yml index 3a20b9c..ea1dbdf 100644 --- a/crossplane/templates/gitlab.yml +++ b/crossplane/templates/gitlab.yml @@ -3,7 +3,7 @@ kind: Provider metadata: name: provider-gitlab spec: - package: xpkg.upbound.io/crossplane-contrib/provider-gitlab:v0.5.0 + package: xpkg.upbound.io/crossplane-contrib/provider-gitlab:v0.7.0 --- apiVersion: external-secrets.io/v1beta1 diff --git a/crossplane/values.yaml b/crossplane/values.yaml new file mode 100644 index 0000000..6a319f2 --- /dev/null +++ b/crossplane/values.yaml @@ -0,0 +1,186 @@ +# helm-docs renders these comments into markdown. Use markdown formatting where +# appropiate. +# +# -- The number of Crossplane pod `replicas` to deploy. +replicas: 1 + +# -- The deployment strategy for the Crossplane and RBAC Manager pods. +deploymentStrategy: RollingUpdate + +image: + # -- Repository for the Crossplane pod image. + repository: xpkg.upbound.io/crossplane/crossplane + # -- The Crossplane image tag. Defaults to the value of `appVersion` in `Chart.yaml`. + tag: "" + # -- The image pull policy used for Crossplane and RBAC Manager pods. + pullPolicy: IfNotPresent + +# -- Add `nodeSelectors` to the Crossplane pod deployment. +nodeSelector: {} +# -- Add `tolerations` to the Crossplane pod deployment. +tolerations: [] +# -- Add `affinities` to the Crossplane pod deployment. +affinity: {} + +# -- Enable `hostNetwork` for the Crossplane deployment. Caution: enabling `hostNetwork` grants the Crossplane Pod access to the host network namespace. Consider setting `dnsPolicy` to `ClusterFirstWithHostNet`. +hostNetwork: false + +# -- Specify the `dnsPolicy` to be used by the Crossplane pod. +dnsPolicy: "" + +# -- Add custom `labels` to the Crossplane pod deployment. +customLabels: {} + +# -- Add custom `annotations` to the Crossplane pod deployment. +customAnnotations: {} + +serviceAccount: + # -- Add custom `annotations` to the Crossplane ServiceAccount. + customAnnotations: {} + +# -- Enable [leader election](https://docs.crossplane.io/latest/concepts/pods/#leader-election) for the Crossplane pod. +leaderElection: true +# -- Add custom arguments to the Crossplane pod. +args: [] + +provider: + # -- A list of Provider packages to install. + packages: [] + +configuration: + # -- A list of Configuration packages to install. + packages: [] + +function: + # -- A list of Function packages to install + packages: [] + +# -- The imagePullSecret names to add to the Crossplane ServiceAccount. +imagePullSecrets: [] + +registryCaBundleConfig: + # -- The ConfigMap name containing a custom CA bundle to enable fetching packages from registries with unknown or untrusted certificates. + name: "" + # -- The ConfigMap key containing a custom CA bundle to enable fetching packages from registries with unknown or untrusted certificates. + key: "" + +service: + # -- Configure annotations on the service object. Only enabled when webhooks.enabled = true + customAnnotations: {} + +webhooks: + # -- Enable webhooks for Crossplane and installed Provider packages. + enabled: true + +rbacManager: + # -- Deploy the RBAC Manager pod and its required roles. + deploy: true + # -- Don't install aggregated Crossplane ClusterRoles. + skipAggregatedClusterRoles: false + # -- The number of RBAC Manager pod `replicas` to deploy. + replicas: 1 + # -- Enable [leader election](https://docs.crossplane.io/latest/concepts/pods/#leader-election) for the RBAC Manager pod. + leaderElection: true + # -- Add custom arguments to the RBAC Manager pod. + args: [] + # -- Add `nodeSelectors` to the RBAC Manager pod deployment. + nodeSelector: {} + # -- Add `tolerations` to the RBAC Manager pod deployment. + tolerations: [] + # -- Add `affinities` to the RBAC Manager pod deployment. + affinity: {} + +# -- The PriorityClass name to apply to the Crossplane and RBAC Manager pods. +priorityClassName: "" + +resourcesCrossplane: + limits: + # -- CPU resource limits for the Crossplane pod. + cpu: 500m + # -- Memory resource limits for the Crossplane pod. + memory: 1024Mi + requests: + # -- CPU resource requests for the Crossplane pod. + cpu: 100m + # -- Memory resource requests for the Crossplane pod. + memory: 256Mi + +securityContextCrossplane: + # -- The user ID used by the Crossplane pod. + runAsUser: 65532 + # -- The group ID used by the Crossplane pod. + runAsGroup: 65532 + # -- Enable `allowPrivilegeEscalation` for the Crossplane pod. + allowPrivilegeEscalation: false + # -- Set the Crossplane pod root file system as read-only. + readOnlyRootFilesystem: true + +packageCache: + # -- Set to `Memory` to hold the package cache in a RAM backed file system. Useful for Crossplane development. + medium: "" + # -- The size limit for the package cache. If medium is `Memory` the `sizeLimit` can't exceed Node memory. + sizeLimit: 20Mi + # -- The name of a PersistentVolumeClaim to use as the package cache. Disables the default package cache `emptyDir` Volume. + pvc: "" + # -- The name of a ConfigMap to use as the package cache. Disables the default package cache `emptyDir` Volume. + configMap: "" + +resourcesRBACManager: + limits: + # -- CPU resource limits for the RBAC Manager pod. + cpu: 100m + # -- Memory resource limits for the RBAC Manager pod. + memory: 512Mi + requests: + # -- CPU resource requests for the RBAC Manager pod. + cpu: 100m + # -- Memory resource requests for the RBAC Manager pod. + memory: 256Mi + +securityContextRBACManager: + # -- The user ID used by the RBAC Manager pod. + runAsUser: 65532 + # -- The group ID used by the RBAC Manager pod. + runAsGroup: 65532 + # -- Enable `allowPrivilegeEscalation` for the RBAC Manager pod. + allowPrivilegeEscalation: false + # -- Set the RBAC Manager pod root file system as read-only. + readOnlyRootFilesystem: true + +metrics: + # -- Enable Prometheus path, port and scrape annotations and expose port 8080 for both the Crossplane and RBAC Manager pods. + enabled: false + +# -- Add custom environmental variables to the Crossplane pod deployment. +# Replaces any `.` in a variable name with `_`. For example, `SAMPLE.KEY=value1` becomes `SAMPLE_KEY=value1`. +extraEnvVarsCrossplane: {} + +# -- Add custom environmental variables to the RBAC Manager pod deployment. +# Replaces any `.` in a variable name with `_`. For example, `SAMPLE.KEY=value1` becomes `SAMPLE_KEY=value1`. +extraEnvVarsRBACManager: {} + +# -- Add a custom `securityContext` to the Crossplane pod. +podSecurityContextCrossplane: {} + +# -- Add a custom `securityContext` to the RBAC Manager pod. +podSecurityContextRBACManager: {} + +# -- Add custom `volumes` to the Crossplane pod. +extraVolumesCrossplane: {} + +# -- Add custom `volumeMounts` to the Crossplane pod. +extraVolumeMountsCrossplane: {} + +# -- To add arbitrary Kubernetes Objects during a Helm Install +extraObjects: [] + # - apiVersion: pkg.crossplane.io/v1alpha1 + # kind: ControllerConfig + # metadata: + # name: aws-config + # annotations: + # eks.amazonaws.com/role-arn: arn:aws:iam::123456789101:role/example + # helm.sh/hook: post-install + # spec: + # podSecurityContext: + # fsGroup: 2000 + diff --git a/durpapi/Chart.yaml b/durpapi/Chart.yaml index 07593b9..5012185 100644 --- a/durpapi/Chart.yaml +++ b/durpapi/Chart.yaml @@ -1,11 +1,11 @@ -version: 0.1.0-dev0144 apiVersion: v2 +type: application +version: 0.1.0-dev0192 +description: A Helm chart for Kubernetes +appVersion: 0.1.0 name: durpapi dependencies: - version: 12.5.* condition: postgresql.enabled - name: postgresql repository: https://charts.bitnami.com/bitnami -description: A Helm chart for Kubernetes -type: application -appVersion: 0.1.0 + name: postgresql diff --git a/durpapi/templates/ingress.yaml b/durpapi/templates/ingress.yaml index bd268dd..80dd3d2 100644 --- a/durpapi/templates/ingress.yaml +++ b/durpapi/templates/ingress.yaml @@ -6,7 +6,7 @@ spec: entryPoints: - websecure routes: - - match: Host("api.durp.info") && PathPrefix(`/api`) + - match: Host("api.dev.durp.info") && PathPrefix(`/api`) kind: Rule middlewares: - name: jwt @@ -24,7 +24,7 @@ spec: entryPoints: - websecure routes: - - match: Host("api.durp.info") && PathPrefix(`/swagger`) + - match: Host("api.dev.durp.info") && PathPrefix(`/swagger`) kind: Rule services: - name: "durpapi-service" @@ -42,3 +42,4 @@ spec: Required: true Keys: - https://authentik.durp.info/application/o/api/jwks + diff --git a/external-dns/values.yaml b/external-dns/values.yaml index 4102088..23e5315 100644 --- a/external-dns/values.yaml +++ b/external-dns/values.yaml @@ -4,13 +4,13 @@ external-dns: image: pullPolicy: Always - + txtPrefix: "dev-" sources: - service provider: cloudflare cloudflare: secretName : "external-dns" - proxied: true + proxied: false - policy: sync \ No newline at end of file + policy: sync diff --git a/heimdall/templates/ingress.yaml b/heimdall/templates/ingress.yaml index 98b6144..49dd1c7 100644 --- a/heimdall/templates/ingress.yaml +++ b/heimdall/templates/ingress.yaml @@ -7,7 +7,7 @@ spec: entryPoints: - websecure routes: - - match: Host(`heimdall.durp.info`) && PathPrefix(`/`) + - match: Host(`heimdall.dev.durp.info`) && PathPrefix(`/`) middlewares: - name: authentik-proxy-provider namespace: traefik @@ -15,7 +15,7 @@ spec: services: - name: heimdall port: 80 - - match: Host(`heimdall.durp.info`) && PathPrefix(`/outpost.goauthentik.io`) + - match: Host(`heimdall.dev.durp.info`) && PathPrefix(`/outpost.goauthentik.io`) kind: Rule services: - name: ak-outpost-authentik-embedded-outpost @@ -35,9 +35,9 @@ spec: issuerRef: name: letsencrypt-production kind: ClusterIssuer - commonName: "heimdall.durp.info" + commonName: "heimdall.dev.durp.info" dnsNames: - - "heimdall.durp.info" + - "heimdall.dev.durp.info" --- diff --git a/internalproxy/templates/duplicati-ingress.yaml b/internalproxy/templates/duplicati-ingress.yaml deleted file mode 100644 index d51c391..0000000 --- a/internalproxy/templates/duplicati-ingress.yaml +++ /dev/null @@ -1,70 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: duplicati -spec: - ports: - - name: app - port: 8200 - protocol: TCP - targetPort: 8200 - clusterIP: None - type: ClusterIP - ---- - -apiVersion: v1 -kind: Endpoints -metadata: - name: duplicati -subsets: -- addresses: - - ip: 192.168.20.253 - ports: - - name: app - port: 8200 - protocol: TCP - ---- - -apiVersion: traefik.containo.us/v1alpha1 -kind: IngressRoute -metadata: - name: duplicati-ingress -spec: - entryPoints: - - websecure - routes: - - match: Host(`duplicati.internal.durp.info`) && PathPrefix(`/`) - middlewares: - - name: whitelist - namespace: traefik - - name: authentik-proxy-provider - namespace: traefik - kind: Rule - services: - - name: duplicati - port: 8200 - - match: Host(`duplicati.internal.durp.info`) && PathPrefix(`/outpost.goauthentik.io`) - kind: Rule - services: - - name: ak-outpost-authentik-embedded-outpost - namespace: authentik - port: 9000 - tls: - secretName: duplicati-tls - ---- - -apiVersion: cert-manager.io/v1 -kind: Certificate -metadata: - name: duplicati-tls -spec: - secretName: duplicati-tls - issuerRef: - name: letsencrypt-production - kind: ClusterIssuer - commonName: "duplicati.internal.durp.info" - dnsNames: - - "duplicati.internal.durp.info" \ No newline at end of file diff --git a/internalproxy/templates/gitea.yaml b/internalproxy/templates/gitea.yaml deleted file mode 100644 index 8443aaf..0000000 --- a/internalproxy/templates/gitea.yaml +++ /dev/null @@ -1,9 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: gitea-external-dns - annotations: - external-dns.alpha.kubernetes.io/hostname: gitea.durp.info -spec: - type: ExternalName - externalName: durp.info \ No newline at end of file diff --git a/internalproxy/templates/guac.yaml b/internalproxy/templates/guac.yaml deleted file mode 100644 index a69b685..0000000 --- a/internalproxy/templates/guac.yaml +++ /dev/null @@ -1,71 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: guac-external-dns - annotations: - external-dns.alpha.kubernetes.io/hostname: guac.durp.info -spec: - type: ExternalName - externalName: durp.info - ---- - -apiVersion: v1 -kind: Service -metadata: - name: guac -spec: - ports: - - name: app - port: 8082 - protocol: TCP - targetPort: 8082 - clusterIP: None - type: ClusterIP - ---- - -apiVersion: v1 -kind: Endpoints -metadata: - name: guac -subsets: -- addresses: - - ip: 192.168.20.253 - ports: - - name: app - port: 8082 - protocol: TCP - ---- - -apiVersion: traefik.containo.us/v1alpha1 -kind: IngressRoute -metadata: - name: guac-ingress -spec: - entryPoints: - - websecure - routes: - - match: Host(`guac.durp.info`) && PathPrefix(`/`) - kind: Rule - services: - - name: guac - port: 8082 - tls: - secretName: guac-tls - ---- - -apiVersion: cert-manager.io/v1 -kind: Certificate -metadata: - name: guac-tls -spec: - secretName: guac-tls - issuerRef: - name: letsencrypt-production - kind: ClusterIssuer - commonName: "guac.durp.info" - dnsNames: - - "guac.durp.info" \ No newline at end of file diff --git a/internalproxy/templates/jellyfin.yaml b/internalproxy/templates/jellyfin.yaml deleted file mode 100644 index 61d86a5..0000000 --- a/internalproxy/templates/jellyfin.yaml +++ /dev/null @@ -1,9 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: jellyfin-external-dns - annotations: - external-dns.alpha.kubernetes.io/hostname: jellyfin.durp.info -spec: - type: ExternalName - externalName: durp.info diff --git a/internalproxy/templates/kasm.yaml b/internalproxy/templates/kasm.yaml deleted file mode 100644 index 28b25ae..0000000 --- a/internalproxy/templates/kasm.yaml +++ /dev/null @@ -1,9 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: kasm-external-dns - annotations: - external-dns.alpha.kubernetes.io/hostname: kasm.durp.info -spec: - type: ExternalName - externalName: durp.info diff --git a/internalproxy/templates/nexus.yaml b/internalproxy/templates/nexus.yaml deleted file mode 100644 index 7074102..0000000 --- a/internalproxy/templates/nexus.yaml +++ /dev/null @@ -1,71 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: nexus -spec: - ports: - - name: app - port: 8081 - protocol: TCP - targetPort: 8081 - clusterIP: None - type: ClusterIP - ---- - -apiVersion: v1 -kind: Endpoints -metadata: - name: nexus -subsets: -- addresses: - - ip: 192.168.20.253 - ports: - - name: app - port: 8081 - protocol: TCP - ---- - -apiVersion: traefik.containo.us/v1alpha1 -kind: IngressRoute -metadata: - name: nexus-ingress -spec: - entryPoints: - - websecure - routes: - - match: Host(`nexus.durp.info`) && PathPrefix(`/`) - kind: Rule - services: - - name: nexus - port: 8081 - tls: - secretName: nexus-tls - ---- - -apiVersion: cert-manager.io/v1 -kind: Certificate -metadata: - name: nexus-tls -spec: - secretName: nexus-tls - issuerRef: - name: letsencrypt-production - kind: ClusterIssuer - commonName: "nexus.durp.info" - dnsNames: - - "nexus.durp.info" - ---- - -kind: Service -apiVersion: v1 -metadata: - name: nexus-external-dns - annotations: - external-dns.alpha.kubernetes.io/hostname: nexus.durp.info -spec: - type: ExternalName - externalName: durp.info \ No newline at end of file diff --git a/internalproxy/templates/plex.yaml b/internalproxy/templates/plex.yaml deleted file mode 100644 index 2e70286..0000000 --- a/internalproxy/templates/plex.yaml +++ /dev/null @@ -1,9 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: plex-external-dns - annotations: - external-dns.alpha.kubernetes.io/hostname: plex.durp.info -spec: - type: ExternalName - externalName: durp.info diff --git a/internalproxy/templates/registry-internal.yaml b/internalproxy/templates/registry-internal.yaml deleted file mode 100644 index a1c584f..0000000 --- a/internalproxy/templates/registry-internal.yaml +++ /dev/null @@ -1,59 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: registry-internal -spec: - ports: - - name: app - port: 5001 - protocol: TCP - targetPort: 5001 - clusterIP: None - type: ClusterIP - ---- - -apiVersion: v1 -kind: Endpoints -metadata: - name: registry-internal -subsets: -- addresses: - - ip: 192.168.20.253 - ports: - - name: app - port: 5001 - protocol: TCP - ---- - -apiVersion: traefik.containo.us/v1alpha1 -kind: IngressRoute -metadata: - name: registry-internal-ingress -spec: - entryPoints: - - websecure - routes: - - match: Host(`registry.internal.durp.info`) && PathPrefix(`/`) - kind: Rule - services: - - name: registry-internal - port: 5001 - tls: - secretName: registry-tls - ---- - -apiVersion: cert-manager.io/v1 -kind: Certificate -metadata: - name: registry-internal-tls -spec: - secretName: registry-internal-tls - issuerRef: - name: letsencrypt-production - kind: ClusterIssuer - commonName: "registry.durp.info" - dnsNames: - - "registry.durp.info" diff --git a/internalproxy/templates/registry.yaml b/internalproxy/templates/registry.yaml deleted file mode 100644 index b4ac19a..0000000 --- a/internalproxy/templates/registry.yaml +++ /dev/null @@ -1,71 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: registry -spec: - ports: - - name: app - port: 5000 - protocol: TCP - targetPort: 5000 - clusterIP: None - type: ClusterIP - ---- - -apiVersion: v1 -kind: Endpoints -metadata: - name: registry -subsets: -- addresses: - - ip: 192.168.20.253 - ports: - - name: app - port: 5000 - protocol: TCP - ---- - -apiVersion: traefik.containo.us/v1alpha1 -kind: IngressRoute -metadata: - name: registry-ingress -spec: - entryPoints: - - websecure - routes: - - match: Host(`registry.durp.info`) && PathPrefix(`/`) - kind: Rule - services: - - name: registry - port: 5000 - tls: - secretName: registry-tls - ---- - -apiVersion: cert-manager.io/v1 -kind: Certificate -metadata: - name: registry-tls -spec: - secretName: registry-tls - issuerRef: - name: letsencrypt-production - kind: ClusterIssuer - commonName: "registry.durp.info" - dnsNames: - - "registry.durp.info" - ---- - -kind: Service -apiVersion: v1 -metadata: - name: registry-external-dns - annotations: - external-dns.alpha.kubernetes.io/hostname: registry.durp.info -spec: - type: ExternalName - externalName: durp.info \ No newline at end of file diff --git a/internalproxy/templates/smokeping.yaml b/internalproxy/templates/smokeping.yaml deleted file mode 100644 index 8a76738..0000000 --- a/internalproxy/templates/smokeping.yaml +++ /dev/null @@ -1,82 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: smokeping -spec: - ports: - - name: app - port: 81 - protocol: TCP - targetPort: 81 - clusterIP: None - type: ClusterIP - ---- - -apiVersion: v1 -kind: Endpoints -metadata: - name: smokeping -subsets: -- addresses: - - ip: 192.168.20.253 - ports: - - name: app - port: 81 - protocol: TCP - ---- - -apiVersion: traefik.containo.us/v1alpha1 -kind: IngressRoute -metadata: - name: smokeping-ingress -spec: - entryPoints: - - websecure - routes: - - match: Host(`smokeping.durp.info`) && PathPrefix(`/`) - middlewares: - - name: whitelist - namespace: traefik - - name: authentik-proxy-provider - namespace: traefik - kind: Rule - services: - - name: smokeping - port: 81 - - match: Host(`smokeping.durp.info`) && PathPrefix(`/outpost.goauthentik.io`) - kind: Rule - services: - - name: ak-outpost-authentik-embedded-outpost - namespace: authentik - port: 9000 - tls: - secretName: smokeping-tls - ---- - -apiVersion: cert-manager.io/v1 -kind: Certificate -metadata: - name: smokeping-tls -spec: - secretName: smokeping-tls - issuerRef: - name: letsencrypt-production - kind: ClusterIssuer - commonName: "smokeping.durp.info" - dnsNames: - - "smokeping.durp.info" - ---- - -kind: Service -apiVersion: v1 -metadata: - name: smokeping-external-dns - annotations: - external-dns.alpha.kubernetes.io/hostname: smokeping.durp.info -spec: - type: ExternalName - externalName: durp.info \ No newline at end of file diff --git a/internalproxy/templates/speedtest.yaml b/internalproxy/templates/speedtest.yaml deleted file mode 100644 index e034917..0000000 --- a/internalproxy/templates/speedtest.yaml +++ /dev/null @@ -1,74 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: speedtest -spec: - ports: - - name: app - port: 6580 - protocol: TCP - targetPort: 6580 - clusterIP: None - type: ClusterIP - ---- - -apiVersion: v1 -kind: Endpoints -metadata: - name: speedtest -subsets: -- addresses: - - ip: 192.168.20.253 - ports: - - name: app - port: 6580 - protocol: TCP - ---- - -apiVersion: traefik.containo.us/v1alpha1 -kind: IngressRoute -metadata: - name: speedtest-ingress -spec: - entryPoints: - - websecure - routes: - - match: Host(`speedtest.durp.info`) && PathPrefix(`/`) - kind: Rule - middlewares: - - name: authentik-proxy-provider - namespace: traefik - services: - - name: speedtest - port: 6580 - tls: - secretName: speedtest-tls - ---- - -apiVersion: cert-manager.io/v1 -kind: Certificate -metadata: - name: speedtest-tls -spec: - secretName: speedtest-tls - issuerRef: - name: letsencrypt-production - kind: ClusterIssuer - commonName: "speedtest.durp.info" - dnsNames: - - "speedtest.durp.info" - ---- - -kind: Service -apiVersion: v1 -metadata: - name: speedtest-external-dns - annotations: - external-dns.alpha.kubernetes.io/hostname: speedtest.durp.info -spec: - type: ExternalName - externalName: durp.info \ No newline at end of file diff --git a/internalproxy/templates/tdarr.yaml b/internalproxy/templates/tdarr.yaml deleted file mode 100644 index c4403b9..0000000 --- a/internalproxy/templates/tdarr.yaml +++ /dev/null @@ -1,67 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: tdarr -spec: - ports: - - name: app - port: 8267 - protocol: TCP - targetPort: 8267 - clusterIP: None - type: ClusterIP - ---- - -apiVersion: v1 -kind: Endpoints -metadata: - name: tdarr -subsets: -- addresses: - - ip: 192.168.20.253 - ports: - - name: app - port: 8267 - protocol: TCP - ---- - -apiVersion: traefik.containo.us/v1alpha1 -kind: IngressRoute -metadata: - name: tdarr-ingress - annotations: - cert-manager.io/cluster-issuer: letsencrypt-production -spec: - entryPoints: - - websecure - routes: - - match: Host(`tdarr.internal.durp.info`) - middlewares: - - name: whitelist - namespace: traefik - - name: authentik-proxy-provider - namespace: traefik - kind: Rule - services: - - name: tdarr - port: 8267 - scheme: http - tls: - secretName: tdarr-tls - ---- - -apiVersion: cert-manager.io/v1 -kind: Certificate -metadata: - name: tdarr-tls -spec: - secretName: tdarr-tls - issuerRef: - name: letsencrypt-production - kind: ClusterIssuer - commonName: "tdarr.internal.durp.info" - dnsNames: - - "tdarr.internal.durp.info" diff --git a/krakend/templates/ingress.yaml b/krakend/templates/ingress.yaml index a8c08eb..127c616 100644 --- a/krakend/templates/ingress.yaml +++ b/krakend/templates/ingress.yaml @@ -7,9 +7,9 @@ spec: issuerRef: name: letsencrypt-production kind: ClusterIssuer - commonName: "api.durp.info" + commonName: "api.dev.durp.info" dnsNames: - - "api.durp.info" + - "api.dev.durp.info" --- @@ -21,7 +21,7 @@ spec: entryPoints: - websecure routes: - - match: Host(`api.durp.info`) && PathPrefix(`/`) + - match: Host(`api.dev.durp.info`) && PathPrefix(`/`) kind: Rule services: - name: krakend-service @@ -37,10 +37,10 @@ apiVersion: v1 metadata: name: api-external-dns annotations: - external-dns.alpha.kubernetes.io/hostname: api.durp.info + external-dns.alpha.kubernetes.io/hostname: api.dev.durp.info spec: type: ExternalName - externalName: durp.info + externalName: dev.durp.info --- @@ -49,7 +49,7 @@ apiVersion: v1 metadata: name: api-developer-dns annotations: - external-dns.alpha.kubernetes.io/hostname: developer.durp.info + external-dns.alpha.kubernetes.io/hostname: developer.dev.durp.info external-dns.alpha.kubernetes.io/cloudflare-proxied: "false" spec: type: ExternalName diff --git a/kube-prometheus-stack/templates/ingress.yaml b/kube-prometheus-stack/templates/ingress.yaml index caf0ee1..851faff 100644 --- a/kube-prometheus-stack/templates/ingress.yaml +++ b/kube-prometheus-stack/templates/ingress.yaml @@ -6,7 +6,7 @@ spec: entryPoints: - websecure routes: - - match: Host(`grafana.durp.info`) && PathPrefix(`/`) + - match: Host(`grafana.dev.durp.info`) && PathPrefix(`/`) kind: Rule services: - name: grafana @@ -25,9 +25,9 @@ spec: issuerRef: name: letsencrypt-production kind: ClusterIssuer - commonName: "grafana.durp.info" + commonName: "grafana.dev.durp.info" dnsNames: - - "grafana.durp.info" + - "grafana.dev.durp.info" --- @@ -39,7 +39,7 @@ spec: entryPoints: - websecure routes: - - match: Host(`alertmanager.durp.info`) && PathPrefix(`/`) + - match: Host(`alertmanager.dev.durp.info`) && PathPrefix(`/`) middlewares: - name: whitelist namespace: traefik @@ -63,9 +63,9 @@ spec: issuerRef: name: letsencrypt-production kind: ClusterIssuer - commonName: "alertmanager.durp.info" + commonName: "alertmanager.dev.durp.info" dnsNames: - - "alertmanager.durp.info" + - "alertmanager.dev.durp.info" --- @@ -74,7 +74,7 @@ apiVersion: v1 metadata: name: grafana-external-dns annotations: - external-dns.alpha.kubernetes.io/hostname: grafana.durp.info + external-dns.alpha.kubernetes.io/hostname: grafana.dev.durp.info spec: type: ExternalName - externalName: durp.info \ No newline at end of file + externalName: dev.durp.info diff --git a/kubeclarity/templates/ingress.yaml b/kubeclarity/templates/ingress.yaml index 77b67a7..ac0950d 100644 --- a/kubeclarity/templates/ingress.yaml +++ b/kubeclarity/templates/ingress.yaml @@ -6,7 +6,7 @@ spec: entryPoints: - websecure routes: - - match: Host(`kubeclarity.durp.info`) && PathPrefix(`/`) + - match: Host(`kubeclarity.dev.durp.info`) && PathPrefix(`/`) middlewares: - name: whitelist namespace: traefik @@ -30,9 +30,9 @@ spec: issuerRef: name: letsencrypt-production kind: ClusterIssuer - commonName: "kubeclarity.durp.info" + commonName: "kubeclarity.dev.durp.info" dnsNames: - - "kubeclarity.durp.info" + - "kubeclarity.dev.durp.info" --- @@ -41,7 +41,7 @@ apiVersion: v1 metadata: name: kubeclarity-external-dns annotations: - external-dns.alpha.kubernetes.io/hostname: kubeclarity.durp.info + external-dns.alpha.kubernetes.io/hostname: kubeclarity.dev.durp.info spec: type: ExternalName - externalName: durp.info + externalName: dev.durp.info diff --git a/littlelink/templates/ingress.yaml b/littlelink/templates/ingress.yaml index 194f31e..1cf7211 100644 --- a/littlelink/templates/ingress.yaml +++ b/littlelink/templates/ingress.yaml @@ -6,7 +6,7 @@ spec: entryPoints: - websecure routes: - - match: Host(`links.durp.info`) && PathPrefix(`/`) + - match: Host(`links.dev.durp.info`) && PathPrefix(`/`) kind: Rule services: - name: littlelink @@ -25,9 +25,9 @@ spec: issuerRef: name: letsencrypt-production kind: ClusterIssuer - commonName: "links.durp.info" + commonName: "links.dev.durp.info" dnsNames: - - "links.durp.info" + - "links.dev.durp.info" --- @@ -36,7 +36,8 @@ apiVersion: v1 metadata: name: links-external-dns annotations: - external-dns.alpha.kubernetes.io/hostname: links.durp.info + external-dns.alpha.kubernetes.io/hostname: links.dev.durp.info spec: type: ExternalName - externalName: durp.info \ No newline at end of file + externalName: dev.durp.info + diff --git a/longhorn/Chart.yaml b/longhorn/Chart.yaml index b7b6417..c26d7e0 100644 --- a/longhorn/Chart.yaml +++ b/longhorn/Chart.yaml @@ -9,4 +9,4 @@ appVersion: "1.16.0" dependencies: - name: longhorn repository: https://charts.longhorn.io - version: 1.3.2 + version: 1.7.0 diff --git a/longhorn/templates/ingress.yaml b/longhorn/templates/ingress.yaml index df2e071..d67e620 100644 --- a/longhorn/templates/ingress.yaml +++ b/longhorn/templates/ingress.yaml @@ -6,17 +6,17 @@ spec: entryPoints: - websecure routes: - - match: Host(`longhorn.internal.durp.info`) && PathPrefix(`/`) + - match: Host(`longhorn.internal.dev.durp.info`) && PathPrefix(`/`) middlewares: - name: whitelist namespace: traefik - - name: authentik-proxy-provider - namespace: traefik + #- name: authentik-proxy-provider + # namespace: traefik kind: Rule services: - name: longhorn-frontend port: 80 - - match: Host(`longhorn.internal.durp.info`) && PathPrefix(`/outpost.goauthentik.io`) + - match: Host(`longhorn.internal.dev.durp.info`) && PathPrefix(`/outpost.goauthentik.io`) kind: Rule services: - name: ak-outpost-authentik-embedded-outpost @@ -36,6 +36,6 @@ spec: issuerRef: name: letsencrypt-production kind: ClusterIssuer - commonName: "longhorn.internal.durp.info" + commonName: "longhorn.internal.dev.durp.info" dnsNames: - - "longhorn.internal.durp.info" + - "longhorn.internal.dev.durp.info" diff --git a/longhorn/templates/secrets.yaml b/longhorn/templates/secrets.yaml index c10ab89..26c10a1 100644 --- a/longhorn/templates/secrets.yaml +++ b/longhorn/templates/secrets.yaml @@ -8,7 +8,7 @@ spec: name: vault kind: ClusterSecretStore target: - name: longhorn-backup-token-secret + name: longhorn-backup-token-secret2 data: - secretKey: AWS_ACCESS_KEY_ID remoteRef: diff --git a/longhorn/values.yaml b/longhorn/values.yaml index 5343300..3f9c17d 100644 --- a/longhorn/values.yaml +++ b/longhorn/values.yaml @@ -47,7 +47,7 @@ longhorn: persistence: defaultClass: true defaultFsType: ext4 - defaultClassReplicaCount: 3 + defaultClassReplicaCount: 1 defaultDataLocality: disabled # best-effort otherwise reclaimPolicy: Retain migratable: false @@ -76,8 +76,8 @@ longhorn: snapshotterReplicaCount: ~ defaultSettings: - backupTarget: S3://longhorn@us-east-1/ - backupTargetCredentialSecret: longhorn-backup-token-secret + backupTarget: S3://longhorn-dev@us-east-1/ + backupTargetCredentialSecret: longhorn-backup-token-secret2 allowRecurringJobWhileVolumeDetached: ~ createDefaultDiskLabeledNodes: ~ defaultDataPath: ~ @@ -238,7 +238,7 @@ longhorn: # certificate: # Configure a pod security policy in the Longhorn namespace to allow privileged pods - enablePSP: true + enablePSP: false ## Specify override namespace, specifically this is useful for using longhorn as sub-chart ## and its release namespace is not the `longhorn-system` diff --git a/metallb-system/Chart.yaml b/metallb-system/Chart.yaml new file mode 100644 index 0000000..6b183c3 --- /dev/null +++ b/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.5 diff --git a/metallb-system/templates/config.yaml b/metallb-system/templates/config.yaml new file mode 100644 index 0000000..505a798 --- /dev/null +++ b/metallb-system/templates/config.yaml @@ -0,0 +1,16 @@ +apiVersion: metallb.io/v1beta1 +kind: IPAddressPool +metadata: + name: cheap +spec: + addresses: + - 192.168.10.110-192.168.10.120 +--- +apiVersion: metallb.io/v1beta1 +kind: L2Advertisement +metadata: + name: pool + namespace: metallb-system +spec: + ipAddressPools: + - cheap diff --git a/metallb-system/values.yaml b/metallb-system/values.yaml new file mode 100644 index 0000000..876db14 --- /dev/null +++ b/metallb-system/values.yaml @@ -0,0 +1,196 @@ +metallb: + imagePullSecrets: [] + nameOverride: "" + fullnameOverride: "" + loadBalancerClass: "" + + rbac: + create: true + + prometheus: + scrapeAnnotations: false + metricsPort: 7472 + speakerMetricsTLSSecret: "" + controllerMetricsTLSSecret: "" + rbacPrometheus: true + serviceAccount: "" + namespace: "" + rbacProxy: + repository: gcr.io/kubebuilder/kube-rbac-proxy + tag: v0.12.0 + pullPolicy: + podMonitor: + enabled: false + additionalLabels: {} + annotations: {} + jobLabel: "app.kubernetes.io/name" + interval: + metricRelabelings: [] + relabelings: [] + serviceMonitor: + enabled: false + speaker: + additionalLabels: {} + annotations: {} + tlsConfig: + insecureSkipVerify: true + controller: + additionalLabels: {} + annotations: {} + tlsConfig: + insecureSkipVerify: true + jobLabel: "app.kubernetes.io/name" + interval: + metricRelabelings: [] + relabelings: [] + prometheusRule: + enabled: false + additionalLabels: {} + annotations: {} + staleConfig: + enabled: true + labels: + severity: warning + configNotLoaded: + enabled: true + labels: + severity: warning + addressPoolExhausted: + enabled: true + labels: + severity: alert + addressPoolUsage: + enabled: true + thresholds: + - percent: 75 + labels: + severity: warning + - percent: 85 + labels: + severity: warning + - percent: 95 + labels: + severity: alert + bgpSessionDown: + enabled: true + labels: + severity: alert + + extraAlerts: [] + + controller: + enabled: true + # -- Controller log level. Must be one of: `all`, `debug`, `info`, `warn`, `error` or `none` + logLevel: info + image: + repository: quay.io/metallb/controller + tag: + pullPolicy: + strategy: + type: RollingUpdate + serviceAccount: + create: true + name: "" + annotations: {} + securityContext: + runAsNonRoot: true + runAsUser: 65534 + fsGroup: 65534 + resources: {} + nodeSelector: {} + tolerations: [] + priorityClassName: "" + runtimeClassName: "" + affinity: {} + podAnnotations: {} + labels: {} + livenessProbe: + enabled: true + failureThreshold: 3 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + readinessProbe: + enabled: true + failureThreshold: 3 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + tlsMinVersion: "VersionTLS12" + tlsCipherSuites: "" + + extraContainers: [] + + speaker: + enabled: true + logLevel: debug + tolerateMaster: true + memberlist: + enabled: true + mlBindPort: 7946 + mlBindAddrOverride: "" + mlSecretKeyPath: "/etc/ml_secret_key" + excludeInterfaces: + enabled: true + ignoreExcludeLB: false + + image: + repository: quay.io/metallb/speaker + tag: + pullPolicy: + updateStrategy: + type: RollingUpdate + serviceAccount: + create: true + name: "" + annotations: {} + securityContext: {} + resources: {} + nodeSelector: {} + tolerations: [] + priorityClassName: "" + affinity: {} + runtimeClassName: "" + podAnnotations: {} + labels: + pod-security.kubernetes.io/enforce: privileged + pod-security.kubernetes.io/audit: privileged + pod-security.kubernetes.io/warn: privileged + livenessProbe: + enabled: true + failureThreshold: 3 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + readinessProbe: + enabled: true + failureThreshold: 3 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + startupProbe: + enabled: true + failureThreshold: 30 + periodSeconds: 5 + frr: + enabled: true + image: + repository: quay.io/frrouting/frr + tag: 9.0.2 + pullPolicy: + metricsPort: 7473 + resources: {} + reloader: + resources: {} + frrMetrics: + resources: {} + extraContainers: [] + crds: + enabled: true + validationFailurePolicy: Fail + frrk8s: + enabled: false diff --git a/nfs-client/templates/provisioner.yml b/nfs-client/templates/provisioner.yml index c76fe8c..b79da69 100644 --- a/nfs-client/templates/provisioner.yml +++ b/nfs-client/templates/provisioner.yml @@ -34,9 +34,9 @@ spec: - name: NFS_SERVER value: 192.168.20.253 - name: NFS_PATH - value: /mnt/user/k3s + value: /mnt/user/k3s-dev volumes: - name: nfs-client-ssd nfs: server: 192.168.20.253 - path: /mnt/user/k3s + path: /mnt/user/k3s-dev diff --git a/open-webui/templates/ingress.yaml b/open-webui/templates/ingress.yaml index 6331e92..9a5f14f 100644 --- a/open-webui/templates/ingress.yaml +++ b/open-webui/templates/ingress.yaml @@ -6,7 +6,7 @@ spec: entryPoints: - websecure routes: - - match: Host(`open-webui.durp.info`) && PathPrefix(`/`) + - match: Host(`open-webui.dev.durp.info`) && PathPrefix(`/`) kind: Rule services: - name: open-webui @@ -25,9 +25,9 @@ spec: issuerRef: name: letsencrypt-production kind: ClusterIssuer - commonName: "open-webui.durp.info" + commonName: "open-webui.dev.durp.info" dnsNames: - - "open-webui.durp.info" + - "open-webui.dev.durp.info" --- @@ -36,7 +36,7 @@ apiVersion: v1 metadata: name: open-webui-external-dns annotations: - external-dns.alpha.kubernetes.io/hostname: open-webui.durp.info + external-dns.alpha.kubernetes.io/hostname: open-webui.dev.durp.info spec: type: ExternalName - externalName: durp.info + externalName: dev.durp.info diff --git a/traefik/templates/ingress.yaml b/traefik/templates/ingress.yaml index a165566..8fb4d8d 100644 --- a/traefik/templates/ingress.yaml +++ b/traefik/templates/ingress.yaml @@ -6,7 +6,7 @@ spec: entryPoints: - websecure routes: - - match: Host(`traefik.internal.durp.info`) + - match: Host(`traefik.internal.dev.durp.info`) middlewares: - name: authentik-proxy-provider namespace: traefik @@ -14,7 +14,7 @@ spec: services: - name: api@internal kind: TraefikService - - match: Host(`traefik.internal.durp.info`) && PathPrefix(`/outpost.goauthentik.io`) + - match: Host(`traefik.internal.dev.durp.info`) && PathPrefix(`/outpost.goauthentik.io`) kind: Rule services: - name: ak-outpost-authentik-embedded-outpost @@ -34,6 +34,6 @@ spec: issuerRef: name: letsencrypt-production kind: ClusterIssuer - commonName: "traefik.internal.durp.info" + commonName: "traefik.internal.dev.durp.info" dnsNames: - - "traefik.internal.durp.info" \ No newline at end of file + - "traefik.internal.dev.durp.info" diff --git a/traefik/templates/middleware-chain.yaml b/traefik/templates/middleware-chain.yaml new file mode 100644 index 0000000..21ac202 --- /dev/null +++ b/traefik/templates/middleware-chain.yaml @@ -0,0 +1,8 @@ +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: internal-only +spec: + chain: + middlewares: + - name: whitelist diff --git a/traefik/templates/middlewares.yaml b/traefik/templates/middlewares.yaml index aaf45ab..bd625f6 100644 --- a/traefik/templates/middlewares.yaml +++ b/traefik/templates/middlewares.yaml @@ -26,9 +26,20 @@ apiVersion: traefik.containo.us/v1alpha1 kind: Middleware metadata: name: whitelist - namespace: traefik spec: ipWhiteList: sourceRange: - - 192.168.20.1/32 + - 192.168.0.0/16 - 10.0.0.0/8 + +--- + +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: traefik-real-ip +spec: + plugin: + traefik-real-ip: + excludednets: + - "1.1.1.1/24" diff --git a/traefik/values.yaml b/traefik/values.yaml index 362a574..3d304bc 100644 --- a/traefik/values.yaml +++ b/traefik/values.yaml @@ -502,6 +502,8 @@ traefik: - "--log.level=DEBUG" - --experimental.plugins.jwt.moduleName=github.com/traefik-plugins/traefik-jwt-plugin - --experimental.plugins.jwt.version=v0.7.0 + - --experimental.plugins.traefik-real-ip.moduleName=github.com/soulbalz/traefik-real-ip + - --experimental.plugins.traefik-real-ip.version=v1.0.3 # Environment variables to be passed to Traefik's binary @@ -578,9 +580,10 @@ traefik: redirectTo: websecure # # Trust forwarded headers information (X-Forwarded-*). - # forwardedHeaders: - # trustedIPs: [] - # insecure: false + forwardedHeaders: + trustedIPs: + - "192.168.10.1" + insecure: false # # Enable the Proxy Protocol header parsing for the entry point # proxyProtocol: @@ -608,9 +611,10 @@ traefik: # advertisedPort: 4443 # ## Trust forwarded headers information (X-Forwarded-*). - #forwardedHeaders: - # trustedIPs: [] - # insecure: false + forwardedHeaders: + trustedIPs: + - "192.168.10.1" + insecure: false # ## Enable the Proxy Protocol header parsing for the entry point #proxyProtocol: diff --git a/uptimekuma/templates/ingress.yaml b/uptimekuma/templates/ingress.yaml index 3df2689..24c683e 100644 --- a/uptimekuma/templates/ingress.yaml +++ b/uptimekuma/templates/ingress.yaml @@ -6,7 +6,7 @@ spec: entryPoints: - websecure routes: - - match: Host(`kuma.durp.info`) && PathPrefix(`/`) + - match: Host(`kuma.dev.durp.info`) && PathPrefix(`/`) middlewares: - name: authentik-proxy-provider namespace: traefik @@ -28,9 +28,9 @@ spec: issuerRef: name: letsencrypt-production kind: ClusterIssuer - commonName: "kuma.durp.info" + commonName: "kuma.dev.durp.info" dnsNames: - - "kuma.durp.info" + - "kuma.dev.durp.info" --- @@ -39,7 +39,7 @@ apiVersion: v1 metadata: name: heimdall-external-dns annotations: - external-dns.alpha.kubernetes.io/hostname: kuma.durp.info + external-dns.alpha.kubernetes.io/hostname: kuma.dev.durp.info spec: type: ExternalName - externalName: durp.info + externalName: dev.durp.info diff --git a/vault/templates/ingress.yaml b/vault/templates/ingress.yaml index 8998087..41802da 100644 --- a/vault/templates/ingress.yaml +++ b/vault/templates/ingress.yaml @@ -8,7 +8,7 @@ spec: entryPoints: - websecure routes: - - match: Host(`vault.internal.durp.info`) + - match: Host(`vault.internal.dev.durp.info`) middlewares: - name: whitelist namespace: traefik @@ -31,7 +31,7 @@ spec: issuerRef: name: letsencrypt-production kind: ClusterIssuer - commonName: "vault.internal.durp.info" + commonName: "vault.internal.dev.durp.info" dnsNames: - - "vault.internal.durp.info" + - "vault.internal.dev.durp.info" diff --git a/vault/values.yaml b/vault/values.yaml index d77a898..857f973 100644 --- a/vault/values.yaml +++ b/vault/values.yaml @@ -14,7 +14,7 @@ vault: injector: enabled: "-" - replicas: 3 + replicas: 2 leaderElector: enabled: true