Provision production cluster

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
This commit is contained in:
Stefan Prodan 2024-04-10 13:08:05 +03:00
parent 98577807dd
commit 5dcfc42aaf
No known key found for this signature in database
GPG key ID: 3299AEB0E4085BAF
6 changed files with 152 additions and 0 deletions

View file

@ -0,0 +1,9 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../../../deploy/apps
patches:
- path: podinfo-values.yaml
target:
kind: HelmRelease
name: podinfo

View file

@ -0,0 +1,17 @@
apiVersion: helm.toolkit.fluxcd.io/v2beta2
kind: HelmRelease
metadata:
name: podinfo
spec:
chart:
spec:
version: ">=1.0.0-alpha"
test:
enable: false
values:
ingress:
hosts:
- host: podinfo.production
paths:
- path: /
pathType: ImplementationSpecific

View file

@ -0,0 +1,4 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../../../deploy/infra-configs

View file

@ -0,0 +1,4 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../../../deploy/infra-controllers

View file

@ -0,0 +1,4 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../../../deploy/tenants

114
hub/production.yaml Normal file
View file

@ -0,0 +1,114 @@
apiVersion: v1
kind: Namespace
metadata:
name: production
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: tenants
namespace: production
spec:
interval: 1h
retryInterval: 3m
timeout: 5m
prune: true
wait: true
path: ./clusters/production/tenants
sourceRef:
kind: GitRepository
name: flux-system
namespace: flux-system
kubeConfig:
secretRef:
name: cluster-kubeconfig
postBuild:
substitute:
CLUSTER_NAME: production
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: infra-controllers
namespace: production
spec:
dependsOn:
- name: tenants
targetNamespace: production
interval: 1h
retryInterval: 3m
timeout: 5m
prune: true
wait: true
path: ./clusters/production/infra-controllers
sourceRef:
kind: GitRepository
name: flux-system
namespace: flux-system
patches:
- target:
kind: HelmRelease
patch: |
- op: add
path: /spec/kubeConfig
value:
secretRef:
name: cluster-kubeconfig
- op: add
path: /spec/serviceAccountName
value: flux-cluster-admin
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: infra-configs
namespace: production
spec:
dependsOn:
- name: infra-controllers
targetNamespace: production
interval: 1h
retryInterval: 3m
timeout: 5m
prune: true
wait: true
path: ./clusters/production/infra-configs
sourceRef:
kind: GitRepository
name: flux-system
namespace: flux-system
kubeConfig:
secretRef:
name: cluster-kubeconfig
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: apps
namespace: production
spec:
dependsOn:
- name: infra-configs
targetNamespace: production
interval: 1h
retryInterval: 3m
timeout: 5m
prune: true
wait: true
path: ./clusters/production/apps
sourceRef:
kind: GitRepository
name: flux-system
namespace: flux-system
patches:
- target:
kind: HelmRelease
patch: |
- op: add
path: /spec/kubeConfig
value:
secretRef:
name: cluster-kubeconfig
- op: add
path: /spec/serviceAccountName
value: flux-restricted