class NodeGroupDeploymentStrategy(Message): (source)
Constructor: NodeGroupDeploymentStrategy(initial_message, max_unavailable, max_surge, drain_timeout)
Undocumented
| Method | __init__ |
Create a message from a source message and field values. |
| Method | drain |
Set or clear the generated drain_timeout field. |
| Method | max |
Set or clear the generated max_surge field. |
| Method | max |
Set or clear the generated max_unavailable field. |
| Constant | __PROTO |
Protobuf message descriptor from the registry. |
| Constant | __PROTO |
Fully qualified protobuf message name. |
| Constant | __PY |
Mapping from Python member names to protobuf names. |
| Property | drain |
Maximum amount of time that the service will spend attempting to gracefully drain a node (evicting its pods) before falling back to pod deletion. A value of 0 means no timeout: the node can be drained for an unlimited time... |
| Property | max |
The maximum number of additional nodes that can be provisioned above the desired number of nodes during the update process. |
| Property | max |
The maximum number of nodes that can be simultaneously unavailable during the update process. |
Inherited from Message:
| Class Method | from |
Create a message from protobuf JSON mapping. |
| Class Method | |
Create a message by parsing protobuf wire-format bytes. |
| Class Method | get |
Return the message descriptor from the registry. |
| Class Method | is |
Return True if a Python field contains credentials. |
| Class Method | is |
Return True if a Python field has the sensitive annotation. |
| Method | __dir__ |
List generated fields, oneofs, and nested declarations. |
| Method | __repr__ |
Render non-default fields without disclosing annotated secrets. |
| Method | |
Return the serialized protobuf wire size in bytes. |
| Method | check |
Check presence using a generated Python field name. |
| Method | |
Clear all fields, extensions, unknown fields, and the reset mask. |
| Method | clear |
Clear an extension value. |
| Method | |
Clear a protobuf field or oneof and record it in the reset mask. |
| Method | |
Replace this message with an independent copy of another message. |
| Method | |
Return paths of missing required fields. |
| Method | get |
Return an extension value. |
| Method | get |
Create a reset mask from the current protobuf state. |
| Method | get |
Return the reset mask for field changes. |
| Method | has |
Return True if an extension has explicit presence. |
| Method | |
Return True if a protobuf field or oneof has explicit presence. |
| Method | is |
Return True if a generated field has its default value. |
| Method | |
Return True if every required field is initialized. |
| Method | |
Merge fields from another message of the same generated type. |
| Method | |
Merge protobuf wire-format bytes into this message. |
| Method | |
Parse protobuf wire-format bytes and replace this message. |
| Method | |
Serialize the message using protobuf wire format. |
| Method | set |
Set an extension value. |
| Method | set |
Set the reset mask for this message. |
| Method | to |
Serialize this message using protobuf JSON mapping. |
| Method | which |
Return the selected Python field name for a protobuf oneof. |
| Method | |
Return the selected protobuf field name for a oneof. |
| Constant | __EXTENSION |
Registry that decodes protobuf extensions. |
| Constant | __FIELDS__ |
Runtime field data that the generator creates. |
| Constant | __MAX |
Maximum protobuf nesting depth for serialization, parsing, and initialization checks. |
| Constant | __PB2 |
Alias for code that expects a protobuf descriptor. |
| Constant | __REGISTRY__ |
Registry for the message and its descriptor. |
| Property | |
Provide protobuf-compatible mapping access to extension values. |
| Class Method | _fields |
Undocumented |
| Class Method | _fields |
Undocumented |
| Class Method | _fields |
Undocumented |
| Class Method | _from |
Deserialize internally without invoking generated user warnings. |
| Class Method | _oneof |
Undocumented |
| Class Method | _public |
Undocumented |
| Class Method | _public |
Undocumented |
| Static Method | _format |
Undocumented |
| Static Method | _repr |
Undocumented |
| Method | _bind |
Undocumented |
| Method | _bind |
Undocumented |
| Method | _check |
Undocumented |
| Method | _child |
Undocumented |
| Method | _clear |
Undocumented |
| Method | _closed |
Undocumented |
| Method | _converted |
Undocumented |
| Method | _decode |
Undocumented |
| Method | _detach |
Undocumented |
| Method | _field |
Undocumented |
| Method | _field |
Undocumented |
| Method | _find |
Undocumented |
| Method | _get |
Undocumented |
| Method | _map |
Undocumented |
| Method | _merge |
Undocumented |
| Method | _nesting |
Undocumented |
| Method | _notify |
Undocumented |
| Method | _record |
Undocumented |
| Method | _repeated |
Undocumented |
| Method | _select |
Undocumented |
| Method | _serialize |
Undocumented |
| Method | _set |
Undocumented |
| Method | _suspend |
Undocumented |
| Method | _suspend |
Undocumented |
| Method | _try |
Undocumented |
| Method | _write |
Undocumented |
| Instance Variable | _extensions |
Undocumented |
| Instance Variable | _mutation |
Undocumented |
| Instance Variable | _on |
Undocumented |
| Instance Variable | _oneofs |
Undocumented |
| Instance Variable | _present |
Undocumented |
| Instance Variable | _reset |
Undocumented |
| Instance Variable | _reset |
Undocumented |
| Instance Variable | _unknown |
Undocumented |
| Instance Variable | _values |
Undocumented |
| Instance Variable | _views |
Undocumented |
SerializableMessage | None = None, *, max_unavailable: PercentOrCount | None | UnsetType = _NEBIUS_UNSET, max_surge: PercentOrCount | None | UnsetType = _NEBIUS_UNSET, drain_timeout: timedelta | Duration | None | UnsetType = _NEBIUS_UNSET):
(source)
¶
Create a message from a source message and field values.
Protobuf message descriptor from the registry.
| Value |
|
Mapping from Python member names to protobuf names.
| Value |
|
Maximum amount of time that the service will spend attempting to gracefully drain a node (evicting its pods) before falling back to pod deletion. A value of 0 means no timeout: the node can be drained for an unlimited time. Important consequence of that is if PodDisruptionBudget doesn't allow evicting a pod, then NodeGroup update with node re-creation will hang on that pod eviction. Note that this is different from kubectl drain --timeout, which gives up and returns an error.
On 2026-08-01, defaults to 0. IMPORTANT: starting from Q3 2026 new default is 10m; for new clusters it will default to 10m, node groups in existing clusters will be gradually migrated during Q3 to the default of 10m as well. To get the actual value for your node group, please see 'strategy' in its status.
The maximum number of additional nodes that can be provisioned above the desired number of nodes during the update process.
This value can be specified either as an absolute number (for example 3) or as a percentage of the desired number of nodes (for example 5%).
When specified as a percentage, the actual number is calculated by rounding up to the nearest whole number. This value cannot be 0 if max_unavailable is also set to 0.
On 2026-08-01, defaults to 1. IMPORTANT: starting from Q3 2026 new default is 0; for new clusters it will default to 0, node groups in existing clusters will be gradually migrated during Q3 to the default of 0 as well. To get the actual value for your node group, please see 'strategy' in its status.
Example: If set to 25%, the node group can scale up by an additional 25% during the update, allowing new nodes to be added before old nodes are removed, which helps minimize workload disruption.
NOTE:
it is user responsibility to ensure that there are enough quota for provision nodes above the desired number. Available quota effectively limits max_surge. In case of not enough quota even for one extra node, update operation will hung because of quota exhausted error. Such error will be visible in Operation.progress_data.
The maximum number of nodes that can be simultaneously unavailable during the update process.
This value can be specified either as an absolute number (for example 3) or as a percentage of the desired number of nodes (for example 5%).
When specified as a percentage, the actual number is calculated by rounding down to the nearest whole number. This value cannot be 0 if max_surge is also set to 0.
On 2026-08-01, defaults to 0. IMPORTANT: starting from Q3 2026 new default is 1; for new clusters it will default to 1, node groups in existing clusters will be gradually migrated during Q3 to the default of 1 as well. To get the actual value for your node group, please see 'strategy' in its status.
Example: If set to 20%, up to 20% of the nodes can be taken offline at once during the update, ensuring that at least 80% of the desired nodes remain operational.