Compare commits
133 Commits
dev
...
82ad8815f2
| Author | SHA1 | Date | |
|---|---|---|---|
| 82ad8815f2 | |||
| 5089d01c06 | |||
| f8f5f27cb0 | |||
| 4c2e87944c | |||
| b6fa1079b6 | |||
| f5ceac3ec1 | |||
| 1966f141dc | |||
| f8d0229580 | |||
| e36610cd49 | |||
| 0c27dd360c | |||
|
|
e7c28dde45 | ||
|
|
41cc7889af | ||
|
|
f8899caf78 | ||
|
|
b47edf477b | ||
| 54a82177f2 | |||
| f3684f197c | |||
| 5f693d0020 | |||
| 14a659df5b | |||
| 46724e763c | |||
| 33c5d25271 | |||
| 99006a8900 | |||
| a42b3e785d | |||
| c39f20e371 | |||
| dc324a2d8b | |||
| 2d4d3773b7 | |||
| 54e12aa8c1 | |||
| 47d4e5015e | |||
| e60030016e | |||
| 6645dd77f6 | |||
| f1f8a9e837 | |||
| 47214c5a93 | |||
| a1b05d6f8a | |||
| 8ca00e2715 | |||
| 7cbe7932f1 | |||
| 97d73b36c4 | |||
| 679742ab45 | |||
| 9b1680cfc8 | |||
| dd3ca7c9a4 | |||
| 4a67df78b3 | |||
| dde4eac238 | |||
| f9987ac705 | |||
| 6705352a10 | |||
| 599e86e1a9 | |||
| 4826c5beb6 | |||
| 1284e2ec60 | |||
| 7f6e182084 | |||
| a565952e0c | |||
| f64bdfbedd | |||
| e6a8aa74b4 | |||
| b1c45f939b | |||
| 3bfec1450f | |||
| d5224c0c7f | |||
| 4e37bfb8dc | |||
| 45ae3523b9 | |||
| 1151680f65 | |||
| 1aefb8163b | |||
| e935822058 | |||
| 49b23b1788 | |||
| bd2def6d46 | |||
| 10fcd43274 | |||
| 126c6e6f45 | |||
| 10ce90a460 | |||
| c3cd2c0b8b | |||
| 8b74b2efb6 | |||
| eecf949f86 | |||
| 2b951b2814 | |||
| a1293abaf6 | |||
| 5781c6ddda | |||
| 42fc48bb27 | |||
| 0f908a1460 | |||
| 1febc6915e | |||
| a99e0649dd | |||
| d28f17120b | |||
| 44d099ad9e | |||
| 5c866c2eb7 | |||
| 216cece298 | |||
| f16da3d3a8 | |||
| f12b7aa532 | |||
| 8ec254f59c | |||
| 33fd621ec8 | |||
| 89b8364fe5 | |||
| 52038a7585 | |||
| 885ab5e3d7 | |||
| 7843ae7c29 | |||
| e2d1e01708 | |||
| e8cafed885 | |||
| 62b7efad89 | |||
| 47ddf2fd28 | |||
| 31b689d5fe | |||
| 5ef03e6dbe | |||
| 38bb3538a3 | |||
| 8c77e53669 | |||
| 44aac27362 | |||
| 0f4048072d | |||
| b6f0c41d5d | |||
| 3259cd6f37 | |||
| 418162a9e0 | |||
| de022ea46b | |||
| a50214eafc | |||
| be2ee6274a | |||
| 1fbe3dbc95 | |||
| f8a13c4bff | |||
| c9d77c5eec | |||
| 3457eba0a2 | |||
| 738d19edfa | |||
| 23d397e5d4 | |||
| 10bfb6fd54 | |||
| 0ff6377bd6 | |||
| 8d92151ad3 | |||
| 3f74860c28 | |||
| f12af0f92f | |||
| 86a5af321d | |||
| 4a1e4f980d | |||
| bf6c021d8b | |||
| 0abc90d9cd | |||
| e2cabee7dd | |||
| 1f2fd56d89 | |||
| 785a256258 | |||
| 26c3a919c6 | |||
| 280298cc0a | |||
| f5b4c58367 | |||
| 0a3f3d99d7 | |||
| 21405024f7 | |||
| 61110282d5 | |||
| 5765f9b5d7 | |||
| f70c55dcf2 | |||
| b2212a6608 | |||
| 5e5a7b3803 | |||
| b1272fc052 | |||
| c2298c51b1 | |||
| 40e98020bb | |||
| 30331572e5 | |||
| ef367a7d10 |
@@ -1,36 +0,0 @@
|
|||||||
apiVersion: traefik.containo.us/v1alpha1
|
|
||||||
kind: IngressRoute
|
|
||||||
metadata:
|
|
||||||
name: argocd-ingress
|
|
||||||
annotations:
|
|
||||||
cert-manager.io/cluster-issuer: letsencrypt-production
|
|
||||||
spec:
|
|
||||||
entryPoints:
|
|
||||||
- websecure
|
|
||||||
routes:
|
|
||||||
- match: Host(`argocd.internal.dev.durp.info`)
|
|
||||||
middlewares:
|
|
||||||
- name: internal-only
|
|
||||||
namespace: traefik
|
|
||||||
kind: Rule
|
|
||||||
services:
|
|
||||||
- name: argocd-server
|
|
||||||
port: 443
|
|
||||||
scheme: https
|
|
||||||
tls:
|
|
||||||
secretName: argocd-tls
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: cert-manager.io/v1
|
|
||||||
kind: Certificate
|
|
||||||
metadata:
|
|
||||||
name: argocd-tls
|
|
||||||
spec:
|
|
||||||
secretName: argocd-tls
|
|
||||||
issuerRef:
|
|
||||||
name: letsencrypt-production
|
|
||||||
kind: ClusterIssuer
|
|
||||||
commonName: "argocd.internal.dev.durp.info"
|
|
||||||
dnsNames:
|
|
||||||
- "argocd.internal.dev.durp.info"
|
|
||||||
@@ -1,63 +0,0 @@
|
|||||||
apiVersion: traefik.containo.us/v1alpha1
|
|
||||||
kind: IngressRoute
|
|
||||||
metadata:
|
|
||||||
name: bitwarden-ingress
|
|
||||||
spec:
|
|
||||||
entryPoints:
|
|
||||||
- websecure
|
|
||||||
routes:
|
|
||||||
- match: Host(`bitwarden.dev.durp.info`) && PathPrefix(`/`)
|
|
||||||
kind: Rule
|
|
||||||
services:
|
|
||||||
- name: bitwarden
|
|
||||||
port: 80
|
|
||||||
tls:
|
|
||||||
secretName: bitwarden-tls
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: cert-manager.io/v1
|
|
||||||
kind: Certificate
|
|
||||||
metadata:
|
|
||||||
name: bitwarden-tls
|
|
||||||
spec:
|
|
||||||
secretName: bitwarden-tls
|
|
||||||
issuerRef:
|
|
||||||
name: letsencrypt-production
|
|
||||||
kind: ClusterIssuer
|
|
||||||
commonName: "bitwarden.dev.durp.info"
|
|
||||||
dnsNames:
|
|
||||||
- "bitwarden.dev.durp.info"
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
kind: Service
|
|
||||||
apiVersion: v1
|
|
||||||
metadata:
|
|
||||||
name: bitwarden-external-dns
|
|
||||||
annotations:
|
|
||||||
external-dns.alpha.kubernetes.io/hostname: bitwarden.dev.durp.info
|
|
||||||
spec:
|
|
||||||
type: ExternalName
|
|
||||||
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
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
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: {}
|
|
||||||
@@ -1,186 +0,0 @@
|
|||||||
# 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
|
|
||||||
|
|
||||||
101
dmz/internalproxy/templates/ollama.yaml
Normal file
101
dmz/internalproxy/templates/ollama.yaml
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
apiVersion: external-secrets.io/v1beta1
|
||||||
|
kind: ExternalSecret
|
||||||
|
metadata:
|
||||||
|
name: ollama-secret
|
||||||
|
spec:
|
||||||
|
secretStoreRef:
|
||||||
|
name: vault
|
||||||
|
kind: ClusterSecretStore
|
||||||
|
target:
|
||||||
|
name: ollama-secret
|
||||||
|
data:
|
||||||
|
- secretKey: users
|
||||||
|
remoteRef:
|
||||||
|
key: secrets/internalproxy/ollama
|
||||||
|
property: users
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
apiVersion: traefik.containo.us/v1alpha1
|
||||||
|
kind: Middleware
|
||||||
|
metadata:
|
||||||
|
name: ollama-basic-auth
|
||||||
|
spec:
|
||||||
|
basicAuth:
|
||||||
|
secret: ollama-secret
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: ollama
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: app
|
||||||
|
port: 11435
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 11435
|
||||||
|
clusterIP: None
|
||||||
|
type: ClusterIP
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Endpoints
|
||||||
|
metadata:
|
||||||
|
name: ollama
|
||||||
|
subsets:
|
||||||
|
- addresses:
|
||||||
|
- ip: 192.168.20.104
|
||||||
|
ports:
|
||||||
|
- name: app
|
||||||
|
port: 11435
|
||||||
|
protocol: TCP
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
apiVersion: traefik.containo.us/v1alpha1
|
||||||
|
kind: IngressRoute
|
||||||
|
metadata:
|
||||||
|
name: ollama-ingress
|
||||||
|
spec:
|
||||||
|
entryPoints:
|
||||||
|
- websecure
|
||||||
|
routes:
|
||||||
|
- match: Host(`ollama.durp.info`) && PathPrefix(`/`)
|
||||||
|
middlewares:
|
||||||
|
- name: ollama-basic-auth
|
||||||
|
kind: Rule
|
||||||
|
services:
|
||||||
|
- name: ollama
|
||||||
|
port: 11435
|
||||||
|
tls:
|
||||||
|
secretName: ollama-tls
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
apiVersion: cert-manager.io/v1
|
||||||
|
kind: Certificate
|
||||||
|
metadata:
|
||||||
|
name: ollama-tls
|
||||||
|
spec:
|
||||||
|
secretName: ollama-tls
|
||||||
|
issuerRef:
|
||||||
|
name: letsencrypt-production
|
||||||
|
kind: ClusterIssuer
|
||||||
|
commonName: "ollama.durp.info"
|
||||||
|
dnsNames:
|
||||||
|
- "ollama.durp.info"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
kind: Service
|
||||||
|
apiVersion: v1
|
||||||
|
metadata:
|
||||||
|
name: ollama-external-dns
|
||||||
|
annotations:
|
||||||
|
external-dns.alpha.kubernetes.io/hostname: ollama.durp.info
|
||||||
|
spec:
|
||||||
|
type: ExternalName
|
||||||
|
externalName: durp.info
|
||||||
@@ -1,277 +0,0 @@
|
|||||||
gatekeeper:
|
|
||||||
replicas: 3
|
|
||||||
revisionHistoryLimit: 10
|
|
||||||
auditInterval: 60
|
|
||||||
metricsBackends: ["prometheus"]
|
|
||||||
auditMatchKindOnly: false
|
|
||||||
constraintViolationsLimit: 20
|
|
||||||
auditFromCache: false
|
|
||||||
disableMutation: false
|
|
||||||
disableValidatingWebhook: false
|
|
||||||
validatingWebhookName: gatekeeper-validating-webhook-configuration
|
|
||||||
validatingWebhookTimeoutSeconds: 3
|
|
||||||
validatingWebhookFailurePolicy: Ignore
|
|
||||||
validatingWebhookAnnotations: {}
|
|
||||||
validatingWebhookExemptNamespacesLabels: {}
|
|
||||||
validatingWebhookObjectSelector: {}
|
|
||||||
validatingWebhookCheckIgnoreFailurePolicy: Fail
|
|
||||||
validatingWebhookCustomRules: {}
|
|
||||||
validatingWebhookURL: null
|
|
||||||
enableDeleteOperations: false
|
|
||||||
enableExternalData: true
|
|
||||||
enableGeneratorResourceExpansion: true
|
|
||||||
enableTLSHealthcheck: false
|
|
||||||
maxServingThreads: -1
|
|
||||||
mutatingWebhookName: gatekeeper-mutating-webhook-configuration
|
|
||||||
mutatingWebhookFailurePolicy: Ignore
|
|
||||||
mutatingWebhookReinvocationPolicy: Never
|
|
||||||
mutatingWebhookAnnotations: {}
|
|
||||||
mutatingWebhookExemptNamespacesLabels: {}
|
|
||||||
mutatingWebhookObjectSelector: {}
|
|
||||||
mutatingWebhookTimeoutSeconds: 1
|
|
||||||
mutatingWebhookCustomRules: {}
|
|
||||||
mutatingWebhookURL: null
|
|
||||||
mutationAnnotations: false
|
|
||||||
auditChunkSize: 500
|
|
||||||
logLevel: INFO
|
|
||||||
logDenies: false
|
|
||||||
logMutations: false
|
|
||||||
emitAdmissionEvents: false
|
|
||||||
emitAuditEvents: false
|
|
||||||
admissionEventsInvolvedNamespace: false
|
|
||||||
auditEventsInvolvedNamespace: false
|
|
||||||
resourceQuota: true
|
|
||||||
externaldataProviderResponseCacheTTL: 3m
|
|
||||||
image:
|
|
||||||
repository: openpolicyagent/gatekeeper
|
|
||||||
crdRepository: openpolicyagent/gatekeeper-crds
|
|
||||||
release: v3.15.0-beta.0
|
|
||||||
pullPolicy: Always
|
|
||||||
pullSecrets: []
|
|
||||||
preInstall:
|
|
||||||
crdRepository:
|
|
||||||
image:
|
|
||||||
repository: null
|
|
||||||
tag: v3.15.0-beta.0
|
|
||||||
postUpgrade:
|
|
||||||
labelNamespace:
|
|
||||||
enabled: false
|
|
||||||
image:
|
|
||||||
repository: openpolicyagent/gatekeeper-crds
|
|
||||||
tag: v3.15.0-beta.0
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
pullSecrets: []
|
|
||||||
extraNamespaces: []
|
|
||||||
podSecurity: ["pod-security.kubernetes.io/audit=restricted",
|
|
||||||
"pod-security.kubernetes.io/audit-version=latest",
|
|
||||||
"pod-security.kubernetes.io/warn=restricted",
|
|
||||||
"pod-security.kubernetes.io/warn-version=latest",
|
|
||||||
"pod-security.kubernetes.io/enforce=restricted",
|
|
||||||
"pod-security.kubernetes.io/enforce-version=v1.24"]
|
|
||||||
extraAnnotations: {}
|
|
||||||
priorityClassName: ""
|
|
||||||
affinity: {}
|
|
||||||
tolerations: []
|
|
||||||
nodeSelector: {kubernetes.io/os: linux}
|
|
||||||
resources: {}
|
|
||||||
securityContext:
|
|
||||||
allowPrivilegeEscalation: false
|
|
||||||
capabilities:
|
|
||||||
drop:
|
|
||||||
- ALL
|
|
||||||
readOnlyRootFilesystem: true
|
|
||||||
runAsGroup: 999
|
|
||||||
runAsNonRoot: true
|
|
||||||
runAsUser: 1000
|
|
||||||
postInstall:
|
|
||||||
labelNamespace:
|
|
||||||
enabled: true
|
|
||||||
extraRules: []
|
|
||||||
image:
|
|
||||||
repository: openpolicyagent/gatekeeper-crds
|
|
||||||
tag: v3.15.0-beta.0
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
pullSecrets: []
|
|
||||||
extraNamespaces: []
|
|
||||||
podSecurity: ["pod-security.kubernetes.io/audit=restricted",
|
|
||||||
"pod-security.kubernetes.io/audit-version=latest",
|
|
||||||
"pod-security.kubernetes.io/warn=restricted",
|
|
||||||
"pod-security.kubernetes.io/warn-version=latest",
|
|
||||||
"pod-security.kubernetes.io/enforce=restricted",
|
|
||||||
"pod-security.kubernetes.io/enforce-version=v1.24"]
|
|
||||||
extraAnnotations: {}
|
|
||||||
priorityClassName: ""
|
|
||||||
probeWebhook:
|
|
||||||
enabled: true
|
|
||||||
image:
|
|
||||||
repository: curlimages/curl
|
|
||||||
tag: 7.83.1
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
pullSecrets: []
|
|
||||||
waitTimeout: 60
|
|
||||||
httpTimeout: 2
|
|
||||||
insecureHTTPS: false
|
|
||||||
priorityClassName: ""
|
|
||||||
affinity: {}
|
|
||||||
tolerations: []
|
|
||||||
nodeSelector: {kubernetes.io/os: linux}
|
|
||||||
securityContext:
|
|
||||||
allowPrivilegeEscalation: false
|
|
||||||
capabilities:
|
|
||||||
drop:
|
|
||||||
- ALL
|
|
||||||
readOnlyRootFilesystem: true
|
|
||||||
runAsGroup: 999
|
|
||||||
runAsNonRoot: true
|
|
||||||
runAsUser: 1000
|
|
||||||
preUninstall:
|
|
||||||
deleteWebhookConfigurations:
|
|
||||||
extraRules: []
|
|
||||||
enabled: false
|
|
||||||
image:
|
|
||||||
repository: openpolicyagent/gatekeeper-crds
|
|
||||||
tag: v3.15.0-beta.0
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
pullSecrets: []
|
|
||||||
priorityClassName: ""
|
|
||||||
affinity: {}
|
|
||||||
tolerations: []
|
|
||||||
nodeSelector: {kubernetes.io/os: linux}
|
|
||||||
resources: {}
|
|
||||||
securityContext:
|
|
||||||
allowPrivilegeEscalation: false
|
|
||||||
capabilities:
|
|
||||||
drop:
|
|
||||||
- ALL
|
|
||||||
readOnlyRootFilesystem: true
|
|
||||||
runAsGroup: 999
|
|
||||||
runAsNonRoot: true
|
|
||||||
runAsUser: 1000
|
|
||||||
podAnnotations: {}
|
|
||||||
auditPodAnnotations: {}
|
|
||||||
podLabels: {}
|
|
||||||
podCountLimit: "100"
|
|
||||||
secretAnnotations: {}
|
|
||||||
enableRuntimeDefaultSeccompProfile: true
|
|
||||||
controllerManager:
|
|
||||||
exemptNamespaces: []
|
|
||||||
exemptNamespacePrefixes: []
|
|
||||||
hostNetwork: false
|
|
||||||
dnsPolicy: ClusterFirst
|
|
||||||
port: 8443
|
|
||||||
metricsPort: 8888
|
|
||||||
healthPort: 9090
|
|
||||||
readinessTimeout: 1
|
|
||||||
livenessTimeout: 1
|
|
||||||
priorityClassName: system-cluster-critical
|
|
||||||
disableCertRotation: false
|
|
||||||
tlsMinVersion: 1.3
|
|
||||||
clientCertName: ""
|
|
||||||
strategyType: RollingUpdate
|
|
||||||
affinity:
|
|
||||||
podAntiAffinity:
|
|
||||||
preferredDuringSchedulingIgnoredDuringExecution:
|
|
||||||
- podAffinityTerm:
|
|
||||||
labelSelector:
|
|
||||||
matchExpressions:
|
|
||||||
- key: gatekeeper.sh/operation
|
|
||||||
operator: In
|
|
||||||
values:
|
|
||||||
- webhook
|
|
||||||
topologyKey: kubernetes.io/hostname
|
|
||||||
weight: 100
|
|
||||||
topologySpreadConstraints: []
|
|
||||||
tolerations: []
|
|
||||||
nodeSelector: {kubernetes.io/os: linux}
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
memory: 512Mi
|
|
||||||
requests:
|
|
||||||
cpu: 100m
|
|
||||||
memory: 512Mi
|
|
||||||
securityContext:
|
|
||||||
allowPrivilegeEscalation: false
|
|
||||||
capabilities:
|
|
||||||
drop:
|
|
||||||
- ALL
|
|
||||||
readOnlyRootFilesystem: true
|
|
||||||
runAsGroup: 999
|
|
||||||
runAsNonRoot: true
|
|
||||||
runAsUser: 1000
|
|
||||||
podSecurityContext:
|
|
||||||
fsGroup: 999
|
|
||||||
supplementalGroups:
|
|
||||||
- 999
|
|
||||||
extraRules: []
|
|
||||||
networkPolicy:
|
|
||||||
enabled: false
|
|
||||||
ingress: { }
|
|
||||||
# - from:
|
|
||||||
# - ipBlock:
|
|
||||||
# cidr: 0.0.0.0/0
|
|
||||||
audit:
|
|
||||||
enablePubsub: false
|
|
||||||
connection: audit-connection
|
|
||||||
channel: audit-channel
|
|
||||||
hostNetwork: false
|
|
||||||
dnsPolicy: ClusterFirst
|
|
||||||
metricsPort: 8888
|
|
||||||
healthPort: 9090
|
|
||||||
readinessTimeout: 1
|
|
||||||
livenessTimeout: 1
|
|
||||||
priorityClassName: system-cluster-critical
|
|
||||||
disableCertRotation: false
|
|
||||||
affinity: {}
|
|
||||||
tolerations: []
|
|
||||||
nodeSelector: {kubernetes.io/os: linux}
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
memory: 512Mi
|
|
||||||
requests:
|
|
||||||
cpu: 100m
|
|
||||||
memory: 512Mi
|
|
||||||
securityContext:
|
|
||||||
allowPrivilegeEscalation: false
|
|
||||||
capabilities:
|
|
||||||
drop:
|
|
||||||
- ALL
|
|
||||||
readOnlyRootFilesystem: true
|
|
||||||
runAsGroup: 999
|
|
||||||
runAsNonRoot: true
|
|
||||||
runAsUser: 1000
|
|
||||||
podSecurityContext:
|
|
||||||
fsGroup: 999
|
|
||||||
supplementalGroups:
|
|
||||||
- 999
|
|
||||||
writeToRAMDisk: false
|
|
||||||
extraRules: []
|
|
||||||
crds:
|
|
||||||
affinity: {}
|
|
||||||
tolerations: []
|
|
||||||
nodeSelector: {kubernetes.io/os: linux}
|
|
||||||
resources: {}
|
|
||||||
securityContext:
|
|
||||||
allowPrivilegeEscalation: false
|
|
||||||
capabilities:
|
|
||||||
drop:
|
|
||||||
- ALL
|
|
||||||
readOnlyRootFilesystem: true
|
|
||||||
runAsGroup: 65532
|
|
||||||
runAsNonRoot: true
|
|
||||||
runAsUser: 65532
|
|
||||||
pdb:
|
|
||||||
controllerManager:
|
|
||||||
minAvailable: 1
|
|
||||||
service: {}
|
|
||||||
disabledBuiltins: ["{http.send}"]
|
|
||||||
psp:
|
|
||||||
enabled: true
|
|
||||||
upgradeCRDs:
|
|
||||||
enabled: true
|
|
||||||
extraRules: []
|
|
||||||
priorityClassName: ""
|
|
||||||
rbac:
|
|
||||||
create: true
|
|
||||||
externalCertInjection:
|
|
||||||
enabled: false
|
|
||||||
secretName: gatekeeper-webhook-server-cert
|
|
||||||
12
infra/argocd/Chart.yaml
Normal file
12
infra/argocd/Chart.yaml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
apiVersion: v2
|
||||||
|
name: argocd
|
||||||
|
description: A Helm chart for Kubernetes
|
||||||
|
type: application
|
||||||
|
|
||||||
|
version: 0.1.0
|
||||||
|
appVersion: "1.16.0"
|
||||||
|
|
||||||
|
dependencies:
|
||||||
|
- name: argo-cd
|
||||||
|
repository: https://argoproj.github.io/argo-helm
|
||||||
|
version: 6.11.1
|
||||||
64
infra/argocd/templates/argocd.yaml
Normal file
64
infra/argocd/templates/argocd.yaml
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: argocd
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
repoURL: https://gitlab.com/developerdurp/homelab.git
|
||||||
|
targetRevision: main
|
||||||
|
path: infra/argocd
|
||||||
|
destination:
|
||||||
|
namespace: argocd
|
||||||
|
name: in-cluster
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
#apiVersion: external-secrets.io/v1beta1
|
||||||
|
#kind: ExternalSecret
|
||||||
|
#metadata:
|
||||||
|
# name: vault-argocd
|
||||||
|
# labels:
|
||||||
|
# app.kubernetes.io/part-of: argocd
|
||||||
|
#spec:
|
||||||
|
# secretStoreRef:
|
||||||
|
# name: vault
|
||||||
|
# kind: ClusterSecretStore
|
||||||
|
# target:
|
||||||
|
# name: client-secret
|
||||||
|
# data:
|
||||||
|
# - secretKey: clientSecret
|
||||||
|
# remoteRef:
|
||||||
|
# key: secrets/argocd/authentik
|
||||||
|
# property: clientsecret
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
apiVersion: traefik.io/v1alpha1
|
||||||
|
kind: IngressRoute
|
||||||
|
metadata:
|
||||||
|
name: argocd-ingress
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/cluster-issuer: letsencrypt-production
|
||||||
|
spec:
|
||||||
|
entryPoints:
|
||||||
|
- websecure
|
||||||
|
routes:
|
||||||
|
- match: Host(`argocd.infra.durp.info`)
|
||||||
|
#middlewares:
|
||||||
|
# - name: whitelist
|
||||||
|
# namespace: traefik
|
||||||
|
kind: Rule
|
||||||
|
services:
|
||||||
|
- name: argocd-server
|
||||||
|
port: 443
|
||||||
|
scheme: https
|
||||||
|
#tls:
|
||||||
|
# secretName: argocd-tls
|
||||||
@@ -7,8 +7,8 @@ spec:
|
|||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.com/developerdurp/homelab.git
|
||||||
targetRevision: dev
|
targetRevision: main
|
||||||
path: longhorn
|
path: infra/longhorn
|
||||||
destination:
|
destination:
|
||||||
namespace: longhorn-system
|
namespace: longhorn-system
|
||||||
name: in-cluster
|
name: in-cluster
|
||||||
@@ -7,8 +7,8 @@ spec:
|
|||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.com/developerdurp/homelab.git
|
||||||
targetRevision: dev
|
targetRevision: main
|
||||||
path: metallb-system
|
path: infra/metallb-system
|
||||||
destination:
|
destination:
|
||||||
namespace: metallb-system
|
namespace: metallb-system
|
||||||
name: in-cluster
|
name: in-cluster
|
||||||
@@ -7,8 +7,8 @@ spec:
|
|||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.com/developerdurp/homelab.git
|
||||||
targetRevision: dev
|
targetRevision: main
|
||||||
path: traefik
|
path: infra/traefik
|
||||||
destination:
|
destination:
|
||||||
namespace: traefik
|
namespace: traefik
|
||||||
name: in-cluster
|
name: in-cluster
|
||||||
@@ -18,3 +18,4 @@ spec:
|
|||||||
selfHeal: true
|
selfHeal: true
|
||||||
syncOptions:
|
syncOptions:
|
||||||
- CreateNamespace=true
|
- CreateNamespace=true
|
||||||
|
|
||||||
@@ -1,16 +1,16 @@
|
|||||||
apiVersion: argoproj.io/v1alpha1
|
apiVersion: argoproj.io/v1alpha1
|
||||||
kind: Application
|
kind: Application
|
||||||
metadata:
|
metadata:
|
||||||
name: argocd
|
name: vault
|
||||||
namespace: argocd
|
namespace: argocd
|
||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.com/developerdurp/homelab.git
|
||||||
targetRevision: dev
|
targetRevision: main
|
||||||
path: argocd
|
path: infra/vault
|
||||||
destination:
|
destination:
|
||||||
namespace: argocd
|
namespace: vault
|
||||||
name: in-cluster
|
name: in-cluster
|
||||||
syncPolicy:
|
syncPolicy:
|
||||||
automated:
|
automated:
|
||||||
@@ -18,3 +18,4 @@ spec:
|
|||||||
selfHeal: true
|
selfHeal: true
|
||||||
syncOptions:
|
syncOptions:
|
||||||
- CreateNamespace=true
|
- CreateNamespace=true
|
||||||
|
|
||||||
@@ -1,10 +1,28 @@
|
|||||||
argo-cd:
|
argo-cd:
|
||||||
|
|
||||||
global:
|
global:
|
||||||
revisionHistoryLimit: 1
|
revisionHistoryLimit: 1
|
||||||
image:
|
image:
|
||||||
repository: registry.internal.durp.info/argoproj/argocd
|
repository: registry.internal.durp.info/argoproj/argocd
|
||||||
imagePullPolicy: Always
|
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:
|
dex:
|
||||||
enabled: true
|
enabled: true
|
||||||
image:
|
image:
|
||||||
@@ -15,13 +33,13 @@ argo-cd:
|
|||||||
cm:
|
cm:
|
||||||
create: true
|
create: true
|
||||||
annotations: {}
|
annotations: {}
|
||||||
url: https://argocd.dev.durp.info
|
url: https://argocd.internal.durp.info
|
||||||
oidc.tls.insecure.skip.verify: "true"
|
oidc.tls.insecure.skip.verify: "true"
|
||||||
dex.config: |
|
dex.config: |
|
||||||
connectors:
|
connectors:
|
||||||
- config:
|
- config:
|
||||||
issuer: https://authentik.dev.durp.info/application/o/argocd/
|
issuer: https://authentik.durp.info/application/o/argocd/
|
||||||
clientID: lKuMgyYaOlQMNAUSjsRVYgkwZG9UT6CeFWeTLAcl
|
clientID: dbb8ffc06104fb6e7fac3e4ae7fafb1d90437625
|
||||||
clientSecret: $client-secret:clientSecret
|
clientSecret: $client-secret:clientSecret
|
||||||
insecureEnableGroups: true
|
insecureEnableGroups: true
|
||||||
scopes:
|
scopes:
|
||||||
@@ -36,9 +54,9 @@ argo-cd:
|
|||||||
rbac:
|
rbac:
|
||||||
create: true
|
create: true
|
||||||
policy.csv: |
|
policy.csv: |
|
||||||
g, ArgoCD Admins, role:admin
|
g, ArgoCD Admins, role:admin
|
||||||
scopes: "[groups]"
|
scopes: "[groups]"
|
||||||
|
|
||||||
server:
|
server:
|
||||||
route:
|
route:
|
||||||
enabled: false
|
enabled: false
|
||||||
@@ -9,4 +9,4 @@ appVersion: "1.16.0"
|
|||||||
dependencies:
|
dependencies:
|
||||||
- name: longhorn
|
- name: longhorn
|
||||||
repository: https://charts.longhorn.io
|
repository: https://charts.longhorn.io
|
||||||
version: 1.7.0
|
version: 1.7.2
|
||||||
41
infra/longhorn/templates/ingress.yaml
Normal file
41
infra/longhorn/templates/ingress.yaml
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
#apiVersion: traefik.containo.us/v1alpha1
|
||||||
|
#kind: IngressRoute
|
||||||
|
#metadata:
|
||||||
|
# name: longhorn-ingress
|
||||||
|
#spec:
|
||||||
|
# entryPoints:
|
||||||
|
# - websecure
|
||||||
|
# routes:
|
||||||
|
# - match: Host(`longhorn.internal.durp.info`) && PathPrefix(`/`)
|
||||||
|
# middlewares:
|
||||||
|
# - name: whitelist
|
||||||
|
# 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`)
|
||||||
|
# kind: Rule
|
||||||
|
# services:
|
||||||
|
# - name: ak-outpost-authentik-embedded-outpost
|
||||||
|
# namespace: authentik
|
||||||
|
# port: 9000
|
||||||
|
# tls:
|
||||||
|
# secretName: longhorn-tls
|
||||||
|
#
|
||||||
|
#---
|
||||||
|
#
|
||||||
|
#apiVersion: cert-manager.io/v1
|
||||||
|
#kind: Certificate
|
||||||
|
#metadata:
|
||||||
|
# name: longhorn-tls
|
||||||
|
#spec:
|
||||||
|
# secretName: longhorn-tls
|
||||||
|
# issuerRef:
|
||||||
|
# name: letsencrypt-production
|
||||||
|
# kind: ClusterIssuer
|
||||||
|
# commonName: "longhorn.internal.durp.info"
|
||||||
|
# dnsNames:
|
||||||
|
# - "longhorn.internal.durp.info"
|
||||||
23
infra/longhorn/templates/secrets.yaml
Normal file
23
infra/longhorn/templates/secrets.yaml
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
#apiVersion: external-secrets.io/v1beta1
|
||||||
|
#kind: ExternalSecret
|
||||||
|
#metadata:
|
||||||
|
# name: external-longhorn-backup-token-secret
|
||||||
|
#spec:
|
||||||
|
# secretStoreRef:
|
||||||
|
# name: vault
|
||||||
|
# kind: ClusterSecretStore
|
||||||
|
# target:
|
||||||
|
# name: longhorn-backup-token-secret
|
||||||
|
# data:
|
||||||
|
# - secretKey: AWS_ACCESS_KEY_ID
|
||||||
|
# remoteRef:
|
||||||
|
# key: secrets/longhorn/backup
|
||||||
|
# property: AWS_ACCESS_KEY_ID
|
||||||
|
# - secretKey: AWS_ENDPOINTS
|
||||||
|
# remoteRef:
|
||||||
|
# key: secrets/longhorn/backup
|
||||||
|
# property: AWS_ENDPOINTS
|
||||||
|
# - secretKey: AWS_SECRET_ACCESS_KEY
|
||||||
|
# remoteRef:
|
||||||
|
# key: secrets/longhorn/backup
|
||||||
|
# property: AWS_SECRET_ACCESS_KEY
|
||||||
192
infra/longhorn/values.yaml
Normal file
192
infra/longhorn/values.yaml
Normal file
@@ -0,0 +1,192 @@
|
|||||||
|
longhorn:
|
||||||
|
global:
|
||||||
|
cattle:
|
||||||
|
systemDefaultRegistry: ""
|
||||||
|
|
||||||
|
image:
|
||||||
|
longhorn:
|
||||||
|
engine:
|
||||||
|
repository: longhornio/longhorn-engine
|
||||||
|
manager:
|
||||||
|
repository: longhornio/longhorn-manager
|
||||||
|
ui:
|
||||||
|
repository: longhornio/longhorn-ui
|
||||||
|
instanceManager:
|
||||||
|
repository: longhornio/longhorn-instance-manager
|
||||||
|
shareManager:
|
||||||
|
repository: longhornio/longhorn-share-manager
|
||||||
|
backingImageManager:
|
||||||
|
repository: longhornio/backing-image-manager
|
||||||
|
csi:
|
||||||
|
attacher:
|
||||||
|
repository: longhornio/csi-attacher
|
||||||
|
provisioner:
|
||||||
|
repository: longhornio/csi-provisioner
|
||||||
|
nodeDriverRegistrar:
|
||||||
|
repository: longhornio/csi-node-driver-registrar
|
||||||
|
resizer:
|
||||||
|
repository: longhornio/csi-resizer
|
||||||
|
snapshotter:
|
||||||
|
repository: longhornio/csi-snapshotter
|
||||||
|
pullPolicy: Always
|
||||||
|
|
||||||
|
service:
|
||||||
|
ui:
|
||||||
|
type: ClusterIP
|
||||||
|
nodePort: null
|
||||||
|
manager:
|
||||||
|
type: ClusterIP
|
||||||
|
nodePort: ""
|
||||||
|
loadBalancerIP: ""
|
||||||
|
loadBalancerSourceRanges: ""
|
||||||
|
|
||||||
|
persistence:
|
||||||
|
defaultClass: true
|
||||||
|
defaultFsType: ext4
|
||||||
|
defaultClassReplicaCount: 3
|
||||||
|
defaultDataLocality: disabled # best-effort otherwise
|
||||||
|
reclaimPolicy: Retain
|
||||||
|
migratable: false
|
||||||
|
recurringJobSelector:
|
||||||
|
enable: true
|
||||||
|
jobList: '[
|
||||||
|
{
|
||||||
|
"name":"backup",
|
||||||
|
"task":"backup",
|
||||||
|
"cron":"0 0 * * ?",
|
||||||
|
"retain":24
|
||||||
|
}
|
||||||
|
]'
|
||||||
|
backingImage:
|
||||||
|
enable: false
|
||||||
|
name: ~
|
||||||
|
dataSourceType: ~
|
||||||
|
dataSourceParameters: ~
|
||||||
|
expectedChecksum: ~
|
||||||
|
|
||||||
|
csi:
|
||||||
|
kubeletRootDir: ~
|
||||||
|
attacherReplicaCount: ~
|
||||||
|
provisionerReplicaCount: ~
|
||||||
|
resizerReplicaCount: ~
|
||||||
|
snapshotterReplicaCount: ~
|
||||||
|
|
||||||
|
defaultSettings:
|
||||||
|
backupTarget: S3://longhorn-infra@us-east-1/
|
||||||
|
backupTargetCredentialSecret: longhorn-backup-token-secret
|
||||||
|
allowRecurringJobWhileVolumeDetached: ~
|
||||||
|
createDefaultDiskLabeledNodes: ~
|
||||||
|
defaultDataPath: ~
|
||||||
|
defaultDataLocality: ~
|
||||||
|
replicaSoftAntiAffinity: ~
|
||||||
|
replicaAutoBalance: ~
|
||||||
|
storageOverProvisioningPercentage: ~
|
||||||
|
storageMinimalAvailablePercentage: ~
|
||||||
|
upgradeChecker: ~
|
||||||
|
defaultReplicaCount: ~
|
||||||
|
defaultLonghornStaticStorageClass: longhorn
|
||||||
|
backupstorePollInterval: ~
|
||||||
|
taintToleration: ~
|
||||||
|
systemManagedComponentsNodeSelector: ~
|
||||||
|
priorityClass: ~
|
||||||
|
autoSalvage: ~
|
||||||
|
autoDeletePodWhenVolumeDetachedUnexpectedly: ~
|
||||||
|
disableSchedulingOnCordonedNode: ~
|
||||||
|
replicaZoneSoftAntiAffinity: ~
|
||||||
|
nodeDownPodDeletionPolicy: ~
|
||||||
|
allowNodeDrainWithLastHealthyReplica: ~
|
||||||
|
mkfsExt4Parameters: ~
|
||||||
|
disableReplicaRebuild: ~
|
||||||
|
replicaReplenishmentWaitInterval: ~
|
||||||
|
concurrentReplicaRebuildPerNodeLimit: ~
|
||||||
|
disableRevisionCounter: ~
|
||||||
|
systemManagedPodsImagePullPolicy: ~
|
||||||
|
allowVolumeCreationWithDegradedAvailability: ~
|
||||||
|
autoCleanupSystemGeneratedSnapshot: ~
|
||||||
|
concurrentAutomaticEngineUpgradePerNodeLimit: ~
|
||||||
|
backingImageCleanupWaitInterval: ~
|
||||||
|
backingImageRecoveryWaitInterval: ~
|
||||||
|
guaranteedEngineManagerCPU: ~
|
||||||
|
guaranteedReplicaManagerCPU: ~
|
||||||
|
kubernetesClusterAutoscalerEnabled: ~
|
||||||
|
orphanAutoDeletion: ~
|
||||||
|
storageNetwork: ~
|
||||||
|
privateRegistry:
|
||||||
|
createSecret: ~
|
||||||
|
registryUrl: ~
|
||||||
|
registryUser: ~
|
||||||
|
registryPasswd: ~
|
||||||
|
registrySecret: ~
|
||||||
|
|
||||||
|
longhornManager:
|
||||||
|
priorityClass: ~
|
||||||
|
tolerations: []
|
||||||
|
## If you want to set tolerations for Longhorn Manager DaemonSet, delete the `[]` in the line above
|
||||||
|
## and uncomment this example block
|
||||||
|
# - key: "key"
|
||||||
|
# operator: "Equal"
|
||||||
|
# value: "value"
|
||||||
|
# effect: "NoSchedule"
|
||||||
|
nodeSelector: {}
|
||||||
|
## If you want to set node selector for Longhorn Manager DaemonSet, delete the `{}` in the line above
|
||||||
|
## and uncomment this example block
|
||||||
|
# label-key1: "label-value1"
|
||||||
|
# label-key2: "label-value2"
|
||||||
|
|
||||||
|
longhornDriver:
|
||||||
|
priorityClass: ~
|
||||||
|
tolerations: []
|
||||||
|
## If you want to set tolerations for Longhorn Driver Deployer Deployment, delete the `[]` in the line above
|
||||||
|
## and uncomment this example block
|
||||||
|
# - key: "key"
|
||||||
|
# operator: "Equal"
|
||||||
|
# value: "value"
|
||||||
|
# effect: "NoSchedule"
|
||||||
|
nodeSelector: {}
|
||||||
|
## If you want to set node selector for Longhorn Driver Deployer Deployment, delete the `{}` in the line above
|
||||||
|
## and uncomment this example block
|
||||||
|
# label-key1: "label-value1"
|
||||||
|
# label-key2: "label-value2"
|
||||||
|
|
||||||
|
longhornUI:
|
||||||
|
priorityClass: ~
|
||||||
|
tolerations: []
|
||||||
|
## If you want to set tolerations for Longhorn UI Deployment, delete the `[]` in the line above
|
||||||
|
## and uncomment this example block
|
||||||
|
# - key: "key"
|
||||||
|
# operator: "Equal"
|
||||||
|
# value: "value"
|
||||||
|
# effect: "NoSchedule"
|
||||||
|
nodeSelector: {}
|
||||||
|
## If you want to set node selector for Longhorn UI Deployment, delete the `{}` in the line above
|
||||||
|
## and uncomment this example block
|
||||||
|
# label-key1: "label-value1"
|
||||||
|
# label-key2: "label-value2"
|
||||||
|
|
||||||
|
resources: {}
|
||||||
|
# We usually recommend not to specify default resources and to leave this as a conscious
|
||||||
|
# choice for the user. This also increases chances charts run on environments with little
|
||||||
|
# resources, such as Minikube. If you do want to specify resources, uncomment the following
|
||||||
|
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
|
||||||
|
# limits:
|
||||||
|
# cpu: 100m
|
||||||
|
# memory: 128Mi
|
||||||
|
# requests:
|
||||||
|
# cpu: 100m
|
||||||
|
# memory: 128Mi
|
||||||
|
#
|
||||||
|
|
||||||
|
ingress:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
## Specify override namespace, specifically this is useful for using longhorn as sub-chart
|
||||||
|
## and its release namespace is not the `longhorn-system`
|
||||||
|
namespaceOverride: ""
|
||||||
|
|
||||||
|
# Annotations to add to the Longhorn Manager DaemonSet Pods. Optional.
|
||||||
|
annotations: {}
|
||||||
|
|
||||||
|
serviceAccount:
|
||||||
|
# Annotations to add to the service account
|
||||||
|
annotations: {}
|
||||||
|
|
||||||
@@ -9,4 +9,4 @@ appVersion: "1.16.0"
|
|||||||
dependencies:
|
dependencies:
|
||||||
- name: metallb
|
- name: metallb
|
||||||
repository: https://metallb.github.io/metallb
|
repository: https://metallb.github.io/metallb
|
||||||
version: 0.14.5
|
version: 0.14.9
|
||||||
@@ -4,7 +4,7 @@ metadata:
|
|||||||
name: cheap
|
name: cheap
|
||||||
spec:
|
spec:
|
||||||
addresses:
|
addresses:
|
||||||
- 192.168.10.110-192.168.10.120
|
- 192.168.12.130-192.168.12.140
|
||||||
---
|
---
|
||||||
apiVersion: metallb.io/v1beta1
|
apiVersion: metallb.io/v1beta1
|
||||||
kind: L2Advertisement
|
kind: L2Advertisement
|
||||||
@@ -14,3 +14,4 @@ metadata:
|
|||||||
spec:
|
spec:
|
||||||
ipAddressPools:
|
ipAddressPools:
|
||||||
- cheap
|
- cheap
|
||||||
|
|
||||||
@@ -8,4 +8,4 @@ appVersion: 0.0.1
|
|||||||
dependencies:
|
dependencies:
|
||||||
- name: traefik
|
- name: traefik
|
||||||
repository: https://traefik.github.io/charts
|
repository: https://traefik.github.io/charts
|
||||||
version: 22.1.0
|
version: 34.0.0
|
||||||
47
infra/traefik/values.yaml
Normal file
47
infra/traefik/values.yaml
Normal file
@@ -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"
|
||||||
@@ -8,5 +8,5 @@ appVersion: 0.0.1
|
|||||||
dependencies:
|
dependencies:
|
||||||
- name: vault
|
- name: vault
|
||||||
repository: https://helm.releases.hashicorp.com
|
repository: https://helm.releases.hashicorp.com
|
||||||
version: 0.27.0
|
version: 0.29.1
|
||||||
|
|
||||||
100
infra/vault/values.yaml
Normal file
100
infra/vault/values.yaml
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
vault:
|
||||||
|
global:
|
||||||
|
enabled: true
|
||||||
|
tlsDisable: false
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: 256Mi
|
||||||
|
cpu: 250m
|
||||||
|
limits:
|
||||||
|
memory: 256Mi
|
||||||
|
cpu: 250m
|
||||||
|
|
||||||
|
server:
|
||||||
|
image:
|
||||||
|
repository: "hashicorp/vault"
|
||||||
|
# These Resource Limits are in line with node requirements in the
|
||||||
|
# Vault Reference Architecture for a Small Cluster
|
||||||
|
#resources:
|
||||||
|
# requests:
|
||||||
|
# memory: 8Gi
|
||||||
|
# cpu: 2000m
|
||||||
|
# limits:
|
||||||
|
# memory: 16Gi
|
||||||
|
# cpu: 2000m
|
||||||
|
|
||||||
|
# For HA configuration and because we need to manually init the vault,
|
||||||
|
# we need to define custom readiness/liveness Probe settings
|
||||||
|
readinessProbe:
|
||||||
|
enabled: true
|
||||||
|
path: "/v1/sys/health?standbyok=true&sealedcode=204&uninitcode=204"
|
||||||
|
livenessProbe:
|
||||||
|
enabled: true
|
||||||
|
path: "/v1/sys/health?standbyok=true"
|
||||||
|
initialDelaySeconds: 60
|
||||||
|
|
||||||
|
# extraEnvironmentVars is a list of extra environment variables to set with the stateful set. These could be
|
||||||
|
# used to include variables required for auto-unseal.
|
||||||
|
extraEnvironmentVars:
|
||||||
|
VAULT_CACERT: /vault/userconfig/vault-server-tls/vault.ca
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- name: userconfig-vault-server-tls
|
||||||
|
secret:
|
||||||
|
defaultMode: 420
|
||||||
|
secretName: vault-server-tls
|
||||||
|
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /vault/userconfig/vault-server-tls
|
||||||
|
name: userconfig-vault-server-tls
|
||||||
|
readOnly: true
|
||||||
|
|
||||||
|
# This configures the Vault Statefulset to create a PVC for audit logs.
|
||||||
|
# See https://www.vaultproject.io/docs/audit/index.html to know more
|
||||||
|
auditStorage:
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
standalone:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
# Run Vault in "HA" mode.
|
||||||
|
ha:
|
||||||
|
enabled: true
|
||||||
|
replicas: 3
|
||||||
|
raft:
|
||||||
|
enabled: true
|
||||||
|
setNodeId: true
|
||||||
|
|
||||||
|
config: |
|
||||||
|
ui = true
|
||||||
|
cluster_name = "vault-integrated-storage"
|
||||||
|
listener "tcp" {
|
||||||
|
address = "[::]:8200"
|
||||||
|
cluster_address = "[::]:8201"
|
||||||
|
tls_cert_file = "/vault/userconfig/vault-server-tls/vault.crt"
|
||||||
|
tls_key_file = "/vault/userconfig/vault-server-tls/vault.key"
|
||||||
|
tls_client_ca_file = "/vault/userconfig/vault-server-tls/vault.ca"
|
||||||
|
}
|
||||||
|
|
||||||
|
storage "raft" {
|
||||||
|
path = "/vault/data"
|
||||||
|
retry_join {
|
||||||
|
leader_api_addr = "https://vault-0.vault-internal:8200"
|
||||||
|
leader_ca_cert_file = "/vault/userconfig/vault-server-tls/vault.ca"
|
||||||
|
leader_client_cert_file = "/vault/userconfig/vault-server-tls/vault.crt"
|
||||||
|
leader_client_key_file = "/vault/userconfig/vault-server-tls/vault.ca"
|
||||||
|
}
|
||||||
|
retry_join {
|
||||||
|
leader_api_addr = "https://vault-1.vault-internal:8200"
|
||||||
|
leader_ca_cert_file = "/vault/userconfig/vault-server-tls/vault.ca"
|
||||||
|
leader_client_cert_file = "/vault/userconfig/vault-server-tls/vault.crt"
|
||||||
|
leader_client_key_file = "/vault/userconfig/vault-server-tls/vault.ca"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Vault UI
|
||||||
|
ui:
|
||||||
|
enabled: true
|
||||||
|
serviceType: "LoadBalancer"
|
||||||
|
serviceNodePort: null
|
||||||
|
externalPort: 8200
|
||||||
@@ -9,6 +9,6 @@ appVersion: "1.16.0"
|
|||||||
dependencies:
|
dependencies:
|
||||||
- name: argo-cd
|
- name: argo-cd
|
||||||
repository: https://argoproj.github.io/argo-helm
|
repository: https://argoproj.github.io/argo-helm
|
||||||
version: 6.7.11
|
version: 6.11.1
|
||||||
|
|
||||||
|
|
||||||
@@ -7,8 +7,8 @@ spec:
|
|||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.com/developerdurp/homelab.git
|
||||||
targetRevision: dev
|
targetRevision: main
|
||||||
path: internalproxy
|
path: master/internalproxy
|
||||||
directory:
|
directory:
|
||||||
recurse: true
|
recurse: true
|
||||||
destination:
|
destination:
|
||||||
59
master/argocd/templates/argocd.yaml
Normal file
59
master/argocd/templates/argocd.yaml
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: argocd
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
repoURL: https://gitlab.com/developerdurp/homelab.git
|
||||||
|
targetRevision: main
|
||||||
|
path: master/argocd
|
||||||
|
destination:
|
||||||
|
namespace: argocd
|
||||||
|
name: in-cluster
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
apiVersion: traefik.io/v1alpha1
|
||||||
|
kind: IngressRoute
|
||||||
|
metadata:
|
||||||
|
name: argocd-ingress
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/cluster-issuer: letsencrypt-production
|
||||||
|
spec:
|
||||||
|
entryPoints:
|
||||||
|
- websecure
|
||||||
|
routes:
|
||||||
|
- match: Host(`argocd.internal.durp.info`)
|
||||||
|
middlewares:
|
||||||
|
- name: whitelist
|
||||||
|
namespace: traefik
|
||||||
|
kind: Rule
|
||||||
|
services:
|
||||||
|
- name: argocd-server
|
||||||
|
port: 443
|
||||||
|
scheme: https
|
||||||
|
tls:
|
||||||
|
secretName: argocd-tls
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
apiVersion: cert-manager.io/v1
|
||||||
|
kind: Certificate
|
||||||
|
metadata:
|
||||||
|
name: argocd-tls
|
||||||
|
spec:
|
||||||
|
secretName: argocd-tls
|
||||||
|
issuerRef:
|
||||||
|
name: letsencrypt-production
|
||||||
|
kind: ClusterIssuer
|
||||||
|
commonName: "argocd.internal.durp.info"
|
||||||
|
dnsNames:
|
||||||
|
- "argocd.internal.durp.info"
|
||||||
@@ -7,8 +7,8 @@ spec:
|
|||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.com/developerdurp/homelab.git
|
||||||
targetRevision: dev
|
targetRevision: main
|
||||||
path: authentik
|
path: master/authentik
|
||||||
destination:
|
destination:
|
||||||
namespace: authentik
|
namespace: authentik
|
||||||
name: in-cluster
|
name: in-cluster
|
||||||
@@ -7,8 +7,8 @@ spec:
|
|||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.com/developerdurp/homelab.git
|
||||||
targetRevision: dev
|
targetRevision: main
|
||||||
path: bitwarden
|
path: master/bitwarden
|
||||||
directory:
|
directory:
|
||||||
recurse: true
|
recurse: true
|
||||||
destination:
|
destination:
|
||||||
@@ -7,8 +7,8 @@ spec:
|
|||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.com/developerdurp/homelab.git
|
||||||
targetRevision: dev
|
targetRevision: main
|
||||||
path: cert-manager
|
path: master/cert-manager
|
||||||
destination:
|
destination:
|
||||||
namespace: cert-manager
|
namespace: cert-manager
|
||||||
name: in-cluster
|
name: in-cluster
|
||||||
@@ -7,8 +7,8 @@ spec:
|
|||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.com/developerdurp/homelab.git
|
||||||
targetRevision: dev
|
targetRevision: main
|
||||||
path: crossplane
|
path: master/crossplane
|
||||||
destination:
|
destination:
|
||||||
namespace: crossplane
|
namespace: crossplane
|
||||||
name: in-cluster
|
name: in-cluster
|
||||||
@@ -7,8 +7,8 @@ spec:
|
|||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.com/developerdurp/homelab.git
|
||||||
targetRevision: dev
|
targetRevision: main
|
||||||
path: durpapi
|
path: master/durpapi
|
||||||
destination:
|
destination:
|
||||||
namespace: durpapi
|
namespace: durpapi
|
||||||
name: in-cluster
|
name: in-cluster
|
||||||
@@ -7,8 +7,8 @@ spec:
|
|||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.com/developerdurp/homelab.git
|
||||||
targetRevision: dev
|
targetRevision: main
|
||||||
path: durpot
|
path: master/durpot
|
||||||
destination:
|
destination:
|
||||||
namespace: durpot
|
namespace: durpot
|
||||||
name: in-cluster
|
name: in-cluster
|
||||||
@@ -7,8 +7,8 @@ spec:
|
|||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.com/developerdurp/homelab.git
|
||||||
targetRevision: dev
|
targetRevision: main
|
||||||
path: external-dns
|
path: master/external-dns
|
||||||
destination:
|
destination:
|
||||||
namespace: external-dns
|
namespace: external-dns
|
||||||
name: in-cluster
|
name: in-cluster
|
||||||
@@ -7,8 +7,8 @@ spec:
|
|||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.com/developerdurp/homelab.git
|
||||||
targetRevision: dev
|
targetRevision: main
|
||||||
path: external-secrets
|
path: master/external-secrets
|
||||||
destination:
|
destination:
|
||||||
namespace: external-secrets
|
namespace: external-secrets
|
||||||
name: in-cluster
|
name: in-cluster
|
||||||
@@ -7,8 +7,8 @@ spec:
|
|||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.com/developerdurp/homelab.git
|
||||||
targetRevision: dev
|
targetRevision: main
|
||||||
path: gatekeeper
|
path: master/gatekeeper
|
||||||
destination:
|
destination:
|
||||||
namespace: gatekeeper
|
namespace: gatekeeper
|
||||||
name: in-cluster
|
name: in-cluster
|
||||||
@@ -7,8 +7,8 @@ spec:
|
|||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.com/developerdurp/homelab.git
|
||||||
targetRevision: dev
|
targetRevision: main
|
||||||
path: gitlab-runner
|
path: master/gitlab-runner
|
||||||
destination:
|
destination:
|
||||||
namespace: gitlab-runner
|
namespace: gitlab-runner
|
||||||
name: in-cluster
|
name: in-cluster
|
||||||
@@ -7,8 +7,8 @@ spec:
|
|||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.com/developerdurp/homelab.git
|
||||||
targetRevision: dev
|
targetRevision: main
|
||||||
path: heimdall
|
path: master/heimdall
|
||||||
destination:
|
destination:
|
||||||
namespace: heimdall
|
namespace: heimdall
|
||||||
name: in-cluster
|
name: in-cluster
|
||||||
@@ -7,8 +7,8 @@ spec:
|
|||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.com/developerdurp/homelab.git
|
||||||
targetRevision: dev
|
targetRevision: main
|
||||||
path: krakend
|
path: master/krakend
|
||||||
destination:
|
destination:
|
||||||
namespace: krakend
|
namespace: krakend
|
||||||
name: in-cluster
|
name: in-cluster
|
||||||
@@ -7,8 +7,8 @@ spec:
|
|||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.com/developerdurp/homelab.git
|
||||||
targetRevision: dev
|
targetRevision: main
|
||||||
path: kube-prometheus-stack
|
path: master/kube-prometheus-stack
|
||||||
destination:
|
destination:
|
||||||
namespace: kube-prometheus-stack
|
namespace: kube-prometheus-stack
|
||||||
name: in-cluster
|
name: in-cluster
|
||||||
@@ -7,8 +7,8 @@ spec:
|
|||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.com/developerdurp/homelab.git
|
||||||
targetRevision: dev
|
targetRevision: main
|
||||||
path: kubeclarity
|
path: master/kubeclarity
|
||||||
destination:
|
destination:
|
||||||
namespace: kubeclarity
|
namespace: kubeclarity
|
||||||
name: in-cluster
|
name: in-cluster
|
||||||
@@ -7,8 +7,8 @@ spec:
|
|||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.com/developerdurp/homelab.git
|
||||||
targetRevision: dev
|
targetRevision: main
|
||||||
path: littlelink
|
path: master/littlelink
|
||||||
directory:
|
directory:
|
||||||
recurse: true
|
recurse: true
|
||||||
destination:
|
destination:
|
||||||
21
master/argocd/templates/longhorn.yaml
Normal file
21
master/argocd/templates/longhorn.yaml
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: longhorn-system
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
repoURL: https://gitlab.com/developerdurp/homelab.git
|
||||||
|
targetRevision: main
|
||||||
|
path: master/longhorn
|
||||||
|
destination:
|
||||||
|
namespace: longhorn-system
|
||||||
|
name: in-cluster
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
|
|
||||||
22
master/argocd/templates/metallb-system.yaml
Normal file
22
master/argocd/templates/metallb-system.yaml
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: metallb-system
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
repoURL: https://gitlab.com/developerdurp/homelab.git
|
||||||
|
targetRevision: main
|
||||||
|
path: master/metallb-system
|
||||||
|
destination:
|
||||||
|
namespace: metallb-system
|
||||||
|
name: in-cluster
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
|
|
||||||
|
|
||||||
@@ -7,8 +7,8 @@ spec:
|
|||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.com/developerdurp/homelab.git
|
||||||
targetRevision: dev
|
targetRevision: main
|
||||||
path: nfs-client
|
path: master/nfs-client
|
||||||
directory:
|
directory:
|
||||||
recurse: true
|
recurse: true
|
||||||
destination:
|
destination:
|
||||||
@@ -7,8 +7,8 @@ spec:
|
|||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.com/developerdurp/homelab.git
|
||||||
targetRevision: dev
|
targetRevision: main
|
||||||
path: open-webui
|
path: master/open-webui
|
||||||
destination:
|
destination:
|
||||||
namespace: open-webui
|
namespace: open-webui
|
||||||
name: in-cluster
|
name: in-cluster
|
||||||
20
master/argocd/templates/traefik.yaml
Normal file
20
master/argocd/templates/traefik.yaml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: traefik
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
repoURL: https://gitlab.com/developerdurp/homelab.git
|
||||||
|
targetRevision: main
|
||||||
|
path: master/traefik
|
||||||
|
destination:
|
||||||
|
namespace: traefik
|
||||||
|
name: in-cluster
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
@@ -7,8 +7,8 @@ spec:
|
|||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.com/developerdurp/homelab.git
|
||||||
targetRevision: dev
|
targetRevision: main
|
||||||
path: uptimekuma
|
path: master/uptimekuma
|
||||||
directory:
|
directory:
|
||||||
recurse: true
|
recurse: true
|
||||||
destination:
|
destination:
|
||||||
@@ -7,19 +7,19 @@ spec:
|
|||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.com/developerdurp/homelab.git
|
||||||
targetRevision: dev
|
targetRevision: main
|
||||||
path: vault
|
path: master/vault
|
||||||
destination:
|
destination:
|
||||||
namespace: vault
|
namespace: vault
|
||||||
name: in-cluster
|
name: in-cluster
|
||||||
syncPolicy:
|
syncPolicy:
|
||||||
automated:
|
automated:
|
||||||
prune: true
|
prune: true
|
||||||
selfHeal: true
|
selfHeal: true
|
||||||
syncOptions:
|
syncOptions:
|
||||||
- CreateNamespace=true
|
- CreateNamespace=true
|
||||||
ignoreDifferences:
|
ignoreDifferences:
|
||||||
- group: admissionregistration.k8s.io
|
- group: admissionregistration.k8s.io
|
||||||
kind: MutatingWebhookConfiguration
|
kind: MutatingWebhookConfiguration
|
||||||
jqPathExpressions:
|
jqPathExpressions:
|
||||||
- .webhooks[]?.clientConfig.caBundle
|
- .webhooks[]?.clientConfig.caBundle
|
||||||
62
master/argocd/values.yaml
Normal file
62
master/argocd/values.yaml
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
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:
|
||||||
|
repository: registry.internal.durp.info/dexidp/dex
|
||||||
|
imagePullPolicy: Always
|
||||||
|
|
||||||
|
configs:
|
||||||
|
cm:
|
||||||
|
create: true
|
||||||
|
annotations: {}
|
||||||
|
url: https://argocd.internal.durp.info
|
||||||
|
oidc.tls.insecure.skip.verify: "true"
|
||||||
|
dex.config: |
|
||||||
|
connectors:
|
||||||
|
- config:
|
||||||
|
issuer: https://authentik.durp.info/application/o/argocd/
|
||||||
|
clientID: dbb8ffc06104fb6e7fac3e4ae7fafb1d90437625
|
||||||
|
clientSecret: $client-secret:clientSecret
|
||||||
|
insecureEnableGroups: true
|
||||||
|
scopes:
|
||||||
|
- openid
|
||||||
|
- profile
|
||||||
|
- email
|
||||||
|
- groups
|
||||||
|
name: authentik
|
||||||
|
type: oidc
|
||||||
|
id: authentik
|
||||||
|
|
||||||
|
rbac:
|
||||||
|
create: true
|
||||||
|
policy.csv: |
|
||||||
|
g, ArgoCD Admins, role:admin
|
||||||
|
scopes: "[groups]"
|
||||||
|
|
||||||
|
server:
|
||||||
|
route:
|
||||||
|
enabled: false
|
||||||
@@ -9,4 +9,4 @@ appVersion: "1.16.0"
|
|||||||
dependencies:
|
dependencies:
|
||||||
- name: authentik
|
- name: authentik
|
||||||
repository: https://charts.goauthentik.io
|
repository: https://charts.goauthentik.io
|
||||||
version: 2024.4.1
|
version: 2024.8.3
|
||||||
@@ -6,7 +6,7 @@ spec:
|
|||||||
entryPoints:
|
entryPoints:
|
||||||
- websecure
|
- websecure
|
||||||
routes:
|
routes:
|
||||||
- match: Host(`authentik.dev.durp.info`) && PathPrefix(`/`)
|
- match: Host(`authentik.durp.info`) && PathPrefix(`/`)
|
||||||
kind: Rule
|
kind: Rule
|
||||||
services:
|
services:
|
||||||
- name: authentik-server
|
- name: authentik-server
|
||||||
@@ -25,9 +25,9 @@ spec:
|
|||||||
issuerRef:
|
issuerRef:
|
||||||
name: letsencrypt-production
|
name: letsencrypt-production
|
||||||
kind: ClusterIssuer
|
kind: ClusterIssuer
|
||||||
commonName: "authentik.dev.durp.info"
|
commonName: "authentik.durp.info"
|
||||||
dnsNames:
|
dnsNames:
|
||||||
- "authentik.dev.durp.info"
|
- "authentik.durp.info"
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -1,8 +1,6 @@
|
|||||||
authentik:
|
authentik:
|
||||||
global:
|
global:
|
||||||
env:
|
env:
|
||||||
- name: AUTHENTIK_REDIS__DB
|
|
||||||
value: "1"
|
|
||||||
- name: AUTHENTIK_POSTGRESQL__PASSWORD
|
- name: AUTHENTIK_POSTGRESQL__PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
@@ -28,22 +26,17 @@ authentik:
|
|||||||
server:
|
server:
|
||||||
name: server
|
name: server
|
||||||
replicas: 3
|
replicas: 3
|
||||||
|
worker:
|
||||||
|
replicas: 3
|
||||||
postgresql:
|
postgresql:
|
||||||
enabled: true
|
enabled: true
|
||||||
image:
|
image:
|
||||||
registry: registry.internal.durp.info
|
registry: registry.internal.durp.info
|
||||||
repository: bitnami/postgresql
|
repository: bitnami/postgresql
|
||||||
pullPolicy: Always
|
pullPolicy: Always
|
||||||
auth:
|
postgresqlUsername: "authentik"
|
||||||
username: "authentik"
|
postgresqlDatabase: "authentik"
|
||||||
existingSecret: db-pass
|
existingSecret: db-pass
|
||||||
secretKeys:
|
|
||||||
adminPasswordKey: dbpass
|
|
||||||
userPasswordKey: dbpass
|
|
||||||
|
|
||||||
#postgresqlUsername: "authentik"
|
|
||||||
#postgresqlDatabase: "authentik"
|
|
||||||
#existingSecret: db-pass
|
|
||||||
persistence:
|
persistence:
|
||||||
enabled: true
|
enabled: true
|
||||||
storageClass: longhorn
|
storageClass: longhorn
|
||||||
@@ -51,6 +44,9 @@ authentik:
|
|||||||
- ReadWriteMany
|
- ReadWriteMany
|
||||||
redis:
|
redis:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
master:
|
||||||
|
persistence:
|
||||||
|
enabled: false
|
||||||
image:
|
image:
|
||||||
registry: registry.internal.durp.info
|
registry: registry.internal.durp.info
|
||||||
repository: bitnami/redis
|
repository: bitnami/redis
|
||||||
@@ -17,7 +17,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: bitwarden
|
- name: bitwarden
|
||||||
image: registry.internal.durp.info/vaultwarden/server:1.30.5
|
image: registry.internal.durp.info/vaultwarden/server:1.32.7
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: bitwarden-pvc
|
- name: bitwarden-pvc
|
||||||
@@ -28,7 +28,7 @@ spec:
|
|||||||
containerPort: 80
|
containerPort: 80
|
||||||
env:
|
env:
|
||||||
- name: SIGNUPS_ALLOWED
|
- name: SIGNUPS_ALLOWED
|
||||||
value: "TRUE"
|
value: "FALSE"
|
||||||
- name: INVITATIONS_ALLOWED
|
- name: INVITATIONS_ALLOWED
|
||||||
value: "FALSE"
|
value: "FALSE"
|
||||||
- name: WEBSOCKET_ENABLED
|
- name: WEBSOCKET_ENABLED
|
||||||
@@ -39,7 +39,7 @@ spec:
|
|||||||
value: "80"
|
value: "80"
|
||||||
- name: ROCKET_WORKERS
|
- name: ROCKET_WORKERS
|
||||||
value: "10"
|
value: "10"
|
||||||
- name: ADMIN_TOKEN
|
- name: SECRET_USERNAME
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: bitwarden-secret
|
name: bitwarden-secret
|
||||||
42
master/bitwarden/templates/ingress.yaml
Normal file
42
master/bitwarden/templates/ingress.yaml
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
apiVersion: traefik.containo.us/v1alpha1
|
||||||
|
kind: IngressRoute
|
||||||
|
metadata:
|
||||||
|
name: bitwarden-ingress
|
||||||
|
spec:
|
||||||
|
entryPoints:
|
||||||
|
- websecure
|
||||||
|
routes:
|
||||||
|
- match: Host(`bitwarden.durp.info`) && PathPrefix(`/`)
|
||||||
|
kind: Rule
|
||||||
|
services:
|
||||||
|
- name: bitwarden
|
||||||
|
port: 80
|
||||||
|
tls:
|
||||||
|
secretName: bitwarden-tls
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
apiVersion: cert-manager.io/v1
|
||||||
|
kind: Certificate
|
||||||
|
metadata:
|
||||||
|
name: bitwarden-tls
|
||||||
|
spec:
|
||||||
|
secretName: bitwarden-tls
|
||||||
|
issuerRef:
|
||||||
|
name: letsencrypt-production
|
||||||
|
kind: ClusterIssuer
|
||||||
|
commonName: "bitwarden.durp.info"
|
||||||
|
dnsNames:
|
||||||
|
- "bitwarden.durp.info"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
kind: Service
|
||||||
|
apiVersion: v1
|
||||||
|
metadata:
|
||||||
|
name: bitwarden-external-dns
|
||||||
|
annotations:
|
||||||
|
external-dns.alpha.kubernetes.io/hostname: bitwarden.durp.info
|
||||||
|
spec:
|
||||||
|
type: ExternalName
|
||||||
|
externalName: durp.info
|
||||||
@@ -8,4 +8,4 @@ appVersion: 0.0.1
|
|||||||
dependencies:
|
dependencies:
|
||||||
- name: cert-manager
|
- name: cert-manager
|
||||||
repository: https://charts.jetstack.io
|
repository: https://charts.jetstack.io
|
||||||
version: 1.*.*
|
version: v1.15.3
|
||||||
@@ -9,4 +9,4 @@ appVersion: "1.16.0"
|
|||||||
dependencies:
|
dependencies:
|
||||||
- name: crossplane
|
- name: crossplane
|
||||||
repository: https://charts.crossplane.io/stable
|
repository: https://charts.crossplane.io/stable
|
||||||
version: 1.16.0
|
version: 1.17.1
|
||||||
@@ -3,7 +3,7 @@ kind: Provider
|
|||||||
metadata:
|
metadata:
|
||||||
name: provider-gitlab
|
name: provider-gitlab
|
||||||
spec:
|
spec:
|
||||||
package: xpkg.upbound.io/crossplane-contrib/provider-gitlab:v0.7.0
|
package: xpkg.upbound.io/crossplane-contrib/provider-gitlab:v0.5.0
|
||||||
---
|
---
|
||||||
|
|
||||||
apiVersion: external-secrets.io/v1beta1
|
apiVersion: external-secrets.io/v1beta1
|
||||||
@@ -1,11 +1,13 @@
|
|||||||
apiVersion: v2
|
apiVersion: v2
|
||||||
type: application
|
|
||||||
version: 0.1.0-dev0192
|
|
||||||
description: A Helm chart for Kubernetes
|
|
||||||
appVersion: 0.1.0
|
|
||||||
name: durpapi
|
name: durpapi
|
||||||
|
description: A Helm chart for Kubernetes
|
||||||
|
type: application
|
||||||
|
|
||||||
|
version: 0.1.0-dev0184
|
||||||
|
appVersion: 0.1.0
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
- version: 12.5.*
|
- condition: postgresql.enabled
|
||||||
condition: postgresql.enabled
|
version: 12.5.*
|
||||||
repository: https://charts.bitnami.com/bitnami
|
repository: https://charts.bitnami.com/bitnami
|
||||||
name: postgresql
|
name: postgresql
|
||||||
@@ -6,7 +6,7 @@ spec:
|
|||||||
entryPoints:
|
entryPoints:
|
||||||
- websecure
|
- websecure
|
||||||
routes:
|
routes:
|
||||||
- match: Host("api.dev.durp.info") && PathPrefix(`/api`)
|
- match: Host("api.durp.info") && PathPrefix(`/api`)
|
||||||
kind: Rule
|
kind: Rule
|
||||||
middlewares:
|
middlewares:
|
||||||
- name: jwt
|
- name: jwt
|
||||||
@@ -24,7 +24,7 @@ spec:
|
|||||||
entryPoints:
|
entryPoints:
|
||||||
- websecure
|
- websecure
|
||||||
routes:
|
routes:
|
||||||
- match: Host("api.dev.durp.info") && PathPrefix(`/swagger`)
|
- match: Host("api.durp.info") && PathPrefix(`/swagger`)
|
||||||
kind: Rule
|
kind: Rule
|
||||||
services:
|
services:
|
||||||
- name: "durpapi-service"
|
- name: "durpapi-service"
|
||||||
@@ -42,4 +42,3 @@ spec:
|
|||||||
Required: true
|
Required: true
|
||||||
Keys:
|
Keys:
|
||||||
- https://authentik.durp.info/application/o/api/jwks
|
- https://authentik.durp.info/application/o/api/jwks
|
||||||
|
|
||||||
@@ -10,15 +10,15 @@ deployment:
|
|||||||
probe:
|
probe:
|
||||||
readiness:
|
readiness:
|
||||||
httpGet:
|
httpGet:
|
||||||
path: /api/health/gethealth
|
path: /health/gethealth
|
||||||
port: 8080
|
port: 8080
|
||||||
liveness:
|
liveness:
|
||||||
httpGet:
|
httpGet:
|
||||||
path: /api/health/gethealth
|
path: /health/gethealth
|
||||||
port: 8080
|
port: 8080
|
||||||
startup:
|
startup:
|
||||||
httpGet:
|
httpGet:
|
||||||
path: /api/health/gethealth
|
path: /health/gethealth
|
||||||
port: 8080
|
port: 8080
|
||||||
service:
|
service:
|
||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
@@ -9,4 +9,4 @@ appVersion: 0.0.1
|
|||||||
dependencies:
|
dependencies:
|
||||||
- name: external-dns
|
- name: external-dns
|
||||||
repository: https://charts.bitnami.com/bitnami
|
repository: https://charts.bitnami.com/bitnami
|
||||||
version: 6.20.3
|
version: 8.3.8
|
||||||
@@ -4,7 +4,7 @@ external-dns:
|
|||||||
|
|
||||||
image:
|
image:
|
||||||
pullPolicy: Always
|
pullPolicy: Always
|
||||||
txtPrefix: "dev-"
|
|
||||||
sources:
|
sources:
|
||||||
- service
|
- service
|
||||||
|
|
||||||
@@ -8,5 +8,5 @@ appVersion: 0.0.1
|
|||||||
dependencies:
|
dependencies:
|
||||||
- name: external-secrets
|
- name: external-secrets
|
||||||
repository: https://charts.external-secrets.io
|
repository: https://charts.external-secrets.io
|
||||||
version: 0.8.1
|
version: 0.10.4
|
||||||
|
|
||||||
@@ -8,4 +8,4 @@ appVersion: 0.0.1
|
|||||||
dependencies:
|
dependencies:
|
||||||
- name: gatekeeper
|
- name: gatekeeper
|
||||||
repository: https://open-policy-agent.github.io/gatekeeper/charts
|
repository: https://open-policy-agent.github.io/gatekeeper/charts
|
||||||
version: 3.14.0
|
version: 3.17.1
|
||||||
278
master/gatekeeper/values.yaml
Normal file
278
master/gatekeeper/values.yaml
Normal file
@@ -0,0 +1,278 @@
|
|||||||
|
#gatekeeper:
|
||||||
|
# replicas: 3
|
||||||
|
# revisionHistoryLimit: 10
|
||||||
|
# auditInterval: 60
|
||||||
|
# metricsBackends: ["prometheus"]
|
||||||
|
# auditMatchKindOnly: false
|
||||||
|
# constraintViolationsLimit: 20
|
||||||
|
# auditFromCache: false
|
||||||
|
# disableMutation: false
|
||||||
|
# disableValidatingWebhook: false
|
||||||
|
# validatingWebhookName: gatekeeper-validating-webhook-configuration
|
||||||
|
# validatingWebhookTimeoutSeconds: 3
|
||||||
|
# validatingWebhookFailurePolicy: Ignore
|
||||||
|
# validatingWebhookAnnotations: {}
|
||||||
|
# validatingWebhookExemptNamespacesLabels: {}
|
||||||
|
# validatingWebhookObjectSelector: {}
|
||||||
|
# validatingWebhookCheckIgnoreFailurePolicy: Fail
|
||||||
|
# validatingWebhookCustomRules: {}
|
||||||
|
# validatingWebhookURL: null
|
||||||
|
# enableDeleteOperations: false
|
||||||
|
# enableExternalData: true
|
||||||
|
# enableGeneratorResourceExpansion: true
|
||||||
|
# enableTLSHealthcheck: false
|
||||||
|
# maxServingThreads: -1
|
||||||
|
# mutatingWebhookName: gatekeeper-mutating-webhook-configuration
|
||||||
|
# mutatingWebhookFailurePolicy: Ignore
|
||||||
|
# mutatingWebhookReinvocationPolicy: Never
|
||||||
|
# mutatingWebhookAnnotations: {}
|
||||||
|
# mutatingWebhookExemptNamespacesLabels: {}
|
||||||
|
# mutatingWebhookObjectSelector: {}
|
||||||
|
# mutatingWebhookTimeoutSeconds: 1
|
||||||
|
# mutatingWebhookCustomRules: {}
|
||||||
|
# mutatingWebhookURL: null
|
||||||
|
# mutationAnnotations: false
|
||||||
|
# auditChunkSize: 500
|
||||||
|
# logLevel: INFO
|
||||||
|
# logDenies: false
|
||||||
|
# logMutations: false
|
||||||
|
# emitAdmissionEvents: false
|
||||||
|
# emitAuditEvents: false
|
||||||
|
# admissionEventsInvolvedNamespace: false
|
||||||
|
# auditEventsInvolvedNamespace: false
|
||||||
|
# resourceQuota: true
|
||||||
|
# externaldataProviderResponseCacheTTL: 3m
|
||||||
|
# image:
|
||||||
|
# repository: openpolicyagent/gatekeeper
|
||||||
|
# crdRepository: openpolicyagent/gatekeeper-crds
|
||||||
|
# release: v3.15.0-beta.0
|
||||||
|
# pullPolicy: Always
|
||||||
|
# pullSecrets: []
|
||||||
|
# preInstall:
|
||||||
|
# crdRepository:
|
||||||
|
# image:
|
||||||
|
# repository: null
|
||||||
|
# tag: v3.15.0-beta.0
|
||||||
|
# postUpgrade:
|
||||||
|
# labelNamespace:
|
||||||
|
# enabled: false
|
||||||
|
# image:
|
||||||
|
# repository: openpolicyagent/gatekeeper-crds
|
||||||
|
# tag: v3.15.0-beta.0
|
||||||
|
# pullPolicy: IfNotPresent
|
||||||
|
# pullSecrets: []
|
||||||
|
# extraNamespaces: []
|
||||||
|
# podSecurity: ["pod-security.kubernetes.io/audit=restricted",
|
||||||
|
# "pod-security.kubernetes.io/audit-version=latest",
|
||||||
|
# "pod-security.kubernetes.io/warn=restricted",
|
||||||
|
# "pod-security.kubernetes.io/warn-version=latest",
|
||||||
|
# "pod-security.kubernetes.io/enforce=restricted",
|
||||||
|
# "pod-security.kubernetes.io/enforce-version=v1.24"]
|
||||||
|
# extraAnnotations: {}
|
||||||
|
# priorityClassName: ""
|
||||||
|
# affinity: {}
|
||||||
|
# tolerations: []
|
||||||
|
# nodeSelector: {kubernetes.io/os: linux}
|
||||||
|
# resources: {}
|
||||||
|
# securityContext:
|
||||||
|
# allowPrivilegeEscalation: false
|
||||||
|
# capabilities:
|
||||||
|
# drop:
|
||||||
|
# - ALL
|
||||||
|
# readOnlyRootFilesystem: true
|
||||||
|
# runAsGroup: 999
|
||||||
|
# runAsNonRoot: true
|
||||||
|
# runAsUser: 1000
|
||||||
|
# postInstall:
|
||||||
|
# labelNamespace:
|
||||||
|
# enabled: true
|
||||||
|
# extraRules: []
|
||||||
|
# image:
|
||||||
|
# repository: openpolicyagent/gatekeeper-crds
|
||||||
|
# tag: v3.15.0-beta.0
|
||||||
|
# pullPolicy: IfNotPresent
|
||||||
|
# pullSecrets: []
|
||||||
|
# extraNamespaces: []
|
||||||
|
# podSecurity: ["pod-security.kubernetes.io/audit=restricted",
|
||||||
|
# "pod-security.kubernetes.io/audit-version=latest",
|
||||||
|
# "pod-security.kubernetes.io/warn=restricted",
|
||||||
|
# "pod-security.kubernetes.io/warn-version=latest",
|
||||||
|
# "pod-security.kubernetes.io/enforce=restricted",
|
||||||
|
# "pod-security.kubernetes.io/enforce-version=v1.24"]
|
||||||
|
# extraAnnotations: {}
|
||||||
|
# priorityClassName: ""
|
||||||
|
# probeWebhook:
|
||||||
|
# enabled: true
|
||||||
|
# image:
|
||||||
|
# repository: curlimages/curl
|
||||||
|
# tag: 7.83.1
|
||||||
|
# pullPolicy: IfNotPresent
|
||||||
|
# pullSecrets: []
|
||||||
|
# waitTimeout: 60
|
||||||
|
# httpTimeout: 2
|
||||||
|
# insecureHTTPS: false
|
||||||
|
# priorityClassName: ""
|
||||||
|
# affinity: {}
|
||||||
|
# tolerations: []
|
||||||
|
# nodeSelector: {kubernetes.io/os: linux}
|
||||||
|
# securityContext:
|
||||||
|
# allowPrivilegeEscalation: false
|
||||||
|
# capabilities:
|
||||||
|
# drop:
|
||||||
|
# - ALL
|
||||||
|
# readOnlyRootFilesystem: true
|
||||||
|
# runAsGroup: 999
|
||||||
|
# runAsNonRoot: true
|
||||||
|
# runAsUser: 1000
|
||||||
|
# preUninstall:
|
||||||
|
# deleteWebhookConfigurations:
|
||||||
|
# extraRules: []
|
||||||
|
# enabled: false
|
||||||
|
# image:
|
||||||
|
# repository: openpolicyagent/gatekeeper-crds
|
||||||
|
# tag: v3.15.0-beta.0
|
||||||
|
# pullPolicy: IfNotPresent
|
||||||
|
# pullSecrets: []
|
||||||
|
# priorityClassName: ""
|
||||||
|
# affinity: {}
|
||||||
|
# tolerations: []
|
||||||
|
# nodeSelector: {kubernetes.io/os: linux}
|
||||||
|
# resources: {}
|
||||||
|
# securityContext:
|
||||||
|
# allowPrivilegeEscalation: false
|
||||||
|
# capabilities:
|
||||||
|
# drop:
|
||||||
|
# - ALL
|
||||||
|
# readOnlyRootFilesystem: true
|
||||||
|
# runAsGroup: 999
|
||||||
|
# runAsNonRoot: true
|
||||||
|
# runAsUser: 1000
|
||||||
|
# podAnnotations: {}
|
||||||
|
# auditPodAnnotations: {}
|
||||||
|
# podLabels: {}
|
||||||
|
# podCountLimit: "100"
|
||||||
|
# secretAnnotations: {}
|
||||||
|
# enableRuntimeDefaultSeccompProfile: true
|
||||||
|
# controllerManager:
|
||||||
|
# exemptNamespaces: []
|
||||||
|
# exemptNamespacePrefixes: []
|
||||||
|
# hostNetwork: false
|
||||||
|
# dnsPolicy: ClusterFirst
|
||||||
|
# port: 8443
|
||||||
|
# metricsPort: 8888
|
||||||
|
# healthPort: 9090
|
||||||
|
# readinessTimeout: 1
|
||||||
|
# livenessTimeout: 1
|
||||||
|
# priorityClassName: system-cluster-critical
|
||||||
|
# disableCertRotation: false
|
||||||
|
# tlsMinVersion: 1.3
|
||||||
|
# clientCertName: ""
|
||||||
|
# strategyType: RollingUpdate
|
||||||
|
# affinity:
|
||||||
|
# podAntiAffinity:
|
||||||
|
# preferredDuringSchedulingIgnoredDuringExecution:
|
||||||
|
# - podAffinityTerm:
|
||||||
|
# labelSelector:
|
||||||
|
# matchExpressions:
|
||||||
|
# - key: gatekeeper.sh/operation
|
||||||
|
# operator: In
|
||||||
|
# values:
|
||||||
|
# - webhook
|
||||||
|
# topologyKey: kubernetes.io/hostname
|
||||||
|
# weight: 100
|
||||||
|
# topologySpreadConstraints: []
|
||||||
|
# tolerations: []
|
||||||
|
# nodeSelector: {kubernetes.io/os: linux}
|
||||||
|
# resources:
|
||||||
|
# limits:
|
||||||
|
# memory: 512Mi
|
||||||
|
# requests:
|
||||||
|
# cpu: 100m
|
||||||
|
# memory: 512Mi
|
||||||
|
# securityContext:
|
||||||
|
# allowPrivilegeEscalation: false
|
||||||
|
# capabilities:
|
||||||
|
# drop:
|
||||||
|
# - ALL
|
||||||
|
# readOnlyRootFilesystem: true
|
||||||
|
# runAsGroup: 999
|
||||||
|
# runAsNonRoot: true
|
||||||
|
# runAsUser: 1000
|
||||||
|
# podSecurityContext:
|
||||||
|
# fsGroup: 999
|
||||||
|
# supplementalGroups:
|
||||||
|
# - 999
|
||||||
|
# extraRules: []
|
||||||
|
# networkPolicy:
|
||||||
|
# enabled: false
|
||||||
|
# ingress: { }
|
||||||
|
# # - from:
|
||||||
|
# # - ipBlock:
|
||||||
|
# # cidr: 0.0.0.0/0
|
||||||
|
# audit:
|
||||||
|
# enablePubsub: false
|
||||||
|
# connection: audit-connection
|
||||||
|
# channel: audit-channel
|
||||||
|
# hostNetwork: false
|
||||||
|
# dnsPolicy: ClusterFirst
|
||||||
|
# metricsPort: 8888
|
||||||
|
# healthPort: 9090
|
||||||
|
# readinessTimeout: 1
|
||||||
|
# livenessTimeout: 1
|
||||||
|
# priorityClassName: system-cluster-critical
|
||||||
|
# disableCertRotation: false
|
||||||
|
# affinity: {}
|
||||||
|
# tolerations: []
|
||||||
|
# nodeSelector: {kubernetes.io/os: linux}
|
||||||
|
# resources:
|
||||||
|
# limits:
|
||||||
|
# memory: 512Mi
|
||||||
|
# requests:
|
||||||
|
# cpu: 100m
|
||||||
|
# memory: 512Mi
|
||||||
|
# securityContext:
|
||||||
|
# allowPrivilegeEscalation: false
|
||||||
|
# capabilities:
|
||||||
|
# drop:
|
||||||
|
# - ALL
|
||||||
|
# readOnlyRootFilesystem: true
|
||||||
|
# runAsGroup: 999
|
||||||
|
# runAsNonRoot: true
|
||||||
|
# runAsUser: 1000
|
||||||
|
# podSecurityContext:
|
||||||
|
# fsGroup: 999
|
||||||
|
# supplementalGroups:
|
||||||
|
# - 999
|
||||||
|
# writeToRAMDisk: false
|
||||||
|
# extraRules: []
|
||||||
|
# crds:
|
||||||
|
# affinity: {}
|
||||||
|
# tolerations: []
|
||||||
|
# nodeSelector: {kubernetes.io/os: linux}
|
||||||
|
# resources: {}
|
||||||
|
# securityContext:
|
||||||
|
# allowPrivilegeEscalation: false
|
||||||
|
# capabilities:
|
||||||
|
# drop:
|
||||||
|
# - ALL
|
||||||
|
# readOnlyRootFilesystem: true
|
||||||
|
# runAsGroup: 65532
|
||||||
|
# runAsNonRoot: true
|
||||||
|
# runAsUser: 65532
|
||||||
|
# pdb:
|
||||||
|
# controllerManager:
|
||||||
|
# minAvailable: 1
|
||||||
|
# service: {}
|
||||||
|
# disabledBuiltins: ["{http.send}"]
|
||||||
|
# psp:
|
||||||
|
# enabled: true
|
||||||
|
# upgradeCRDs:
|
||||||
|
# enabled: true
|
||||||
|
# extraRules: []
|
||||||
|
# priorityClassName: ""
|
||||||
|
# rbac:
|
||||||
|
# create: true
|
||||||
|
# externalCertInjection:
|
||||||
|
# enabled: false
|
||||||
|
# secretName: gatekeeper-webhook-server-cert
|
||||||
|
#
|
||||||
@@ -8,4 +8,4 @@ appVersion: 0.0.1
|
|||||||
dependencies:
|
dependencies:
|
||||||
- name: gitlab-runner
|
- name: gitlab-runner
|
||||||
repository: https://charts.gitlab.io/
|
repository: https://charts.gitlab.io/
|
||||||
version: 0.43.0
|
version: 0.69.0
|
||||||
4
master/gitlab-runner/Dockerfile
Normal file
4
master/gitlab-runner/Dockerfile
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
FROM ubuntu:latest
|
||||||
|
LABEL authors="user"
|
||||||
|
|
||||||
|
ENTRYPOINT ["top", "-b"]
|
||||||
@@ -8,4 +8,4 @@ appVersion: 0.0.1
|
|||||||
dependencies:
|
dependencies:
|
||||||
- name: heimdall
|
- name: heimdall
|
||||||
repository: https://djjudas21.github.io/charts/
|
repository: https://djjudas21.github.io/charts/
|
||||||
version: 8.5.2
|
version: 8.5.4
|
||||||
@@ -7,7 +7,7 @@ spec:
|
|||||||
entryPoints:
|
entryPoints:
|
||||||
- websecure
|
- websecure
|
||||||
routes:
|
routes:
|
||||||
- match: Host(`heimdall.dev.durp.info`) && PathPrefix(`/`)
|
- match: Host(`heimdall.durp.info`) && PathPrefix(`/`)
|
||||||
middlewares:
|
middlewares:
|
||||||
- name: authentik-proxy-provider
|
- name: authentik-proxy-provider
|
||||||
namespace: traefik
|
namespace: traefik
|
||||||
@@ -15,7 +15,7 @@ spec:
|
|||||||
services:
|
services:
|
||||||
- name: heimdall
|
- name: heimdall
|
||||||
port: 80
|
port: 80
|
||||||
- match: Host(`heimdall.dev.durp.info`) && PathPrefix(`/outpost.goauthentik.io`)
|
- match: Host(`heimdall.durp.info`) && PathPrefix(`/outpost.goauthentik.io`)
|
||||||
kind: Rule
|
kind: Rule
|
||||||
services:
|
services:
|
||||||
- name: ak-outpost-authentik-embedded-outpost
|
- name: ak-outpost-authentik-embedded-outpost
|
||||||
@@ -35,9 +35,9 @@ spec:
|
|||||||
issuerRef:
|
issuerRef:
|
||||||
name: letsencrypt-production
|
name: letsencrypt-production
|
||||||
kind: ClusterIssuer
|
kind: ClusterIssuer
|
||||||
commonName: "heimdall.dev.durp.info"
|
commonName: "heimdall.durp.info"
|
||||||
dnsNames:
|
dnsNames:
|
||||||
- "heimdall.dev.durp.info"
|
- "heimdall.durp.info"
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
46
master/internalproxy/templates/argocd.yaml
Normal file
46
master/internalproxy/templates/argocd.yaml
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
#apiVersion: traefik.io/v1alpha1
|
||||||
|
#kind: IngressRoute
|
||||||
|
#metadata:
|
||||||
|
# name: argocd-ingress
|
||||||
|
# annotations:
|
||||||
|
# cert-manager.io/cluster-issuer: letsencrypt-production
|
||||||
|
#spec:
|
||||||
|
# entryPoints:
|
||||||
|
# - websecure
|
||||||
|
# routes:
|
||||||
|
# - match: Host(`argocd.internal.durp.info`)
|
||||||
|
# middlewares:
|
||||||
|
# - name: whitelist
|
||||||
|
# namespace: traefik
|
||||||
|
# kind: Rule
|
||||||
|
# services:
|
||||||
|
# - name: argocd-server
|
||||||
|
# port: 443
|
||||||
|
# scheme: https
|
||||||
|
# tls:
|
||||||
|
# secretName: argocd-tls
|
||||||
|
#
|
||||||
|
#---
|
||||||
|
#
|
||||||
|
#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:
|
||||||
|
# name: argocd-tls
|
||||||
|
#spec:
|
||||||
|
# secretName: argocd-tls
|
||||||
|
# issuerRef:
|
||||||
|
# name: letsencrypt-production
|
||||||
|
# kind: ClusterIssuer
|
||||||
|
# commonName: "argocd.internal.durp.info"
|
||||||
|
# dnsNames:
|
||||||
|
# - "argocd.internal.durp.info"
|
||||||
63
master/internalproxy/templates/blueiris.yaml
Normal file
63
master/internalproxy/templates/blueiris.yaml
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: blueiris
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: app
|
||||||
|
port: 81
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 81
|
||||||
|
clusterIP: None
|
||||||
|
type: ClusterIP
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Endpoints
|
||||||
|
metadata:
|
||||||
|
name: blueiris
|
||||||
|
subsets:
|
||||||
|
- addresses:
|
||||||
|
- ip: 192.168.99.2
|
||||||
|
ports:
|
||||||
|
- name: app
|
||||||
|
port: 81
|
||||||
|
protocol: TCP
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
apiVersion: traefik.containo.us/v1alpha1
|
||||||
|
kind: IngressRoute
|
||||||
|
metadata:
|
||||||
|
name: blueiris-ingress
|
||||||
|
spec:
|
||||||
|
entryPoints:
|
||||||
|
- websecure
|
||||||
|
routes:
|
||||||
|
- match: Host(`blueiris.internal.durp.info`) && PathPrefix(`/`)
|
||||||
|
middlewares:
|
||||||
|
- name: whitelist
|
||||||
|
namespace: traefik
|
||||||
|
kind: Rule
|
||||||
|
services:
|
||||||
|
- name: blueiris
|
||||||
|
port: 81
|
||||||
|
scheme: http
|
||||||
|
tls:
|
||||||
|
secretName: blueiris-tls
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
apiVersion: cert-manager.io/v1
|
||||||
|
kind: Certificate
|
||||||
|
metadata:
|
||||||
|
name: blueiris-tls
|
||||||
|
spec:
|
||||||
|
secretName: blueiris-tls
|
||||||
|
issuerRef:
|
||||||
|
name: letsencrypt-production
|
||||||
|
kind: ClusterIssuer
|
||||||
|
commonName: "blueiris.internal.durp.info"
|
||||||
|
dnsNames:
|
||||||
|
- "blueiris.internal.durp.info"
|
||||||
70
master/internalproxy/templates/duplicati-ingress.yaml
Normal file
70
master/internalproxy/templates/duplicati-ingress.yaml
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
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"
|
||||||
72
master/internalproxy/templates/gitea.yaml
Normal file
72
master/internalproxy/templates/gitea.yaml
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: gitea
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: app
|
||||||
|
port: 3000
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 3000
|
||||||
|
clusterIP: None
|
||||||
|
type: ClusterIP
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Endpoints
|
||||||
|
metadata:
|
||||||
|
name: gitea
|
||||||
|
subsets:
|
||||||
|
- addresses:
|
||||||
|
- ip: 192.168.20.253
|
||||||
|
ports:
|
||||||
|
- name: app
|
||||||
|
port: 3000
|
||||||
|
protocol: TCP
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
apiVersion: traefik.containo.us/v1alpha1
|
||||||
|
kind: IngressRoute
|
||||||
|
metadata:
|
||||||
|
name: gitea-ingress
|
||||||
|
spec:
|
||||||
|
entryPoints:
|
||||||
|
- websecure
|
||||||
|
routes:
|
||||||
|
- match: Host(`gitea.durp.info`) && PathPrefix(`/`)
|
||||||
|
kind: Rule
|
||||||
|
services:
|
||||||
|
- name: gitea
|
||||||
|
port: 3000
|
||||||
|
scheme: http
|
||||||
|
tls:
|
||||||
|
secretName: gitea-tls
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
apiVersion: cert-manager.io/v1
|
||||||
|
kind: Certificate
|
||||||
|
metadata:
|
||||||
|
name: gitea-tls
|
||||||
|
spec:
|
||||||
|
secretName: gitea-tls
|
||||||
|
issuerRef:
|
||||||
|
name: letsencrypt-production
|
||||||
|
kind: ClusterIssuer
|
||||||
|
commonName: "gitea.durp.info"
|
||||||
|
dnsNames:
|
||||||
|
- "gitea.durp.info"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
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
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user