#!/usr/bin/python # -*- coding: utf-8 -*- # Copyright (c) 2021, Red Hat # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function __metaclass__ = type # STARTREMOVE (downstream) DOCUMENTATION = r''' module: openshift_adm_prune_deployments short_description: Remove old completed and failed deployment configs version_added: "2.2.0" author: - Aubin Bikouo (@abikouo) description: - This module allow administrators to remove old completed and failed deployment configs. - Analogous to C(oc adm prune deployments). extends_documentation_fragment: - kubernetes.core.k8s_auth_options options: namespace: description: - Use to specify namespace for deployments to be deleted. type: str keep_younger_than: description: - Specify the minimum age (in minutes) of a deployment for it to be considered a candidate for pruning. type: int orphans: description: - If C(true), prune all deployments where the associated DeploymentConfig no longer exists, the status is complete or failed, and the replica size is C(0). type: bool default: False requirements: - python >= 3.6 - kubernetes >= 12.0.0 ''' EXAMPLES = r''' - name: Prune Deployments from testing namespace community.okd.openshift_adm_prune_deployments: namespace: testing - name: Prune orphans deployments, keep younger than 2hours community.okd.openshift_adm_prune_deployments: orphans: True keep_younger_than: 120 ''' RETURN = r''' replication_controllers: type: list description: list of replication controllers candidate for pruning. returned: always ''' # ENDREMOVE (downstream) import copy from ansible.module_utils.basic import AnsibleModule try: from ansible_collections.kubernetes.core.plugins.module_utils.args_common import AUTH_ARG_SPEC except ImportError as e: pass def argument_spec(): args = copy.deepcopy(AUTH_ARG_SPEC) args.update( dict( namespace=dict(type='str',), keep_younger_than=dict(type='int',), orphans=dict(type='bool', default=False), ) ) return args def main(): module = AnsibleModule(argument_spec=argument_spec(), supports_check_mode=True) from ansible_collections.community.okd.plugins.module_utils.openshift_adm_prune_deployments import ( OpenShiftAdmPruneDeployment) adm_prune_deployments = OpenShiftAdmPruneDeployment(module) adm_prune_deployments.execute() if __name__ == '__main__': main()