feat: Introduce tuppr system-upgrade application with configurations for managing Talos and Kubernetes upgrades.

This commit is contained in:
2026-02-27 04:10:00 +01:00
parent 265ffe8509
commit 5c5cec7911
8 changed files with 128 additions and 0 deletions

View 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

View 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

View File

@@ -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

View 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

View 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

View File

@@ -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']

View File

@@ -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

View File

@@ -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']