Exemplo n.º 1
0
def get_or_create_multi_user_volume_claim(label_suffixes):
    assert len(label_suffixes) > 0, 'must provide some labels to identify the volume'
    claim_labels = labels_manager.get_resource_labels(label_suffixes=dict(
        label_suffixes, **_get_cluster_volume_label_suffixes()
    ))
    pvcs = kubectl.get_items_by_labels('PersistentVolumeClaim', claim_labels, required=False)
    if len(pvcs) > 0:
        assert len(pvcs) == 1
        claim_name = pvcs[0]['metadata']['name']
    else:
        storage_class_name = get_multi_user_storage_class_name()
        claim_name = 'cc' + _generate_password(12)
        logs.info(f'Creating persistent volume claim: {claim_name}')
        logs.info(f'labels: {claim_labels}')
        kubectl.apply(kubectl.get_persistent_volume_claim(
            claim_name,
            claim_labels,
            {
                'storageClassName': storage_class_name,
                'accessModes': ['ReadWriteMany'],
                'resources': {
                    'requests': {
                        'storage': '1Mi'
                    }
                }
            }
        ))
    return {'persistentVolumeClaim': {'claimName': claim_name}}
def get_labels(router_name, router_type, for_deployment=False):
    label_prefix = labels_manager.get_label_prefix()
    extra_labels = {'app': f'{label_prefix}-router-{router_name}'} if for_deployment else {}
    return labels_manager.get_resource_labels(
        get_label_suffixes(router_name, router_type),
        extra_labels=extra_labels
    )
Exemplo n.º 3
0
def create_volume(disk_size_gb, labels, use_existing_disk_name=None):
    assert len(labels) > 0, 'must provide some labels to identify the volume'
    labels = dict(
        labels,
        **labels_manager.get_resource_labels(label_suffixes=_get_cluster_volume_label_suffixes())
    )
    return get_provider().create_volume(disk_size_gb, labels, use_existing_disk_name=use_existing_disk_name)
Exemplo n.º 4
0
def get_resource_labels(submodule, provider_id, extra_label_suffixes=None, for_deployment=False, suffix=None):
    label_suffixes = {
        'provider-submodule': submodule,
        'provider-id': provider_id,
    }
    if suffix:
        label_suffixes['provider-submodule-suffix'] = suffix
    if extra_label_suffixes:
        label_suffixes.update(**extra_label_suffixes)
    extra_labels = {'app': get_deployment_app_label(submodule, provider_id, suffix=suffix)} if for_deployment else {}
    return labels_manager.get_resource_labels(label_suffixes, extra_labels=extra_labels)
Exemplo n.º 5
0
def _get_labels(cache_key=None, secret_name=None, configmap_name=None, namespace=None, extra_operator_labels=None):
    if cache_key:
        assert not secret_name and not configmap_name and not namespace
    else:
        cache_key = _get_cache_key(secret_name, configmap_name, namespace)
    config_type, namespace, config_name = _parse_cache_key(cache_key)
    operator_labels = {
        f'operator-config-{config_type}': config_name,
        'operator-config-namespace': namespace
    }
    if extra_operator_labels:
        operator_labels.update(**extra_operator_labels)
    return labels_manager.get_resource_labels(operator_labels)
Exemplo n.º 6
0
def get_resource_labels(singular,
                        name,
                        extra_label_suffixes=None,
                        for_deployment=False):
    label_suffixes = {
        f'crd-{singular}-name': name,
    }
    if extra_label_suffixes:
        label_suffixes.update(**extra_label_suffixes)
    extra_labels = {
        'app': get_deployment_app_label(singular, name)
    } if for_deployment else {}
    return labels_manager.get_resource_labels(label_suffixes,
                                              extra_labels=extra_labels)
Exemplo n.º 7
0
def delete_by_extra_operator_labels(extra_operator_labels):
    labels = labels_manager.get_resource_labels(extra_operator_labels)
    labels_manager.delete_by_labels(labels, kinds=['configmap', 'secret'])