init
This commit is contained in:
11
clusters/cl01tl/deployment/argo-rollouts/Chart.yaml
Normal file
11
clusters/cl01tl/deployment/argo-rollouts/Chart.yaml
Normal file
@@ -0,0 +1,11 @@
|
||||
apiVersion: v2
|
||||
name: argo-rollouts
|
||||
version: 1.0.0
|
||||
sources:
|
||||
- https://github.com/argoproj/argo-rollouts
|
||||
- https://github.com/argoproj/argo-helm/tree/main/charts
|
||||
dependencies:
|
||||
- name: argo-rollouts
|
||||
version: 2.35.2
|
||||
repository: https://argoproj.github.io/argo-helm
|
||||
appVersion: v1.6.6
|
45
clusters/cl01tl/deployment/argo-rollouts/values.yaml
Normal file
45
clusters/cl01tl/deployment/argo-rollouts/values.yaml
Normal file
@@ -0,0 +1,45 @@
|
||||
argo-rollouts:
|
||||
controller:
|
||||
metrics:
|
||||
enabled: true
|
||||
serviceMonitor:
|
||||
enabled: true
|
||||
namespace: argocd
|
||||
dashboard:
|
||||
enabled: true
|
||||
ingress:
|
||||
enabled: true
|
||||
annotations:
|
||||
traefik.ingress.kubernetes.io/router.entrypoints: websecure
|
||||
traefik.ingress.kubernetes.io/router.tls: "true"
|
||||
cert-manager.io/cluster-issuer: letsencrypt-issuer
|
||||
ingressClassName: traefik
|
||||
hosts:
|
||||
- argo-rollouts.alexlebens.net
|
||||
tls:
|
||||
- secretName: argo-rollouts-secret-tls
|
||||
hosts:
|
||||
- argo-rollouts.alexlebens.net
|
||||
|
||||
notifications:
|
||||
notifiers: {}
|
||||
# service.slack: |
|
||||
# token: $slack-token
|
||||
|
||||
# -- Notification templates
|
||||
templates: {}
|
||||
# template.my-purple-template: |
|
||||
# message: |
|
||||
# Rollout {{.rollout.metadata.name}} has purple image
|
||||
# slack:
|
||||
# attachments: |
|
||||
# [{
|
||||
# "title": "{{ .rollout.metadata.name}}",
|
||||
# "color": "#800080"
|
||||
# }]
|
||||
|
||||
# -- The trigger defines the condition when the notification should be sent
|
||||
triggers: {}
|
||||
# trigger.on-purple: |
|
||||
# - send: [my-purple-template]
|
||||
# when: rollout.spec.template.spec.containers[0].image == 'argoproj/rollouts-demo:purple'
|
20
clusters/cl01tl/deployment/argo-workflows/Chart.yaml
Normal file
20
clusters/cl01tl/deployment/argo-workflows/Chart.yaml
Normal file
@@ -0,0 +1,20 @@
|
||||
apiVersion: v2
|
||||
name: argo-workflows
|
||||
version: 1.0.0
|
||||
sources:
|
||||
- https://github.com/argoproj/argo-workflows
|
||||
- https://github.com/argoproj/argo-events
|
||||
- https://github.com/argoproj/argo-helm/tree/main/charts
|
||||
- https://github.com/alexlebens/helm-charts/charts/postgres-cluster
|
||||
dependencies:
|
||||
- name: argo-workflows
|
||||
version: 0.41.4
|
||||
repository: https://argoproj.github.io/argo-helm
|
||||
- name: argo-events
|
||||
version: 2.4.4
|
||||
repository: https://argoproj.github.io/argo-helm
|
||||
- name: postgres-cluster
|
||||
alias: postgres-16-cluster
|
||||
version: 3.0.0
|
||||
repository: http://alexlebens.github.io/helm-charts
|
||||
appVersion: v3.5.6
|
@@ -0,0 +1,62 @@
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: argo-workflows-oidc-secret
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
app.kubernetes.io/name: argo-workflows-oidc-secret
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion }}
|
||||
app.kubernetes.io/component: web
|
||||
app.kubernetes.io/part-of: {{ .Release.Name }}
|
||||
spec:
|
||||
secretStoreRef:
|
||||
kind: ClusterSecretStore
|
||||
name: vault
|
||||
data:
|
||||
- secretKey: secret
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: /authentik/oidc/argo-workflows
|
||||
metadataPolicy: None
|
||||
property: secret
|
||||
- secretKey: client
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: /authentik/oidc/argo-workflows
|
||||
metadataPolicy: None
|
||||
property: client
|
||||
|
||||
---
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: argo-workflows-postgresql-16-cluster-backup-secret
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
app.kubernetes.io/name: argo-workflows-postgresql-16-cluster-backup-secret
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion }}
|
||||
app.kubernetes.io/component: database
|
||||
app.kubernetes.io/part-of: {{ .Release.Name }}
|
||||
spec:
|
||||
secretStoreRef:
|
||||
kind: ClusterSecretStore
|
||||
name: vault
|
||||
data:
|
||||
- secretKey: ACCESS_KEY_ID
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: /aws/keys/cl01tl-argo-workflows-postgresql
|
||||
metadataPolicy: None
|
||||
property: access_key
|
||||
- secretKey: ACCESS_SECRET_KEY
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: /aws/keys/cl01tl-argo-workflows-postgresql
|
||||
metadataPolicy: None
|
||||
property: secret_key
|
121
clusters/cl01tl/deployment/argo-workflows/values.yaml
Normal file
121
clusters/cl01tl/deployment/argo-workflows/values.yaml
Normal file
@@ -0,0 +1,121 @@
|
||||
argo-workflows:
|
||||
controller:
|
||||
metricsConfig:
|
||||
enabled: true
|
||||
persistence:
|
||||
connectionPool:
|
||||
maxIdleConns: 100
|
||||
maxOpenConns: 0
|
||||
nodeStatusOffLoad: true
|
||||
archive: true
|
||||
postgresql:
|
||||
host: argo-workflows-postgresql-16-cluster-rw
|
||||
port: 5432
|
||||
database: app
|
||||
tableName: app
|
||||
userNameSecret:
|
||||
name: argo-workflows-postgresql-16-cluster-app
|
||||
key: username
|
||||
passwordSecret:
|
||||
name: argo-workflows-postgresql-16-cluster-app
|
||||
key: password
|
||||
ssl: false
|
||||
sslMode: disable
|
||||
workflowWorkers: 2
|
||||
workflowTTLWorkers: 1
|
||||
podCleanupWorkers: 1
|
||||
cronWorkflowWorkers: 1
|
||||
telemetryConfig:
|
||||
enabled: true
|
||||
serviceMonitor:
|
||||
enabled: true
|
||||
name: workflow-controller
|
||||
workflowNamespaces:
|
||||
- argocd
|
||||
server:
|
||||
authModes:
|
||||
- sso
|
||||
ingress:
|
||||
enabled: true
|
||||
annotations:
|
||||
traefik.ingress.kubernetes.io/router.entrypoints: websecure
|
||||
traefik.ingress.kubernetes.io/router.tls: "true"
|
||||
cert-manager.io/cluster-issuer: letsencrypt-issuer
|
||||
ingressClassName: traefik
|
||||
hosts:
|
||||
- argo-workflows.alexlebens.net
|
||||
tls:
|
||||
- secretName: argoworkflows-example-tls
|
||||
hosts:
|
||||
- argo-workflows.alexlebens.net
|
||||
sso:
|
||||
enabled: true
|
||||
issuer: https://authentik.alexlebens.net/application/o/argo-workflows/
|
||||
clientId:
|
||||
name: argo-workflows-oidc-secret
|
||||
key: client
|
||||
clientSecret:
|
||||
name: argo-workflows-oidc-secret
|
||||
key: secret
|
||||
redirectUrl: https://argo-workflows.alexlebens.net/oauth2/callback
|
||||
rbac:
|
||||
enabled: false
|
||||
scopes:
|
||||
- openid
|
||||
- email
|
||||
- profile
|
||||
useStaticCredentials: true
|
||||
artifactRepository:
|
||||
archiveLogs: false
|
||||
s3: {}
|
||||
# accessKeySecret:
|
||||
# name: "{{ .Release.Name }}-minio"
|
||||
# key: accesskey
|
||||
# secretKeySecret:
|
||||
# name: "{{ .Release.Name }}-minio"
|
||||
# key: secretkey
|
||||
# insecure: true
|
||||
# bucket:
|
||||
# endpoint:
|
||||
# region:
|
||||
# encryptionOptions:
|
||||
# enableEncryption: true
|
||||
|
||||
argo-events:
|
||||
global:
|
||||
image:
|
||||
repository: quay.io/argoproj/argo-events
|
||||
tag: v1.9.1
|
||||
controller:
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 512Mi
|
||||
requests:
|
||||
cpu: 250m
|
||||
memory: 256Mi
|
||||
metrics:
|
||||
enabled: true
|
||||
serviceMonitor:
|
||||
enabled: true
|
||||
namespace: argocd
|
||||
webhook:
|
||||
enabled: true
|
||||
postgres-16-cluster:
|
||||
mode: standalone
|
||||
cluster:
|
||||
walStorage:
|
||||
storageClass: local-path
|
||||
storage:
|
||||
storageClass: local-path
|
||||
monitoring:
|
||||
enabled: true
|
||||
prometheusRule:
|
||||
enabled: true
|
||||
backup:
|
||||
enabled: true
|
||||
endpointURL: https://s3.us-east-2.amazonaws.com
|
||||
destinationPath: s3://cl01tl-postgresql-backups/argo-workflows
|
||||
endpointCredentials: argo-workflows-postgresql-16-cluster-backup-secret
|
||||
backupIndex: 1
|
||||
retentionPolicy: 14d
|
12
clusters/cl01tl/deployment/argocd/Chart.yaml
Normal file
12
clusters/cl01tl/deployment/argocd/Chart.yaml
Normal file
@@ -0,0 +1,12 @@
|
||||
apiVersion: v2
|
||||
name: argocd
|
||||
version: 0.1.0
|
||||
home: https://outline.alexlebens.net/doc/argo-cd-qLEdrgdwOD
|
||||
sources:
|
||||
- https://github.com/argoproj/argo-cd
|
||||
- https://github.com/argoproj/argo-helm/tree/main/charts/argo-cd
|
||||
dependencies:
|
||||
- name: argo-cd
|
||||
version: 6.9.3
|
||||
repository: https://argoproj.github.io/argo-helm
|
||||
appVersion: v2.10.8
|
110
clusters/cl01tl/deployment/argocd/templates/external-secret.yaml
Normal file
110
clusters/cl01tl/deployment/argocd/templates/external-secret.yaml
Normal file
@@ -0,0 +1,110 @@
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: argocd-oidc-secret
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
app.kubernetes.io/name: "{{ .Release.Name }}-server"
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion }}
|
||||
app.kubernetes.io/component: server
|
||||
app.kubernetes.io/part-of: {{ .Release.Name }}
|
||||
spec:
|
||||
secretStoreRef:
|
||||
kind: ClusterSecretStore
|
||||
name: vault
|
||||
data:
|
||||
- secretKey: secret
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: /authentik/oidc/argocd
|
||||
metadataPolicy: None
|
||||
property: secret
|
||||
- secretKey: client
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: /authentik/oidc/argocd
|
||||
metadataPolicy: None
|
||||
property: client
|
||||
|
||||
---
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: argocd-cluster-cl02do-secret
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
app.kubernetes.io/name: "{{ .Release.Name }}-server"
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion }}
|
||||
app.kubernetes.io/component: server
|
||||
app.kubernetes.io/part-of: {{ .Release.Name }}
|
||||
argocd.argoproj.io/secret-type: cluster
|
||||
spec:
|
||||
secretStoreRef:
|
||||
kind: ClusterSecretStore
|
||||
name: vault
|
||||
data:
|
||||
- secretKey: name
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: /argocd/credentials/cluster/cl02do
|
||||
metadataPolicy: None
|
||||
property: name
|
||||
- secretKey: server
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: /argocd/credentials/cluster/cl02do
|
||||
metadataPolicy: None
|
||||
property: server
|
||||
- secretKey: config
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: /argocd/credentials/cluster/cl02do
|
||||
metadataPolicy: None
|
||||
property: config
|
||||
|
||||
---
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: argocd-repo-alexlebens-dev-secret
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
app.kubernetes.io/name: "{{ .Release.Name }}-server"
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion }}
|
||||
app.kubernetes.io/component: server
|
||||
app.kubernetes.io/part-of: {{ .Release.Name }}
|
||||
argocd.argoproj.io/secret-type: repository
|
||||
spec:
|
||||
secretStoreRef:
|
||||
kind: ClusterSecretStore
|
||||
name: vault
|
||||
data:
|
||||
- secretKey: type
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: /argocd/credentials/repo/alexlebens-dev
|
||||
metadataPolicy: None
|
||||
property: type
|
||||
- secretKey: url
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: /argocd/credentials/repo/alexlebens-dev
|
||||
metadataPolicy: None
|
||||
property: url
|
||||
- secretKey: sshPrivateKey
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: /argocd/credentials/repo/alexlebens-dev
|
||||
metadataPolicy: None
|
||||
property: sshPrivateKey
|
66
clusters/cl01tl/deployment/argocd/values.yaml
Normal file
66
clusters/cl01tl/deployment/argocd/values.yaml
Normal file
@@ -0,0 +1,66 @@
|
||||
argo-cd:
|
||||
crds:
|
||||
install: true
|
||||
configs:
|
||||
cm:
|
||||
admin.enabled: true
|
||||
url: https://argocd.alexlebens.net
|
||||
statusbadge.enabled: true
|
||||
dex.config: |
|
||||
connectors:
|
||||
- config:
|
||||
issuer: https://authentik.alexlebens.net/application/o/argocd/
|
||||
clientID: $argocd-oidc-secret:client
|
||||
clientSecret: $argocd-oidc-secret:secret
|
||||
insecureEnableGroups: true
|
||||
scopes:
|
||||
- openid
|
||||
- profile
|
||||
- email
|
||||
- groups
|
||||
name: authentik
|
||||
type: oidc
|
||||
id: authentik
|
||||
rbac:
|
||||
policy.csv: |
|
||||
g, ArgoCD Admins, role:admin
|
||||
params:
|
||||
server.insecure: true
|
||||
server:
|
||||
replicas: 2
|
||||
ingress:
|
||||
enabled: true
|
||||
controller: generic
|
||||
ingressClassName: traefik
|
||||
annotations:
|
||||
traefik.ingress.kubernetes.io/router.entrypoints: websecure
|
||||
traefik.ingress.kubernetes.io/router.tls: "true"
|
||||
cert-manager.io/cluster-issuer: letsencrypt-issuer
|
||||
hostname: argocd.alexlebens.net
|
||||
tls: true
|
||||
metrics:
|
||||
enabled: true
|
||||
serviceMonitor:
|
||||
enabled: true
|
||||
dex:
|
||||
enabled: true
|
||||
redis-ha:
|
||||
enabled: true
|
||||
controller:
|
||||
replicas: 1
|
||||
metrics:
|
||||
enabled: true
|
||||
serviceMonitor:
|
||||
enabled: true
|
||||
repoServer:
|
||||
replicas: 2
|
||||
metrics:
|
||||
enabled: true
|
||||
serviceMonitor:
|
||||
enabled: true
|
||||
applicationSet:
|
||||
replicas: 2
|
||||
metrics:
|
||||
enabled: true
|
||||
serviceMonitor:
|
||||
enabled: true
|
11
clusters/cl01tl/deployment/kargo/Chart.yaml
Normal file
11
clusters/cl01tl/deployment/kargo/Chart.yaml
Normal file
@@ -0,0 +1,11 @@
|
||||
apiVersion: v2
|
||||
name: kargo
|
||||
version: 1.0.0
|
||||
sources:
|
||||
- https://github.com/akuity/kargo
|
||||
- https://github.com/akuity/kargo/blob/main/charts/kargo/Chart.yaml
|
||||
dependencies:
|
||||
- name: kargo
|
||||
version: 0.6.0
|
||||
repository: oci://ghcr.io/akuity/kargo-charts
|
||||
appVersion: v0.5.1
|
@@ -0,0 +1,56 @@
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: kargo-oidc-secret
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
app.kubernetes.io/name: kargo-oidc-secret
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion }}
|
||||
app.kubernetes.io/component: web
|
||||
app.kubernetes.io/part-of: {{ .Release.Name }}
|
||||
spec:
|
||||
secretStoreRef:
|
||||
kind: ClusterSecretStore
|
||||
name: vault
|
||||
data:
|
||||
- secretKey: CLIENT_SECRET
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: /authentik/oidc/kargo
|
||||
metadataPolicy: None
|
||||
property: secret
|
||||
- secretKey: CLIENT_ID
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: /authentik/oidc/kargo
|
||||
metadataPolicy: None
|
||||
property: client
|
||||
|
||||
---
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: kargo-cluster-cl02do-secret
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
app.kubernetes.io/name: kargo-cluster-cl02do-secret
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion }}
|
||||
app.kubernetes.io/component: web
|
||||
app.kubernetes.io/part-of: {{ .Release.Name }}
|
||||
argocd.argoproj.io/secret-type: cluster
|
||||
spec:
|
||||
secretStoreRef:
|
||||
kind: ClusterSecretStore
|
||||
name: vault
|
||||
data:
|
||||
- secretKey: kubeconfig
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: /argocd/credentials/cluster/cl02do
|
||||
metadataPolicy: None
|
||||
property: kubeconfig
|
120
clusters/cl01tl/deployment/kargo/values.yaml
Normal file
120
clusters/cl01tl/deployment/kargo/values.yaml
Normal file
@@ -0,0 +1,120 @@
|
||||
kargo:
|
||||
api:
|
||||
host: kargo.alexlebens.net
|
||||
resources:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
tls:
|
||||
enabled: false
|
||||
ingress:
|
||||
enabled: true
|
||||
annotations:
|
||||
traefik.ingress.kubernetes.io/router.entrypoints: websecure
|
||||
traefik.ingress.kubernetes.io/router.tls: "true"
|
||||
cert-manager.io/cluster-issuer: letsencrypt-issuer
|
||||
ingressClassName: traefik
|
||||
tls:
|
||||
enabled: true
|
||||
selfSignedCert: false
|
||||
adminAccount:
|
||||
enabled: false
|
||||
oidc:
|
||||
enabled: true
|
||||
admins:
|
||||
groups: ["ArgoCD Admins"]
|
||||
dex:
|
||||
enabled: true
|
||||
image:
|
||||
repository: ghcr.io/dexidp/dex
|
||||
tag: v2.39.1
|
||||
env:
|
||||
- name: CLIENT_ID
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: kargo-oidc-secret
|
||||
key: CLIENT_ID
|
||||
- name: CLIENT_SECRET
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: kargo-oidc-secret
|
||||
key: CLIENT_SECRET
|
||||
tls:
|
||||
selfSignedCert: false
|
||||
skipApprovalScreen: true
|
||||
connectors:
|
||||
- type: oidc
|
||||
id: authentik
|
||||
name: Authentik
|
||||
config:
|
||||
issuer: https://authentik.alexlebens.net/application/o/kargo/
|
||||
clientID: "$CLIENT_ID"
|
||||
clientSecret: "$CLIENT_SECRET"
|
||||
redirectURI: https://kargo.alexlebens.net/dex/callback
|
||||
insecureEnableGroups: true
|
||||
scopes:
|
||||
- openid
|
||||
- profile
|
||||
- email
|
||||
- groups
|
||||
resources:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
argocd:
|
||||
urls:
|
||||
"": https://argocd.alexlebens.net
|
||||
rollouts:
|
||||
integrationEnabled: true
|
||||
controller:
|
||||
enabled: true
|
||||
gitClient:
|
||||
name: "Kargo cl01tl"
|
||||
email: "alexanderlebens@gmail.com"
|
||||
argocd:
|
||||
integrationEnabled: true
|
||||
rollouts:
|
||||
integrationEnabled: true
|
||||
resources:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
managementController:
|
||||
enabled: true
|
||||
resources:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
webhooks:
|
||||
register: true
|
||||
webhooksServer:
|
||||
tls:
|
||||
selfSignedCert: true
|
||||
resources:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
garbageCollector:
|
||||
schedule: "0 * * * *"
|
||||
resources:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
6
clusters/cl01tl/deployment/stack/Chart.yaml
Normal file
6
clusters/cl01tl/deployment/stack/Chart.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
apiVersion: v2
|
||||
name: stack
|
||||
version: 1.0.0
|
||||
sources:
|
||||
- https://github.com/alexlebens/alexlebens-net.git
|
||||
appVersion: 1.0.0
|
@@ -0,0 +1,55 @@
|
||||
{{- range $index, $stack := .Values.applicationSet }}
|
||||
---
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: ApplicationSet
|
||||
metadata:
|
||||
name: {{ $stack.name }}
|
||||
namespace: {{ $.Release.Namespace }}
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ $stack.name }}
|
||||
app.kubernetes.io/instance: {{ $stack.name }}
|
||||
app.kubernetes.io/version: {{ $.Chart.AppVersion }}
|
||||
app.kubernetes.io/component: {{ $stack.name }}
|
||||
app.kubernetes.io/part-of: {{ $.Release.Name }}
|
||||
spec:
|
||||
syncPolicy:
|
||||
applicationsSync: create-only
|
||||
preserveResourcesOnDeletion: true
|
||||
generators:
|
||||
- git:
|
||||
repoURL: {{ $.Values.git.repo }}
|
||||
revision: {{ $.Values.git.revision }}
|
||||
directories:
|
||||
- path: "{{ $.Values.git.path }}/{{ $stack.name }}/*"
|
||||
template:
|
||||
metadata:
|
||||
name: '{{ `{{path.basename}}` }}'
|
||||
finalizers:
|
||||
- resources-finalizer.argocd.argoproj.io
|
||||
spec:
|
||||
destination:
|
||||
name: in-cluster
|
||||
namespace: '{{ $stack.namespace | default `{{path.basename}}` }}'
|
||||
project: default
|
||||
revisionHistoryLimit: 3
|
||||
source:
|
||||
repoURL: {{ $.Values.git.repo }}
|
||||
targetRevision: {{ $.Values.git.revision }}
|
||||
path: '{{ `{{path}}` }}'
|
||||
ignoreDifferences:
|
||||
{{- toYaml $stack.ignoreDifferences | nindent 8 }}
|
||||
syncPolicy:
|
||||
{{- if $stack.syncPolicy.automated.enabled }}
|
||||
automated:
|
||||
prune: {{ $stack.syncPolicy.automated.prune | default false }}
|
||||
selfHeal: {{ $stack.syncPolicy.automated.selfHeal | default false }}
|
||||
{{- end }}
|
||||
retry:
|
||||
limit: 3
|
||||
backoff:
|
||||
duration: 1m
|
||||
factor: 2
|
||||
maxDuration: 15m
|
||||
syncOptions:
|
||||
{{- toYaml $stack.syncPolicy.syncOptions | nindent 10 }}
|
||||
{{- end }}
|
82
clusters/cl01tl/deployment/stack/templates/application.yaml
Normal file
82
clusters/cl01tl/deployment/stack/templates/application.yaml
Normal file
@@ -0,0 +1,82 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: cilium
|
||||
namespace: {{ .Release.Namespace }}
|
||||
finalizers:
|
||||
- resources-finalizer.argocd.argoproj.io
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: {{ .Values.application.cilium.source.repo }}
|
||||
targetRevision: {{ .Values.application.cilium.source.revision }}
|
||||
path: "{{ .Values.git.path }}/{{ .Values.application.cilium.source.path }}"
|
||||
destination:
|
||||
name: in-cluster
|
||||
namespace: {{ .Values.application.cilium.namespace }}
|
||||
revisionHistoryLimit: 3
|
||||
syncPolicy:
|
||||
{{- toYaml .Values.application.cilium.syncPolicy | nindent 4 }}
|
||||
|
||||
---
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: metrics-server
|
||||
namespace: {{ .Release.Namespace }}
|
||||
finalizers:
|
||||
- resources-finalizer.argocd.argoproj.io
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: {{ .Values.application.metricsServer.source.repo }}
|
||||
targetRevision: {{ .Values.application.metricsServer.source.revision }}
|
||||
path: "{{ .Values.git.path }}/{{ .Values.application.metricsServer.source.path }}"
|
||||
destination:
|
||||
name: in-cluster
|
||||
namespace: {{ .Values.application.metricsServer.namespace }}
|
||||
revisionHistoryLimit: 3
|
||||
syncPolicy:
|
||||
{{- toYaml .Values.application.metricsServer.syncPolicy | nindent 4 }}
|
||||
|
||||
---
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: kubelet-serving-cert-approver
|
||||
namespace: {{ .Release.Namespace }}
|
||||
finalizers:
|
||||
- resources-finalizer.argocd.argoproj.io
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: {{ .Values.application.kubeletServingCertApprover.source.repo }}
|
||||
targetRevision: {{ .Values.application.kubeletServingCertApprover.source.revision }}
|
||||
path: "{{ .Values.git.path }}/{{ .Values.application.kubeletServingCertApprover.source.path }}"
|
||||
destination:
|
||||
name: in-cluster
|
||||
namespace: {{ .Values.application.kubeletServingCertApprover.namespace }}
|
||||
revisionHistoryLimit: 3
|
||||
syncPolicy:
|
||||
{{- toYaml .Values.application.kubeletServingCertApprover.syncPolicy | nindent 4 }}
|
||||
|
||||
---
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: prometheus-operator-crds
|
||||
namespace: {{ .Release.Namespace }}
|
||||
finalizers:
|
||||
- resources-finalizer.argocd.argoproj.io
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: {{ .Values.application.prometheusOperatorCrds.source.repo }}
|
||||
targetRevision: {{ .Values.application.prometheusOperatorCrds.source.revision }}
|
||||
path: "{{ .Values.git.path }}/{{ .Values.application.prometheusOperatorCrds.source.path }}"
|
||||
destination:
|
||||
name: in-cluster
|
||||
namespace: {{ .Values.application.prometheusOperatorCrds.namespace }}
|
||||
revisionHistoryLimit: 3
|
||||
syncPolicy:
|
||||
{{- toYaml .Values.application.prometheusOperatorCrds.syncPolicy | nindent 4 }}
|
148
clusters/cl01tl/deployment/stack/values.yaml
Normal file
148
clusters/cl01tl/deployment/stack/values.yaml
Normal file
@@ -0,0 +1,148 @@
|
||||
git:
|
||||
repo: git@github.com:alexlebens/alexlebens-net.git
|
||||
revision: HEAD
|
||||
path: clusters/cl01tl
|
||||
applicationSet:
|
||||
- name: applications
|
||||
syncPolicy:
|
||||
automated:
|
||||
enabled: true
|
||||
prune: true
|
||||
selfheal: false
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
- ApplyOutOfSyncOnly=true
|
||||
- ServerSideApply=false
|
||||
- PruneLast=true
|
||||
- name: deployment
|
||||
namespace: argocd
|
||||
syncPolicy:
|
||||
automated:
|
||||
enabled: true
|
||||
prune: true
|
||||
selfheal: false
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
- ApplyOutOfSyncOnly=true
|
||||
- ServerSideApply=false
|
||||
- PruneLast=true
|
||||
- name: platform
|
||||
syncPolicy:
|
||||
automated:
|
||||
enabled: true
|
||||
prune: true
|
||||
selfheal: false
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
- ApplyOutOfSyncOnly=true
|
||||
- ServerSideApply=true
|
||||
- PruneLast=true
|
||||
- name: services
|
||||
ignoreDifferences:
|
||||
- group: ""
|
||||
kind: Service
|
||||
jqPathExpressions:
|
||||
- .status.loadBalancer.ingress[].ipMode
|
||||
syncPolicy:
|
||||
automated:
|
||||
enabled: true
|
||||
prune: true
|
||||
selfheal: false
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
- ApplyOutOfSyncOnly=true
|
||||
- ServerSideApply=true
|
||||
- PruneLast=true
|
||||
- name: storage
|
||||
syncPolicy:
|
||||
automated:
|
||||
enabled: true
|
||||
prune: true
|
||||
selfheal: false
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
- ApplyOutOfSyncOnly=true
|
||||
- ServerSideApply=false
|
||||
- PruneLast=true
|
||||
application:
|
||||
cilium:
|
||||
namespace: kube-system
|
||||
source:
|
||||
repo: git@github.com:alexlebens/alexlebens-net.git
|
||||
revision: HEAD
|
||||
path: standalone/cilium
|
||||
syncPolicy:
|
||||
retry:
|
||||
limit: 10
|
||||
backoff:
|
||||
duration: 1m
|
||||
factor: 2
|
||||
maxDuration: 16m
|
||||
syncOptions:
|
||||
- CreateNamespace=false
|
||||
- ApplyOutOfSyncOnly=true
|
||||
- ServerSideApply=true
|
||||
- PruneLast=true
|
||||
metricsServer:
|
||||
namespace: kube-system
|
||||
source:
|
||||
repo: git@github.com:alexlebens/alexlebens-net.git
|
||||
revision: HEAD
|
||||
path: standalone/metrics-server
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
retry:
|
||||
limit: 10
|
||||
backoff:
|
||||
duration: 1m
|
||||
factor: 2
|
||||
maxDuration: 16m
|
||||
syncOptions:
|
||||
- CreateNamespace=false
|
||||
- ApplyOutOfSyncOnly=false
|
||||
- ServerSideApply=true
|
||||
- PruneLast=true
|
||||
kubeletServingCertApprover:
|
||||
namespace: kubelet-serving-cert-approver
|
||||
source:
|
||||
repo: git@github.com:alexlebens/alexlebens-net.git
|
||||
revision: HEAD
|
||||
path: standalone/kubelet-serving-cert-approver
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
retry:
|
||||
limit: 10
|
||||
backoff:
|
||||
duration: 1m
|
||||
factor: 2
|
||||
maxDuration: 16m
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
- ApplyOutOfSyncOnly=false
|
||||
- ServerSideApply=true
|
||||
- PruneLast=true
|
||||
prometheusOperatorCrds:
|
||||
namespace: kube-system
|
||||
source:
|
||||
repo: git@github.com:alexlebens/alexlebens-net.git
|
||||
revision: HEAD
|
||||
path: standalone/prometheus-operator-crds
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
retry:
|
||||
limit: 10
|
||||
backoff:
|
||||
duration: 1m
|
||||
factor: 2
|
||||
maxDuration: 16m
|
||||
syncOptions:
|
||||
- CreateNamespace=false
|
||||
- ApplyOutOfSyncOnly=false
|
||||
- ServerSideApply=true
|
||||
- PruneLast=true
|
Reference in New Issue
Block a user