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
Plan represents a set of Jobs to apply an upgrade (or other operation) to set of Nodes.
82
+
83
+
84
+
85
+
_Appears in:_
86
+
-[PlanList](#planlist)
87
+
88
+
| Field | Description | Default | Validation |
89
+
| --- | --- | --- | --- |
90
+
|`metadata`_[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#objectmeta-v1-meta)_| Refer to Kubernetes API documentation for fields of `metadata`. |||
91
+
|`spec`_[PlanSpec](#planspec)_||||
92
+
|`status`_[PlanStatus](#planstatus)_||||
93
+
94
+
95
+
96
+
97
+
#### PlanSpec
98
+
99
+
100
+
101
+
PlanSpec represents the user-configurable details of a Plan.
102
+
103
+
104
+
105
+
_Appears in:_
106
+
-[Plan](#plan)
107
+
108
+
| Field | Description | Default | Validation |
109
+
| --- | --- | --- | --- |
110
+
|`concurrency`_integer_| The maximum number of concurrent nodes to apply this update on. |||
111
+
|`jobActiveDeadlineSecs`_integer_| Sets ActiveDeadlineSeconds on Jobs generated to apply this Plan.<br />If the Job does not complete within this time, the Plan will stop processing until it is updated to trigger a redeploy.<br />If set to 0, Jobs have no deadline. If not set, the controller default value is used. |||
112
+
|`nodeSelector`_[LabelSelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#labelselector-v1-meta)_| Select which nodes this plan can be applied to. |||
113
+
|`serviceAccountName`_string_| The service account for the pod to use. As with normal pods, if not specified the default service account from the namespace will be assigned. |||
114
+
|`channel`_string_| A URL that returns HTTP 302 with the last path element of the value returned in the Location header assumed to be an image tag (after munging "+" to "-"). |||
115
+
|`version`_string_| Providing a value for version will prevent polling/resolution of the channel if specified. |||
116
+
|`secrets`_[SecretSpec](#secretspec) array_| Secrets to be mounted into the Job Pod. |||
117
+
|`tolerations`_[Toleration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#toleration-v1-core) array_| Specify which node taints should be tolerated by pods applying the upgrade.<br />Anything specified here is appended to the default of:<br />- `\{key: node.kubernetes.io/unschedulable, effect: NoSchedule, operator: Exists\}`|||
118
+
|`exclusive`_boolean_| Jobs for exclusive plans cannot be run alongside any other exclusive plan. |||
119
+
|`window`_[TimeWindowSpec](#timewindowspec)_| A time window in which to execute Jobs for this Plan.<br />Jobs will not be generated outside this time window, but may continue executing into the window once started. |||
120
+
|`prepare`_[ContainerSpec](#containerspec)_| The prepare init container, if specified, is run before cordon/drain which is run before the upgrade container. |||
121
+
|`upgrade`_[ContainerSpec](#containerspec)_| The upgrade container; must be specified. |||
122
+
|`cordon`_boolean_| If Cordon is true, the node is cordoned before the upgrade container is run.<br />If drain is specified, the value for cordon is ignored, and the node is cordoned.<br />If neither drain nor cordon are specified and the node is marked as schedulable=false it will not be marked as schedulable=true when the Job completes. |||
123
+
|`drain`_[DrainSpec](#drainspec)_| Configuration for draining nodes prior to upgrade. If left unspecified, no drain will be performed. |||
124
+
|`imagePullSecrets`_[LocalObjectReference](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#localobjectreference-v1-core) array_| Image Pull Secrets, used to pull images for the Job. |||
125
+
|`postCompleteDelay`_[Duration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#duration-v1-meta)_| Time after a Job for one Node is complete before a new Job will be created for the next Node. |||
126
+
127
+
128
+
#### PlanStatus
129
+
130
+
131
+
132
+
PlanStatus represents the resulting state from processing Plan events.
133
+
134
+
135
+
136
+
_Appears in:_
137
+
-[Plan](#plan)
138
+
139
+
| Field | Description | Default | Validation |
140
+
| --- | --- | --- | --- |
141
+
|`conditions`_GenericCondition array_||||
142
+
|`latestVersion`_string_| The latest version, as resolved from .spec.version, or the channel server. |||
143
+
|`latestHash`_string_| The hash of the most recently applied plan .spec. |||
144
+
|`applying`_string array_| List of Node names that the Plan is currently being applied on. |||
145
+
146
+
147
+
#### SecretSpec
148
+
149
+
150
+
151
+
SecretSpec describes a Secret to be mounted for prepare/upgrade containers.
152
+
153
+
154
+
155
+
_Appears in:_
156
+
-[PlanSpec](#planspec)
157
+
158
+
| Field | Description | Default | Validation |
159
+
| --- | --- | --- | --- |
160
+
|`name`_string_| Secret name || Required: \{\} <br /> |
161
+
|`path`_string_| Path to mount the Secret volume within the Pod. || Required: \{\} <br /> |
162
+
|`ignoreUpdates`_boolean_| If set to true, the Secret contents will not be hashed, and changes to the Secret will not trigger new application of the Plan. |||
163
+
164
+
165
+
#### TimeWindowSpec
166
+
167
+
168
+
169
+
TimeWindowSpec describes a time window in which a Plan should be processed.
170
+
171
+
172
+
173
+
_Appears in:_
174
+
-[PlanSpec](#planspec)
175
+
176
+
| Field | Description | Default | Validation |
177
+
| --- | --- | --- | --- |
178
+
|`days`_[Day](#day) array_| Days that this time window is valid for || Enum: [0 su sun sunday 1 mo mon monday 2 tu tue tuesday 3 we wed wednesday 4 th thu thursday 5 fr fri friday 6 sa sat saturday] <br />MinItems: 1 <br /> |
179
+
|`startTime`_string_| Start of the time window. |||
180
+
|`endTime`_string_| End of the time window. |||
181
+
|`timeZone`_string_| Time zone for the time window; if not specified UTC will be used. |||
182
+
183
+
184
+
#### VolumeSpec
185
+
186
+
187
+
188
+
HostPath volume to mount into the pod
189
+
190
+
191
+
192
+
_Appears in:_
193
+
-[ContainerSpec](#containerspec)
194
+
195
+
| Field | Description | Default | Validation |
196
+
| --- | --- | --- | --- |
197
+
|`name`_string_| Name of the Volume as it will appear within the Pod spec. || Required: \{\} <br /> |
198
+
|`source`_string_| Path on the host to mount. || Required: \{\} <br /> |
199
+
|`destination`_string_| Path to mount the Volume at within the Pod. || Required: \{\} <br /> |
// A URL that returns HTTP 302 with the last path element of the value returned in the Location header assumed to be an image tag (after munging "+" to "-").
53
+
// A URL that returns HTTP 302 with the last path element of the value returned in the Location header assumed to be an image tag (after munging "+" to "-").
54
54
Channelstring`json:"channel,omitempty"`
55
55
// Providing a value for version will prevent polling/resolution of the channel if specified.
56
56
Versionstring`json:"version,omitempty"`
57
57
// Secrets to be mounted into the Job Pod.
58
58
Secrets []SecretSpec`json:"secrets,omitempty"`
59
59
// Specify which node taints should be tolerated by pods applying the upgrade.
60
60
// Anything specified here is appended to the default of:
// Jobs for exclusive plans cannot be run alongside any other exclusive plan.
64
64
Exclusivebool`json:"exclusive,omitempty"`
65
65
// A time window in which to execute Jobs for this Plan.
66
66
// Jobs will not be generated outside this time window, but may continue executing into the window once started.
67
67
Window*TimeWindowSpec`json:"window,omitempty"`
68
68
// The prepare init container, if specified, is run before cordon/drain which is run before the upgrade container.
69
-
// Shares the same format as the upgrade container.
70
-
// If no tag is included in the image name, the tag portion of the image will be the value from .status.latestVersion a.k.a. the resolved version for this plan.
71
69
Prepare*ContainerSpec`json:"prepare,omitempty"`
72
-
// If drain is specified, the value for cordon is ignored.
70
+
// The upgrade container; must be specified.
71
+
Upgrade*ContainerSpec`json:"upgrade"`
72
+
// If Cordon is true, the node is cordoned before the upgrade container is run.
73
+
// If drain is specified, the value for cordon is ignored, and the node is cordoned.
73
74
// If neither drain nor cordon are specified and the node is marked as schedulable=false it will not be marked as schedulable=true when the Job completes.
74
75
Cordonbool`json:"cordon,omitempty"`
75
-
// If left unspecified, no drain will be performed. See:
// Configuration for draining nodes prior to upgrade. If left unspecified, no drain will be performed.
78
77
Drain*DrainSpec`json:"drain,omitempty"`
79
-
// The upgrade container.
80
-
// If no tag is included in the image name, the tag portion of the image will be the value from .status.latestVersion a.k.a. the resolved version for this plan.
81
-
Upgrade*ContainerSpec`json:"upgrade,omitempty"`
82
78
// Image Pull Secrets, used to pull images for the Job.
0 commit comments