ManagedOSImage reference
The ManagedOSImage resource is responsible of defining an OS image or image version that needs to be applied to each node in a set of targeted Clusters.
There are several keys that can be configured under a ManagedOSImage
resource spec.
apiVersion: elemental.cattle.io/v1beta1
kind: ManagedOSImage
metadata:
name: my-upgrade
namespace: fleet-default
spec:
# Set to the new SUSE® Rancher Prime OS Manager version you would like to upgrade to or track the latest tag
osImage: "registry.suse.com/suse/sle-micro/5.5:latest"
clusterTargets:
- clusterName: my-cluster
ManagedOSImageSpec reference
Key | Type | Default value | Description |
---|---|---|---|
osImage |
string |
empty |
The fully qualified image to upgrade nodes to. This value has priority over |
managedOSVersionName |
string |
empty |
The name of a |
cloudConfig |
object |
null |
A cloud-init or yip config to apply to the nodes during upgrades. See reference. |
nodeSelector |
object |
null |
This selector can be used to target specific nodes within the |
concurrency |
int |
1 |
How many nodes within the same cluster should be upgraded at the same time. |
cordon |
bool |
true |
Set this to true if the nodes should be cordoned before applying the upgrade. Ineffective when |
drain |
object |
See ref |
Configure if and how nodes should be drained before applying the upgrade. See reference. |
prepare |
object |
null |
The prepare init container, if specified, is run before cordon/drain which is run before the upgrade container. See reference. |
upgradeContainer |
object |
null |
The upgrade container that will run the upgrade on the nodes. See reference. |
clusterRolloutStrategy |
object |
null |
RolloverStrategy controls the rollout of the upgrade bundle across clusters. See reference. |
clusterTargets |
list |
null |
Declares clusters to deploy the upgrade plan to. See reference. |
cloudConfig
This describes a cloud-init or yip config that will be copied to each upgraded node to the /oem/90_operator.yaml
path.
This config will be applied by the system after reboot.
For more information and examples, see the MachineRegistration
spec.config.cloud-config
reference.
nodeSelector
This Label Selector can be used to restrict the upgrades to only a certain set of nodes within the targeted Clusters.
Click here for details
nodeSelector:
matchExpressions:
- {key: my-node/label, operator: Exists}
drain
Configure if and how nodes should be drained.
To disable drain during upgrades you can configure this field to null
.
Drain is enabled by default.
The drain settings directly translates to the kubectl drain command being executed on the node before upgrade.
Key | Type | Default value | Description |
---|---|---|---|
timeout |
time.Duration |
null |
The length of time to wait before giving up draining a node, zero means infinite. |
gracePeriod |
int |
null |
Period of time in seconds given to each pod to terminate gracefully. If negative, the default value specified in the pod will be used. |
deleteEmptydirData |
bool |
true |
Continue even if there are pods using emptyDir (local data that will be deleted when the node is drained). |
ignoreDaemonSets |
bool |
true |
Ignore DaemonSet-managed pods. |
force |
bool |
true |
Continue even if there are pods that do not declare a controller. |
disableEviction |
bool |
false |
Force drain to use delete, even if eviction is supported. This will bypass checking PodDisruptionBudgets, use with caution. |
skipWaitForDeleteTimeout |
int |
60 |
If pod DeletionTimestamp older than N seconds, skip waiting for the pod. Seconds must be greater than 0 to skip. |
podSelector |
label selector |
null |
Label selector to filter pods on the node. Only selected pods will be evicted. |
prepare
Defines a prepare
Init container that is ran before the upgrade
container executing the upgrade job on a node.
The keys directly translate to the container specification.
Note that the node filesystem is mounted at /host
inside the container.
Key | Type | Default value | Description |
---|---|---|---|
image |
string |
empty |
Container image name. |
command |
list |
empty |
Entrypoint array. |
args |
list |
empty |
Arguments to the entrypoint. |
env |
list |
empty |
List of environment variables to set in the container. |
envFrom |
list |
empty |
List of sources to populate environment variables in the container. |
volumes |
list |
empty |
List of |
securityContext |
object |
null |
The security options the ephemeral container should be run with. |
prepare.volumes
Each volume definition will translate to a hostPath volume (source
) which will be mounted in the container (destination
).
Note that by default the host root filesystem /
will always be mounted at /host
.
Key | Type | Default value | Description |
---|---|---|---|
name |
string |
empty |
Volume name. |
source |
string |
empty |
HostPath volume path. |
destination |
string |
empty |
HostPath volume mount path. |
Click here for details
volumes:
- name: my-custom-volume
source: /foo
destination: /foo
upgradeContainer
Defines the upgrade
container executing the upgrade job on a node.
The keys directly translate to the container specification.
Note that the node filesystem is mounted at /host
inside the container.
When using any SUSE® Rancher Prime OS Manager or SUSE® Rancher Prime OS Manager based image you are expected to only edit the |
clusterRolloutStrategy
This controls the rollout of the bundle across clusters.
For more information you can read the reference documentation.
clusterTargets
Select Clusters to be targeted for the OS image upgrade.
For more information you can read the reference documentation.
Click here for details
clusterTargets:
- clusterName: volcano