feat: Introduce tuppr system-upgrade application with configurations for managing Talos and Kubernetes upgrades.
This commit is contained in:
9
kubernetes/apps/system-upgrade/kustomization.yaml
Normal file
9
kubernetes/apps/system-upgrade/kustomization.yaml
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: system-upgrade
|
||||
components:
|
||||
- ../../components/repos/app-template
|
||||
resources:
|
||||
- ./tuppr/ks.yaml
|
||||
16
kubernetes/apps/system-upgrade/tuppr/app/helmrelease.yaml
Normal file
16
kubernetes/apps/system-upgrade/tuppr/app/helmrelease.yaml
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
# yaml-language-server: $schema=https://raw.githubusercontent.com/bjw-s-labs/helm-charts/main/charts/other/app-template/schemas/helmrelease-helm-v2.schema.json
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: &app tuppr
|
||||
spec:
|
||||
interval: 1h
|
||||
chartRef:
|
||||
kind: OCIRepository
|
||||
name: *app
|
||||
values:
|
||||
replicaCount: 2
|
||||
monitoring:
|
||||
serviceMonitor:
|
||||
enabled: true
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ./helmrelease.yaml
|
||||
- ./ocirepository.yaml
|
||||
14
kubernetes/apps/system-upgrade/tuppr/app/ocirepository.yaml
Normal file
14
kubernetes/apps/system-upgrade/tuppr/app/ocirepository.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
---
|
||||
# yaml-language-server: $schema=https://schemas.tholinka.dev/source.toolkit.fluxcd.io/ocirepository_v1.json
|
||||
apiVersion: source.toolkit.fluxcd.io/v1
|
||||
kind: OCIRepository
|
||||
metadata:
|
||||
name: tuppr
|
||||
spec:
|
||||
interval: 1h
|
||||
layerSelector:
|
||||
mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
|
||||
operation: copy
|
||||
ref:
|
||||
tag: 0.0.73
|
||||
url: oci://ghcr.io/home-operations/charts/tuppr
|
||||
35
kubernetes/apps/system-upgrade/tuppr/ks.yaml
Normal file
35
kubernetes/apps/system-upgrade/tuppr/ks.yaml
Normal file
@@ -0,0 +1,35 @@
|
||||
---
|
||||
# yaml-language-server: $schema=https://schemas.tholinka.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json
|
||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||
kind: Kustomization
|
||||
metadata:
|
||||
name: tuppr
|
||||
namespace: &namespace system-upgrade
|
||||
spec:
|
||||
interval: 1h
|
||||
path: ./kubernetes/apps/system-upgrade/tuppr/app
|
||||
prune: true
|
||||
sourceRef:
|
||||
kind: GitRepository
|
||||
name: flux-system
|
||||
namespace: flux-system
|
||||
targetNamespace: *namespace
|
||||
wait: true
|
||||
---
|
||||
# yaml-language-server: $schema=https://schemas.tholinka.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json
|
||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||
kind: Kustomization
|
||||
metadata:
|
||||
name: tuppr-upgrades
|
||||
namespace: &namespace system-upgrade
|
||||
spec:
|
||||
interval: 1h
|
||||
path: ./kubernetes/apps/system-upgrade/tuppr/upgrades
|
||||
dependsOn:
|
||||
- name: tuppr
|
||||
prune: true
|
||||
sourceRef:
|
||||
kind: GitRepository
|
||||
name: flux-system
|
||||
namespace: flux-system
|
||||
targetNamespace: *namespace
|
||||
@@ -0,0 +1,19 @@
|
||||
---
|
||||
# yaml-language-server: $schema=https://schemas.tholinka.dev/tuppr.home-operations.com/kubernetesupgrade_v1alpha1.json
|
||||
apiVersion: tuppr.home-operations.com/v1alpha1
|
||||
kind: KubernetesUpgrade
|
||||
metadata:
|
||||
name: kubernetes
|
||||
spec:
|
||||
kubernetes:
|
||||
# renovate: datasource=docker depName=ghcr.io/siderolabs/kubelet
|
||||
version: v1.35.1
|
||||
healthChecks:
|
||||
- apiVersion: volsync.backube/v1alpha1
|
||||
kind: ReplicationSource
|
||||
expr: |-
|
||||
status.conditions.filter(c, c.type == "Synchronizing").all(c, c.status == "False")
|
||||
- apiVersion: ceph.rook.io/v1
|
||||
kind: CephCluster
|
||||
expr: |-
|
||||
status.ceph.health in ['HEALTH_OK']
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ./kubernetesupgrade.yaml
|
||||
- ./talosupgrade.yaml
|
||||
@@ -0,0 +1,21 @@
|
||||
---
|
||||
# yaml-language-server: $schema=https://schemas.tholinka.dev/tuppr.home-operations.com/talosupgrade_v1alpha1.json
|
||||
apiVersion: tuppr.home-operations.com/v1alpha1
|
||||
kind: TalosUpgrade
|
||||
metadata:
|
||||
name: talos
|
||||
spec:
|
||||
talos:
|
||||
# renovate: datasource=docker depName=ghcr.io/siderolabs/installer
|
||||
version: v1.12.4
|
||||
policy:
|
||||
rebootMode: powercycle
|
||||
healthChecks:
|
||||
- apiVersion: volsync.backube/v1alpha1
|
||||
kind: ReplicationSource
|
||||
expr: |-
|
||||
status.conditions.filter(c, c.type == "Synchronizing").all(c, c.status == "False")
|
||||
- apiVersion: ceph.rook.io/v1
|
||||
kind: CephCluster
|
||||
expr: |-
|
||||
status.ceph.health in ['HEALTH_OK']
|
||||
Reference in New Issue
Block a user