コード例 #1
0
    def test_cluster_host_config(self):

        expected_error = "'noderole' list must have two values [ node, role ]"
        try:
            K8sClusterHostConfig.create_from_list(noderole=[1, 2, 3])
        except AssertionError as e:
            self.assertEquals(
                e.args[0],
                expected_error,
            )

        conf = K8sClusterHostConfig.create_from_list(
            noderole=["/api/v2/worker/k8shost/1", "master"])
        self.assertIsInstance(conf, K8sClusterHostConfig)
コード例 #2
0
    def create(
        self,
        name,
        k8shosts_config,
        description=None,
        k8s_version=None,
        pod_network_range="10.192.0.0/12",
        service_network_range="10.96.0.0/12",
        pod_dns_domain="cluster.local",
        persistent_storage_local=False,
        persistent_storage_nimble_csi=False,
    ):
        """Create a K8s Cluster

        :param name: the cluster name
        :param k8shosts_config: k8s host ids and roles 'id1:master|worker,id2:master|worker,...'
        :param description: the cluster descripton
        :param k8s_version: e.g. 1.17.0
        :param pod_network_range: the pod network range, default='10.192.0.0/12'
        :param service_network_range: the service network range, default='10.96.0.0/12'
        :param pod_dns_domain: the pod dns domain, default='cluster.local'
        :param persistent_storage_local: True/False
        :param persistent_storage_nimble_csi: True/False
        """

        host_config = [
            K8sClusterHostConfig.create_from_list(h.split(":"))
            for h in k8shosts_config.split(",")
        ]

        print(
            get_client().k8s_cluster.create(
                name=name,
                description=description,
                k8s_version=k8s_version,
                pod_network_range=pod_network_range,
                service_network_range=service_network_range,
                pod_dns_domain=pod_dns_domain,
                persistent_storage_local=persistent_storage_local,
                persistent_storage_nimble_csi=persistent_storage_nimble_csi,
                k8shosts_config=host_config,
            )
        )
コード例 #3
0
    def create(
        self,
        name,
        k8shosts_config,
        description=None,
        k8s_version=None,
        pod_network_range="10.192.0.0/12",
        service_network_range="10.96.0.0/12",
        pod_dns_domain="cluster.local",
        persistent_storage_local=False,
        persistent_storage_nimble_csi=False,
        addons=[],
        external_identity_server={},
        external_groups=[],
    ):
        """Create a K8s Cluster.

        :param name: the cluster name
        :param k8shosts_config: k8s host ids and roles 'id1:master|worker,id2:
            master|worker,...'
        :param description: the cluster descripton
        :param k8s_version: e.g. 1.17.0
        :param pod_network_range: the pod network range,
            default='10.192.0.0/12'
        :param service_network_range: the service network range,
            default='10.96.0.0/12'
        :param pod_dns_domain: the pod dns domain, default='cluster.local'
        :param persistent_storage_local: True/False
        :param persistent_storage_nimble_csi: True/False
        :param addons: list of required addons. See:
            `hpecp k8scluster get-available-addons`
        :param external_identity_server: dict
           Example {
                "bind_pwd":"password",
                "user_attribute":"CN",
                "bind_type":"search_bind",
                "bind_dn":"cn=Administrator,CN=Users,DC=samdom,DC=example,DC=com",
                "host":"10.1.0.15",
                "group_attribute":"member",
                "security_protocol":"ldaps",
                "base_dn":"CN=Users,DC=samdom,DC=example,DC=com",
                "verify_peer":false,
                "type":"Active Directory",
                "port":636}
        """
        host_config = [
            K8sClusterHostConfig.create_from_list(h.split(":"))
            for h in k8shosts_config.split(",")
        ]

        print(base.get_client().k8s_cluster.create(
            name=name,
            description=description,
            k8s_version=k8s_version,
            pod_network_range=pod_network_range,
            service_network_range=service_network_range,
            pod_dns_domain=pod_dns_domain,
            persistent_storage_local=persistent_storage_local,
            persistent_storage_nimble_csi=persistent_storage_nimble_csi,
            k8shosts_config=host_config,
            addons=addons,
            external_identity_server=external_identity_server,
            external_groups=external_groups,
        ))
    def create(
        self,
        name,
        k8shosts_config,
        description=None,
        k8s_version=None,
        pod_network_range="10.192.0.0/12",
        service_network_range="10.96.0.0/12",
        pod_dns_domain="cluster.local",
        persistent_storage_local=False,
        persistent_storage_nimble_csi=False,
        addons=[],
        external_identity_server={},
        ext_id_svr_bind_pwd=None,
        ext_id_svr_user_attribute=None,
        ext_id_svr_bind_type=None,
        ext_id_svr_bind_dn=None,
        ext_id_svr_host=None,
        ext_id_svr_group_attribute=None,
        ext_id_svr_security_protocol=None,
        ext_id_svr_base_dn=None,
        ext_id_svr_verify_peer=None,
        ext_id_svr_type=None,
        ext_id_svr_port=None,
        external_groups=[],
        datafabric=False,
        datafabric_name=None,
    ):
        """Create a K8s Cluster.

        :param name: the cluster name
        :param k8shosts_config: k8s host ids and roles 'id1:master|worker,id2:
            master|worker,...'
        :param description: the cluster descripton
        :param k8s_version: e.g. 1.17.0
        :param pod_network_range: the pod network range,
            default='10.192.0.0/12'
        :param service_network_range: the service network range,
            default='10.96.0.0/12'
        :param pod_dns_domain: the pod dns domain, default='cluster.local'
        :param persistent_storage_local: True/False
        :param persistent_storage_nimble_csi: True/False
        :param addons: list of required addons. See:
            `hpecp k8scluster get-available-addons`
        :param external_identity_server: dict (deprecated)
           Example '{"bind_pwd":"password",
                "user_attribute":"CN",
                "bind_type":"search_bind",
                "bind_dn":"cn=Administrator,CN=Users,DC=samdom,DC=example,DC=com",
                "host":"10.1.0.15",
                "group_attribute":"member",
                "security_protocol":"ldaps",
                "base_dn":"CN=Users,DC=samdom,DC=example,DC=com",
                "verify_peer":false,
                "type":"Active Directory",
                "port":636}'
        :param ext_id_svr_bind_pwd str
        :param ext_id_svr_user_attribute str
        :param ext_id_svr_bind_type str
        :param ext_id_svr_bind_dn str
        :param ext_id_svr_host str
        :param ext_id_svr_group_attribute str
        :param ext_id_svr_security_protocol str
        :param ext_id_svr_base_dn str
        :param ext_id_svr_verify_peer bool
        :param ext_id_svr_type str
        :param ext_id_svr_port int
        """
        host_config = [
            K8sClusterHostConfig.create_from_list(h.split(":"))
            for h in k8shosts_config.split(",")
        ]

        if external_identity_server:
            if not isinstance(external_identity_server, dict):
                print(
                    ("Could not parse 'external_identity_server' parameter"
                     " - is it valid json?\n"
                     "Received: " + external_identity_server + "\n"),
                    file=sys.stderr,
                )
                sys.exit(1)
        else:
            external_identity_server = {}

        if ext_id_svr_bind_pwd is not None:
            external_identity_server["bind_pwd"] = ext_id_svr_bind_pwd

        if ext_id_svr_user_attribute is not None:
            external_identity_server[
                "user_attribute"] = ext_id_svr_user_attribute

        if ext_id_svr_bind_type is not None:
            external_identity_server["bind_type"] = ext_id_svr_bind_type

        if ext_id_svr_bind_dn is not None:
            external_identity_server["bind_dn"] = ext_id_svr_bind_dn

        if ext_id_svr_host is not None:
            external_identity_server["host"] = ext_id_svr_host

        if ext_id_svr_group_attribute is not None:
            external_identity_server[
                "group_attribute"] = ext_id_svr_group_attribute

        if ext_id_svr_security_protocol is not None:
            external_identity_server[
                "security_protocol"] = ext_id_svr_security_protocol

        if ext_id_svr_base_dn is not None:
            external_identity_server["base_dn"] = ext_id_svr_base_dn

        if ext_id_svr_verify_peer is not None:
            external_identity_server["verify_peer"] = json.loads(
                ext_id_svr_verify_peer.lower())

        if ext_id_svr_type is not None:
            external_identity_server["type"] = ext_id_svr_type

        if ext_id_svr_port is not None:
            external_identity_server["port"] = int(ext_id_svr_port)

        print(base.get_client().k8s_cluster.create(
            name=name,
            description=description,
            k8s_version=k8s_version,
            pod_network_range=pod_network_range,
            service_network_range=service_network_range,
            pod_dns_domain=pod_dns_domain,
            persistent_storage_local=persistent_storage_local,
            persistent_storage_nimble_csi=persistent_storage_nimble_csi,
            k8shosts_config=host_config,
            addons=addons,
            external_identity_server=external_identity_server,
            external_groups=external_groups,
            datafabric=datafabric,
            datafabric_name=datafabric_name,
        ))