Python kubernetes.client.BatchV1beta1Api() Examples

The following are 3 code examples of kubernetes.client.BatchV1beta1Api(). You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may also want to check out all available functions/classes of the module kubernetes.client , or try the search function .
Example #1
Source File: k8s.py    From armada with Apache License 2.0 6 votes vote down vote up
def __init__(self, bearer_token=None):
        '''
        Initialize connection to Kubernetes
        '''
        self.bearer_token = bearer_token
        api_client = None

        try:
            config.load_incluster_config()
        except config.config_exception.ConfigException:
            config.load_kube_config()

        if self.bearer_token:
            # Configure API key authorization: Bearer Token
            configuration = client.Configuration()
            configuration.api_key_prefix['authorization'] = 'Bearer'
            configuration.api_key['authorization'] = self.bearer_token
            api_client = client.ApiClient(configuration)

        self.client = client.CoreV1Api(api_client)
        self.batch_api = client.BatchV1Api(api_client)
        self.batch_v1beta1_api = client.BatchV1beta1Api(api_client)
        self.custom_objects = client.CustomObjectsApi(api_client)
        self.api_extensions = client.ApiextensionsV1beta1Api(api_client)
        self.extension_api = client.ExtensionsV1beta1Api(api_client)
        self.apps_v1_api = client.AppsV1Api(api_client) 
Example #2
Source File: k8s.py    From armada with Apache License 2.0 6 votes vote down vote up
def __init__(self):
        '''
        Initialize connection to Kubernetes
        '''
        try:
            config.load_incluster_config()
        except config.config_exception.ConfigException:
            config.load_kube_config()

        self.client = client.CoreV1Api()
        self.batch_api = client.BatchV1Api()
        self.batch_v1beta1_api = client.BatchV1beta1Api()
        self.extension_api = client.ExtensionsV1beta1Api() 
Example #3
Source File: pipeline.py    From freight with Apache License 2.0 5 votes vote down vote up
def run_step_cronjob(
    step: Dict[str, Any], context: PipelineContext
) -> List[Tuple[Callable, Dict[str, str]]]:
    # Update a Kubernetes CronJob
    context.workspace.log.info(f"Updating CronJob: {repr(step)}")

    api = client.BatchV1beta1Api(context.kube.client)

    selector = format_task(step["selector"], context.task)
    selector.setdefault("namespace", "default")
    containers = format_task(step["containers"], context.task)

    watchers: List[Tuple[Callable, Dict[str, str]]] = []

    # See comments about Deployments, it's almost identical, with the key
    # difference being we don't need to need to wait for any rollout, since
    # this just gets applied immediately to the spec.
    for cronjob in api.list_namespaced_cron_job(**selector).items:
        namespace = cronjob.metadata.name
        name = cronjob.metadata.name
        changes = False
        for container in cronjob.spec.job_template.spec.template.spec.containers:
            for c in containers:
                if container.name == c["name"]:
                    container.image = c["image"]
                    changes = True

        if changes:
            if cronjob.metadata.annotations is None:
                cronjob.metadata.annotations = {}
            for k, v in asdict(context.task).items():
                if k == "ssh_key":
                    continue
                k = f"freight.sentry.io/{k}"
                cronjob.metadata.annotations[k] = v

            resp = api.patch_namespaced_cron_job(
                name=cronjob.metadata.name,
                namespace=cronjob.metadata.namespace,
                body=cronjob,
            )