Files
community.okd/plugins/modules/openshift_adm_prune_builds.py
Bikouo Aubin f94eabffa1 update collection with latest feature from kubernetes.core (#181)
* Rebase code with kubernetes.core stable-2.4
2023-02-03 07:57:24 +01:00

125 lines
3.2 KiB
Python

#!/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_builds
short_description: Prune old completed and failed builds
version_added: "2.3.0"
author:
- Aubin Bikouo (@abikouo)
description:
- This module allow administrators to delete old completed and failed builds.
- Analogous to C(oc adm prune builds).
extends_documentation_fragment:
- kubernetes.core.k8s_auth_options
options:
namespace:
description:
- Use to specify namespace for builds to be deleted.
type: str
keep_younger_than:
description:
- Specify the minimum age (in minutes) of a Build for it to be considered a candidate for pruning.
type: int
orphans:
description:
- If C(true), prune all builds whose associated BuildConfig no longer exists and whose status is
complete, failed, error, or cancelled.
type: bool
default: False
requirements:
- python >= 3.6
- kubernetes >= 12.0.0
'''
EXAMPLES = r'''
# Run deleting older completed and failed builds and also including
# all builds whose associated BuildConfig no longer exists
- name: Run delete orphan Builds
community.okd.openshift_adm_prune_builds:
orphans: True
# Run deleting older completed and failed builds keep younger than 2hours
- name: Run delete builds, keep younger than 2h
community.okd.openshift_adm_prune_builds:
keep_younger_than: 120
# Run deleting builds from specific namespace
- name: Run delete builds from namespace
community.okd.openshift_adm_prune_builds:
namespace: testing_namespace
'''
RETURN = r'''
builds:
description:
- The builds that were deleted
returned: success
type: complex
contains:
api_version:
description: The versioned schema of this representation of an object.
returned: success
type: str
kind:
description: Represents the REST resource this object represents.
returned: success
type: str
metadata:
description: Standard object metadata. Includes name, namespace, annotations, labels, etc.
returned: success
type: dict
spec:
description: Specific attributes of the object. Will vary based on the I(api_version) and I(kind).
returned: success
type: dict
status:
description: Current status details for the object.
returned: success
type: dict
'''
# ENDREMOVE (downstream)
import copy
from ansible_collections.kubernetes.core.plugins.module_utils.args_common import AUTH_ARG_SPEC
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():
from ansible_collections.community.okd.plugins.module_utils.openshift_builds import OpenShiftPruneBuilds
module = OpenShiftPruneBuilds(argument_spec=argument_spec(), supports_check_mode=True)
module.run_module()
if __name__ == '__main__':
main()