示例#1
0
def ensure_service_account(api: client.CoreV1Api, account, name, namespace):
    if len(
            api.list_namespaced_service_account(
                namespace=namespace,
                field_selector=f'metadata.name={name}').items) == 0:
        logger.info(f'creating ServiceAccount: {name}')
        api.create_namespaced_service_account(namespace=namespace,
                                              body=account)
    else:
        logger.info(f'ServiceAccount exists: {name}')
示例#2
0
def create_service_account(v1: CoreV1Api, namespace, body) -> None:
    """
    Create a ServiceAccount based on a dict.

    :param v1: CoreV1Api
    :param namespace: namespace name
    :param body: a dict
    :return:
    """
    print("Create a SA:")
    v1.create_namespaced_service_account(namespace, body)
    print(f"Service account created with name '{body['metadata']['name']}'")
def create_service_account(v1: CoreV1Api, namespace, body) -> None:
    """
    Create a ServiceAccount based on a dict.

    :param v1: CoreV1Api
    :param namespace: namespace name
    :param body: a dict
    :return:
    """
    print("Create a SA:")
    v1.create_namespaced_service_account(namespace, body)
    print(f"Service account created with name '{body['metadata']['name']}'")
def create_sa(api: client.CoreV1Api, configmap: Resource,
              cro_spec: ResourceChunk, ns: str, name_suffix: str,
              logger: logging.Logger):
    sa_name = cro_spec.get("serviceaccount", {}).get("name")
    if not sa_name:
        tpl = yaml.safe_load(configmap.data['chaostoolkit-sa.yaml'])
        sa_name = tpl["metadata"]["name"]
        sa_name = f"{sa_name}-{name_suffix}"
        tpl["metadata"]["name"] = sa_name
        set_ns(tpl, ns)
        try:
            api.create_namespaced_service_account(body=tpl, namespace=ns)
            return tpl
        except ApiException as e:
            if e.status == 409:
                logger.info(f"Service account '{sa_name}' already exists.")
            else:
                raise kopf.PermanentError(
                    f"Failed to create service account: {str(e)}")