Skip to content

Commit c98cb57

Browse files
authored
feat: add tuppr.home-operations.com (#755)
1 parent e3f07bc commit c98cb57

File tree

2 files changed

+414
-0
lines changed

2 files changed

+414
-0
lines changed
Lines changed: 177 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,177 @@
1+
{
2+
"description": "KubernetesUpgrade is the Schema for the kubernetesupgrades API",
3+
"properties": {
4+
"apiVersion": {
5+
"description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
6+
"type": "string"
7+
},
8+
"kind": {
9+
"description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
10+
"type": "string"
11+
},
12+
"metadata": {
13+
"type": "object"
14+
},
15+
"spec": {
16+
"description": "KubernetesUpgradeSpec defines the desired state of KubernetesUpgrade",
17+
"properties": {
18+
"healthChecks": {
19+
"description": "HealthChecks defines a list of CEL-based health checks to perform before the upgrade",
20+
"items": {
21+
"description": "HealthCheck defines a CEL-based health check",
22+
"properties": {
23+
"apiVersion": {
24+
"description": "APIVersion of the resource to check",
25+
"type": "string"
26+
},
27+
"description": {
28+
"description": "Description of what this check validates (for status/logging)",
29+
"type": "string"
30+
},
31+
"expr": {
32+
"description": "CEL expression that must evaluate to true for the check to pass\nThe resource object is available as 'object' and status as 'status'",
33+
"type": "string"
34+
},
35+
"kind": {
36+
"description": "Kind of the resource to check",
37+
"type": "string"
38+
},
39+
"name": {
40+
"description": "Name of the specific resource (optional, if empty checks all resources of this kind)",
41+
"type": "string"
42+
},
43+
"namespace": {
44+
"description": "Namespace of the resource (optional, for namespaced resources)",
45+
"type": "string"
46+
},
47+
"timeout": {
48+
"description": "Timeout for this health check",
49+
"minLength": 2,
50+
"pattern": "^([0-9]+[smh])+$",
51+
"type": "string"
52+
}
53+
},
54+
"required": [
55+
"apiVersion",
56+
"expr",
57+
"kind"
58+
],
59+
"type": "object",
60+
"additionalProperties": false
61+
},
62+
"type": "array"
63+
},
64+
"kubernetes": {
65+
"description": "Kubernetes defines the target Kubernetes configuration",
66+
"properties": {
67+
"version": {
68+
"description": "Version is the target Kubernetes version to upgrade to (e.g., \"v1.34.0\")",
69+
"pattern": "^v[0-9]+\\.[0-9]+\\.[0-9]+(-[a-zA-Z0-9\\-\\.]+)?$",
70+
"type": "string"
71+
}
72+
},
73+
"required": [
74+
"version"
75+
],
76+
"type": "object",
77+
"additionalProperties": false
78+
},
79+
"talosctl": {
80+
"description": "Talosctl specifies the talosctl configuration for upgrade operations",
81+
"properties": {
82+
"image": {
83+
"description": "Image specifies the talosctl container image",
84+
"properties": {
85+
"pullPolicy": {
86+
"default": "IfNotPresent",
87+
"description": "PullPolicy describes a policy for if/when to pull a container image",
88+
"enum": [
89+
"Always",
90+
"Never",
91+
"IfNotPresent"
92+
],
93+
"type": "string"
94+
},
95+
"repository": {
96+
"default": "ghcr.io/siderolabs/talosctl",
97+
"description": "Repository is the talosctl container image repository",
98+
"type": "string"
99+
},
100+
"tag": {
101+
"description": "Tag is the talosctl container image tag\nIf not specified, defaults to the target version",
102+
"type": "string"
103+
}
104+
},
105+
"type": "object",
106+
"additionalProperties": false
107+
}
108+
},
109+
"type": "object",
110+
"additionalProperties": false
111+
}
112+
},
113+
"required": [
114+
"kubernetes"
115+
],
116+
"type": "object",
117+
"additionalProperties": false
118+
},
119+
"status": {
120+
"description": "KubernetesUpgradeStatus defines the observed state of KubernetesUpgrade",
121+
"properties": {
122+
"controllerNode": {
123+
"description": "ControllerNode is the controller node being used for the upgrade",
124+
"type": "string"
125+
},
126+
"currentVersion": {
127+
"description": "CurrentVersion is the current Kubernetes version detected in the cluster",
128+
"type": "string"
129+
},
130+
"jobName": {
131+
"description": "JobName is the name of the job handling the upgrade",
132+
"type": "string"
133+
},
134+
"lastError": {
135+
"description": "LastError contains the last error message",
136+
"type": "string"
137+
},
138+
"lastUpdated": {
139+
"description": "LastUpdated timestamp of last status update",
140+
"format": "date-time",
141+
"type": "string"
142+
},
143+
"message": {
144+
"description": "Message provides details about the current state",
145+
"type": "string"
146+
},
147+
"observedGeneration": {
148+
"description": "ObservedGeneration reflects the generation of the most recently observed spec",
149+
"format": "int64",
150+
"type": "integer"
151+
},
152+
"phase": {
153+
"description": "Phase represents the current phase of the upgrade",
154+
"enum": [
155+
"Pending",
156+
"InProgress",
157+
"Completed",
158+
"Failed"
159+
],
160+
"type": "string"
161+
},
162+
"retries": {
163+
"description": "Retries is the number of times the upgrade was attempted",
164+
"minimum": 0,
165+
"type": "integer"
166+
},
167+
"targetVersion": {
168+
"description": "TargetVersion is the target version from the spec",
169+
"type": "string"
170+
}
171+
},
172+
"type": "object",
173+
"additionalProperties": false
174+
}
175+
},
176+
"type": "object"
177+
}

0 commit comments

Comments
 (0)