feat: migrate cluster baseline from Hetzner to Proxmox
Replace Hetzner infrastructure and cloud-provider assumptions with Proxmox VM clones, kube-vip API HA, and NFS-backed storage. Update bootstrap, Flux addons, CI workflows, and docs to target the new private Proxmox baseline while preserving the existing Tailscale, Doppler, Flux, Rancher, and B2 backup flows.
This commit is contained in:
@@ -1,36 +0,0 @@
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: hcloud-cloud-controller-manager
|
||||
namespace: flux-system
|
||||
spec:
|
||||
interval: 10m
|
||||
targetNamespace: kube-system
|
||||
chart:
|
||||
spec:
|
||||
chart: hcloud-cloud-controller-manager
|
||||
version: 1.30.1
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: hcloud
|
||||
namespace: flux-system
|
||||
install:
|
||||
createNamespace: true
|
||||
remediation:
|
||||
retries: 3
|
||||
upgrade:
|
||||
remediation:
|
||||
retries: 3
|
||||
values:
|
||||
selectorLabels:
|
||||
app: hcloud-cloud-controller-manager
|
||||
args:
|
||||
secure-port: "0"
|
||||
networking:
|
||||
enabled: true
|
||||
nodeSelector:
|
||||
kubernetes.io/hostname: k8s-cluster-cp-1
|
||||
additionalTolerations:
|
||||
- key: node-role.kubernetes.io/control-plane
|
||||
operator: Exists
|
||||
effect: NoSchedule
|
||||
@@ -1,8 +0,0 @@
|
||||
apiVersion: source.toolkit.fluxcd.io/v1
|
||||
kind: HelmRepository
|
||||
metadata:
|
||||
name: hcloud
|
||||
namespace: flux-system
|
||||
spec:
|
||||
interval: 1h
|
||||
url: https://charts.hetzner.cloud
|
||||
@@ -1,5 +0,0 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- helmrepository-hcloud.yaml
|
||||
- helmrelease-hcloud-ccm.yaml
|
||||
@@ -1,36 +0,0 @@
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: hcloud-csi
|
||||
namespace: flux-system
|
||||
spec:
|
||||
interval: 10m
|
||||
targetNamespace: kube-system
|
||||
chart:
|
||||
spec:
|
||||
chart: hcloud-csi
|
||||
version: 2.20.0
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: hcloud
|
||||
namespace: flux-system
|
||||
install:
|
||||
createNamespace: true
|
||||
remediation:
|
||||
retries: 3
|
||||
upgrade:
|
||||
remediation:
|
||||
retries: 3
|
||||
values:
|
||||
controller:
|
||||
nodeSelector:
|
||||
kubernetes.io/hostname: k8s-cluster-cp-1
|
||||
tolerations:
|
||||
- key: node-role.kubernetes.io/control-plane
|
||||
operator: Exists
|
||||
effect: NoSchedule
|
||||
hcloudVolumeDefaultLocation: nbg1
|
||||
storageClasses:
|
||||
- name: hcloud-volumes
|
||||
defaultStorageClass: true
|
||||
reclaimPolicy: Delete
|
||||
@@ -1,5 +0,0 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- helmrepository-hcloud.yaml
|
||||
- helmrelease-hcloud-csi.yaml
|
||||
@@ -1,17 +0,0 @@
|
||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||
kind: Kustomization
|
||||
metadata:
|
||||
name: addon-csi
|
||||
namespace: flux-system
|
||||
spec:
|
||||
interval: 10m
|
||||
prune: true
|
||||
sourceRef:
|
||||
kind: GitRepository
|
||||
name: platform
|
||||
path: ./infrastructure/addons/csi
|
||||
dependsOn:
|
||||
- name: addon-ccm
|
||||
wait: true
|
||||
timeout: 10m
|
||||
suspend: false
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||
kind: Kustomization
|
||||
metadata:
|
||||
name: addon-ccm
|
||||
name: addon-nfs-storage
|
||||
namespace: flux-system
|
||||
spec:
|
||||
interval: 10m
|
||||
@@ -9,7 +9,7 @@ spec:
|
||||
sourceRef:
|
||||
kind: GitRepository
|
||||
name: platform
|
||||
path: ./infrastructure/addons/ccm
|
||||
path: ./infrastructure/addons/nfs-storage
|
||||
wait: true
|
||||
timeout: 10m
|
||||
suspend: false
|
||||
@@ -1,8 +1,7 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- kustomization-ccm.yaml
|
||||
- kustomization-csi.yaml
|
||||
- kustomization-nfs-storage.yaml
|
||||
- kustomization-external-secrets.yaml
|
||||
- kustomization-cert-manager.yaml
|
||||
- kustomization-tailscale-operator.yaml
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: nfs-subdir-external-provisioner
|
||||
namespace: flux-system
|
||||
spec:
|
||||
interval: 10m
|
||||
targetNamespace: kube-system
|
||||
chart:
|
||||
spec:
|
||||
chart: nfs-subdir-external-provisioner
|
||||
version: 4.0.18
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: nfs-subdir-external-provisioner
|
||||
namespace: flux-system
|
||||
install:
|
||||
createNamespace: true
|
||||
remediation:
|
||||
retries: 3
|
||||
upgrade:
|
||||
remediation:
|
||||
retries: 3
|
||||
values:
|
||||
nfs:
|
||||
server: 10.27.27.22
|
||||
path: /TheFlash/k8s-nfs
|
||||
storageClass:
|
||||
create: true
|
||||
defaultClass: true
|
||||
name: flash-nfs
|
||||
provisionerName: flash-nfs
|
||||
reclaimPolicy: Delete
|
||||
archiveOnDelete: true
|
||||
allowVolumeExpansion: true
|
||||
volumeBindingMode: Immediate
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
apiVersion: source.toolkit.fluxcd.io/v1
|
||||
kind: HelmRepository
|
||||
metadata:
|
||||
name: hcloud
|
||||
name: nfs-subdir-external-provisioner
|
||||
namespace: flux-system
|
||||
spec:
|
||||
interval: 1h
|
||||
url: https://charts.hetzner.cloud
|
||||
url: https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner
|
||||
@@ -0,0 +1,5 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- helmrepository-nfs-subdir-external-provisioner.yaml
|
||||
- helmrelease-nfs-subdir-external-provisioner.yaml
|
||||
Reference in New Issue
Block a user