KubernetesUpgrade
tuppr.home-operations.com / v1alpha1
apiVersion: tuppr.home-operations.com/v1alpha1
kind: KubernetesUpgrade
metadata:
name: example
apiVersion
string
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
kind
string
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
metadata
object
spec object
KubernetesUpgradeSpec defines the desired state of KubernetesUpgrade
healthChecks []object
HealthChecks defines a list of CEL-based health checks to perform before the upgrade
apiVersion
string required
APIVersion of the resource to check
description
string
Description of what this check validates (for status/logging)
expr
string required
CEL expression that must evaluate to true for the check to pass
The resource object is available as 'object' and status as 'status'
kind
string required
Kind of the resource to check
labelSelector object
LabelSelector selects resources to check when name is empty
matchExpressions []object
matchExpressions is a list of label selector requirements. The requirements are ANDed.
key
string required
key is the label key that the selector applies to.
operator
string required
operator represents a key's relationship to a set of values.
Valid operators are In, NotIn, Exists and DoesNotExist.
values
[]string
values is an array of string values. If the operator is In or NotIn,
the values array must be non-empty. If the operator is Exists or DoesNotExist,
the values array must be empty. This array is replaced during a strategic
merge patch.
matchLabels
object
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions, whose key field is "key", the
operator is "In", and the values array contains only "value". The requirements are ANDed.
name
string
Name of the specific resource (optional, if empty checks all resources of this kind)
namespace
string
Namespace of the resource (optional, for namespaced resources)
timeout
string
Timeout for this health check
pattern:
^([0-9]+[smh])+$minLength:
2kubernetes object required
Kubernetes defines the target Kubernetes configuration
endpoint
string
Endpoint overrides the Kubernetes API URL the upgrade Job queries.
Defaults to the in-cluster apiserver ClusterIP, which avoids CoreDNS.
pattern:
^https://[^/\s]+
imageRepository
string
ImageRepository overrides the registry+path prefix for Kubernetes component
images. When set, each component (kube-apiserver, kube-controller-manager,
kube-scheduler, kube-proxy, kubelet) is pulled from
"<imageRepository>/<component>:<version>".
version
string required
Version is the target Kubernetes version to upgrade to (e.g., "v1.34.0")
pattern:
^v[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9\-\.]+)?$maintenance object
Maintenance configuration behavior for upgrade operations
windows []object
minItems:
1
duration
string required
How long the window stays open (e.g., "4h", "2h30m")
pattern:
^([0-9]+[smh])+$
start
string required
Cron expression (5-field): minute hour day-of-month month day-of-week
minLength:
9
timezone
string
IANA timezone (e.g., "UTC", "Europe/Paris")
talosctl object
Talosctl specifies the talosctl configuration for upgrade operations
image object
Image specifies the talosctl container image
pullPolicy
string
PullPolicy describes a policy for if/when to pull a container image
enum:
Always, Never, IfNotPresent
repository
string
Repository is the talosctl container image repository
tag
string
Tag is the talosctl container image tag
If not specified, defaults to the target version
status object
KubernetesUpgradeStatus defines the observed state of KubernetesUpgrade
completedAt
string
CompletedAt is the time the upgrade reached a terminal phase
format:
date-timeconditions []object
Conditions report the upgrade's "Progressing" and "Ready" status.
lastTransitionTime
string required
lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format:
date-time
message
string required
message is a human readable message indicating details about the transition.
This may be an empty string.
maxLength:
32768
observedGeneration
integer
observedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format:
int64minimum:
0
reason
string required
reason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
pattern:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$minLength:
1maxLength:
1024
status
string required
status of the condition, one of True, False, Unknown.
enum:
True, False, Unknown
type
string required
type of condition in CamelCase or in foo.example.com/CamelCase.
pattern:
^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$maxLength:
316
controllerNode
string
ControllerNode is the controller node being used for the upgrade
currentVersion
string
CurrentVersion is the current Kubernetes version detected in the cluster
history []object
History records past version transitions on this CR, newest first
maxItems:
10
completedAt
string required
CompletedAt is when the run reached its terminal phase
format:
date-time
fromVersion
string
FromVersion is the cluster version detected at the start of the run
lastError
string
LastError is the final error message when Phase is Failed
phase
string required
Phase is the terminal phase reached (Completed or Failed)
enum:
Pending, HealthChecking, PreHook, Draining, Upgrading, Rebooting, PostHook, Completed, Failed, MaintenanceWindow
retries
integer
Retries is the number of retries recorded during the run
minimum:
0
startedAt
string required
StartedAt is when the run began
format:
date-time
toVersion
string required
ToVersion is the spec-target version at the time of completion
jobName
string
JobName is the name of the job handling the upgrade
lastError
string
LastError contains the last error message
lastUpdated
string
LastUpdated timestamp of last status update
format:
date-time
message
string
Message provides details about the current state
nextMaintenanceWindow
string
NextMaintenanceWindow reflect the next time a maintenance can happen
format:
date-time
observedGeneration
integer
ObservedGeneration reflects the generation of the most recently observed spec
format:
int64
phase
string
Phase represents the current phase of the upgrade
enum:
Pending, HealthChecking, PreHook, Draining, Upgrading, Rebooting, PostHook, Completed, Failed, MaintenanceWindow
retries
integer
Retries is the number of times the upgrade was attempted
minimum:
0
startedAt
string
StartedAt is the time the current upgrade attempt began
format:
date-time
targetVersion
string
TargetVersion is the target version from the spec
No matches. Try .spec.healthChecks for an exact path