Draft for OSUpgrade Spec

This commit is contained in:
2026-04-03 01:04:40 +08:00
parent e7b8e406a8
commit 3c0df319d7
7 changed files with 250 additions and 142 deletions

View File

@@ -90,29 +90,61 @@ We use a CRD with an agent to handle this. Our versions follows upstream's.
kubectl apply -f upgrade.yaml
```yaml
apiVersion: k8s.mono.si/v1alpha1
apiVersion: monok8s.io/v1alpha1
kind: OSUpgrade
metadata:
name: "my-ugrade"
name: "my-ugrade-2"
spec:
version: "v1.35.1" # Or just "latest"
version: "v1.35.3"
imageURL: "https://updates.example.com/monok8s-1.2.3.img.zst"
checksum: "sha256:..."
nodeSelector: {}
status:
phase: Pending
resolvedVersion: "v1.35.3"
observedGeneration: 1
summary:
targetedNodes: 0
pendingNodes: 0
runningNodes: 0
succeededNodes: 0
failedNodes: 0
```
kubectl get osugrades
```
NAME TARGET STATUS AGE
my-upgrade-1 latest pending 1m
my-upgrade-2 v1.35.3 accepted 1m # latest gets realized into a version number
their-upgrade v1.33.2 succeeded 1m
NAME TARGET STATUS AGE
my-upgrade-2 v1.35.3 accepted 1m # latest gets realized into a version number
my-downgrade-1 v1.33.2 rejected 1m # Downgrade not supported
```
kubectl get osupgradeprogress
```
NODE SOURCE STATUS
my-node my-upgrade-2 active
their-node my-upgrade-2 completed
NAME NODE SOURCE CURRENT TARGET STATUS
osupgrade-abc123f node-1 my-upgrade-2 v1.34.1 v1.35.3 downloading
osupgrade-cde456g node-2 my-upgrade-2 v1.35.3 v1.35.3 completed
```
```yaml
apiVersion: monok8s.io/v1alpha1
kind: OSUpgradeProgress
metadata:
name: "osupgrade-abc123f"
spec:
sourceRef:
name: my-upgrade-2
nodeName: node-1
status:
currentVersion: "v1.34.1"
targetVersion: "v1.35.3"
phase: Downloading
startedAt: null
completedAt: null
lastUpdatedAt: null
retryCount: 0
inactivePartition: "B"
failureReason: ""
message: ""
```
## NOTES