You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* drop /bin/sh from restore: collapse restore-agent + restore-datadir
into a single Go initContainer using etcdutl/v3/snapshot.NewV3()
* PodSecurityContext.FSGroup=65532 when bootstrap.restore is set so
the nonroot restore-agent can mkdir into a freshly-mounted PVC
* tighten restore-agent: require all 5 env vars, trim cluster envs
symmetrically, log + os.RemoveAll on partial state before retry,
sentinel-based skip-check instead of bare member/
* bump default restore-agent memory limit (etcdutl Restore() runs
in-process and OOM-kills on multi-GB snapshots at 512Mi)
* mirror PVC.SubPath hardening on the restore side (validatePVCSubPath)
* treat Job.Status.CompletionTime==nil in the errNoMarker grace
branch as "still within grace" — finalize-empty is unrecoverable
* Go toolchain bump 1.22.4 -> 1.23.0 (Dockerfile + 5 workflows)
required by go.etcd.io/etcd/etcdutl/v3 v3.5.21
* controller-gen bump v0.15.0 -> v0.16.5 (needed for Go 1.23 build);
regenerate CRD + RBAC + deepcopy on top
* new CI workflow: codegen-drift gate runs make manifests generate
helm-crd-copy and fails on dirty git status
* e2e: harden the kubectl port-forward race by wrapping health-
check in Eventually; add restore continuation spec exercising the
full PVC restore path against a live cluster
Signed-off-by: Andrey Kolkov <androndo@gmail.com>
This field is effectively required, but due to backwards compatibility is
65
65
allowed to be empty. Instances of this type with an empty value here are
66
66
almost certainly wrong.
67
-
TODO: Add other useful fields. apiVersion, kind, uid?
68
67
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
69
-
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
70
68
type: string
71
69
type: object
72
70
x-kubernetes-map-type: atomic
@@ -103,9 +101,7 @@ spec:
103
101
This field is effectively required, but due to backwards compatibility is
104
102
allowed to be empty. Instances of this type with an empty value here are
105
103
almost certainly wrong.
106
-
TODO: Add other useful fields. apiVersion, kind, uid?
107
104
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
108
-
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
109
105
type: string
110
106
type: object
111
107
x-kubernetes-map-type: atomic
@@ -155,7 +151,7 @@ spec:
155
151
properties:
156
152
conditions:
157
153
items:
158
-
description: "Condition contains details for one aspect of the current state of this API Resource.\n---\nThis struct is intended for direct use as an array at the field path .status.conditions. For example,\n\n\n\ttype FooStatus struct{\n\t // Represents the observations of a foo's current state.\n\t // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t // other fields\n\t}"
154
+
description: Condition contains details for one aspect of the current state of this API Resource.
159
155
properties:
160
156
lastTransitionTime:
161
157
description: |-
@@ -196,12 +192,7 @@ spec:
196
192
- Unknown
197
193
type: string
198
194
type:
199
-
description: |-
200
-
type of condition in CamelCase or in foo.example.com/CamelCase.
201
-
---
202
-
Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be
203
-
useful (see .node.status.conditions), the ability to deconflict is important.
204
-
The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
195
+
description: type of condition in CamelCase or in foo.example.com/CamelCase.
0 commit comments