Source code for saltext.kubernetes.modules.kuberesource_workload

"""
Per-resource workload ops (scale / restart / rollback).

.. versionadded:: 2.1.0

Dormant on stock Salt — see ``saltext.kubernetes.resources.kubernetes``.
"""

# pylint: disable=undefined-variable

from saltext.kubernetes.utils._kuberesource import require_kind
from saltext.kubernetes.utils._kuberesource import resource_identity
from saltext.kubernetes.utils._kuberesource import virtual_or_dormant

__virtualname__ = "kubernetes"


_SCALABLE_KINDS = ("deployment", "stateful_set", "replica_set")
_RESTARTABLE_KINDS = ("deployment", "stateful_set", "replica_set", "daemon_set")


def __virtual__():
    return virtual_or_dormant()


[docs] def scale(replicas): """ Set replicas on the active workload resource. CLI Example: .. code-block:: bash salt '*' kuberesource_workload.scale """ kind, namespace, name = resource_identity(__resource__) # noqa: F821 require_kind(kind, *_SCALABLE_KINDS) return __salt__["kubernetes.scale"]( # noqa: F821 kind=kind, name=name, replicas=replicas, namespace=namespace or "default" )
[docs] def restart(): """ Trigger a rolling restart on the active workload resource. CLI Example: .. code-block:: bash salt '*' kuberesource_workload.restart """ kind, namespace, name = resource_identity(__resource__) # noqa: F821 require_kind(kind, *_RESTARTABLE_KINDS) return __salt__["kubernetes.restart"]( # noqa: F821 kind=kind, name=name, namespace=namespace or "default" )
[docs] def rollback(to_revision=None): """ Roll the active Deployment resource back to a previous revision. CLI Example: .. code-block:: bash salt '*' kuberesource_workload.rollback """ kind, namespace, name = resource_identity(__resource__) # noqa: F821 require_kind(kind, "deployment") return __salt__["kubernetes.rollback"]( # noqa: F821 name=name, namespace=namespace or "default", to_revision=to_revision )