def test_read_deploy_config_values2(self):
     config = reader.read("tests/fixtures/deployment/values2.yml")
     assert isinstance(config, DeploymentConfig)
     assert config.deployment_type is None
     assert config.namespace is None
     assert config.rbac.enabled is False
     assert config.ui is None
     assert config.timezone is None
     assert config.environment == "staging"
     assert config.ingress.enabled is False
     assert config.gateway.service.get("type") == "NodePort"
     assert config.user.to_dict() == {"password": "******"}
     assert config.node_selector == {"polyaxon": "core"}
     assert config.tolerations is None
     assert config.affinity is None
     assert config.limit_resources is None
     assert config.global_replicas is None
     assert config.global_concurrency is None
     assert config.api.replicas == 3
     assert config.organization_key is None
     assert config.scheduler.replicas == 3
     assert config.beat is None
     assert config.hooks is None
     assert config.postgresql.persistence is not None
     assert config.rabbitmq is None
     assert config.email is not None
     assert config.host_name is None
     assert config.allowed_hosts is None
     assert config.intervals is None
     assert config.artifacts_store.name == "azure"
     assert config.artifacts_store.kind == "wasb"
     assert config.artifacts_store.secret.to_dict() == {"name": "az-secret"}
     assert len(config.connections) == 5
     assert config.ldap is None
 def test_read_deploy_config_values1(self):
     config = reader.read("tests/fixtures/deployment/values1.yml")
     assert isinstance(config, DeploymentConfig)
     assert config.namespace is None
     assert config.rbac.enabled is True
     assert config.admin_view_enabled is None
     assert config.timezone is None
     assert config.environment == "staging"
     assert config.ingress.enabled is True
     assert config.service_type == "ClusterIP"
     assert config.user.to_dict() == {"password": "******"}
     assert config.node_selector is None
     assert config.tolerations is None
     assert config.affinity is None
     assert config.limit_resources is None
     assert config.global_replicas is None
     assert config.global_concurrency is None
     assert config.api is None
     assert config.scheduler is None
     assert config.beat is None
     assert config.hooks is None
     assert config.postgresql.enabled is False
     assert config.rabbitmq is None
     assert config.docker_registry is None
     assert config.email is None
     assert config.host_name is None
     assert config.allowed_hosts is None
     assert config.intervals is None
     assert config.artifacts_store.name == "azure"
     assert config.artifacts_store.kind == "wasb"
     assert config.artifacts_store.secret.to_dict() == {"name": "az-secret"}
     assert config.connections is None
     assert config.ldap is None
Beispiel #3
0
 def test_read_deploy_config_values2(self):
     config = reader.read("tests/fixtures/deployment/values2.yml")
     assert isinstance(config, DeploymentConfig)
     assert config.deploymentType is None
     assert config.namespace is None
     assert config.rbac.enabled is False
     assert config.adminViewEnabled is None
     assert config.timeZone is None
     assert config.environment == "staging"
     assert config.ingress.enabled is False
     assert config.serviceType == "NodePort"
     assert config.user.to_dict() == {"password": "******"}
     assert config.nodeSelector == {"polyaxon": "core"}
     assert config.tolerations is None
     assert config.affinity is None
     assert config.limitResources is None
     assert config.globalReplicas is None
     assert config.globalConcurrency is None
     assert config.api.replicas == 3
     assert config.scheduler.replicas == 3
     assert config.beat is None
     assert config.hooks is None
     assert config.postgresql.persistence is not None
     assert config.rabbitmq is None
     assert config.dockerRegistry is None
     assert config.email is not None
     assert config.hostName is None
     assert config.allowedHosts is None
     assert config.intervals is None
     assert config.persistence.logs.to_dict() == {
         "mountPath": "/tmp/logs",
         "hostPath": "/tmp/logs",
     }
     assert len(config.persistence.outputs) == 1
     assert config.ldap is None
Beispiel #4
0
 def test_read_deploy_config_redis_rabbitmq_values(self):
     config = reader.read(
         "tests/fixtures/deployment/internal_redis_rabbitmq_values.yml")
     assert isinstance(config, DeploymentConfig)
     assert config.namespace is None
     assert config.rbac.enabled is True
     assert config.ui is None
     assert config.timezone is None
     assert config.environment == "staging"
     assert config.ingress is None
     assert config.gateway.service.get("type") == "ClusterIP"
     assert config.user.to_dict() == {"password": "******"}
     assert config.node_selector is None
     assert config.tolerations is None
     assert config.affinity is None
     assert config.limit_resources is None
     assert config.global_replicas is None
     assert config.global_concurrency is None
     assert config.api is None
     assert config.scheduler is None
     assert config.worker is None
     assert config.beat is None
     assert config.hooks is None
     assert config.email is None
     assert config.host_name is None
     assert config.allowed_hosts is None
     assert config.intervals is None
     assert config.artifacts_store.name == "test"
     assert config.artifacts_store.kind == "host_path"
     assert config.connections is None
     assert config.ldap is None
     assert config.postgresql is None
     assert config.rabbitmq.enabled is True
     assert config.redis.enabled is True
     assert config.external_services is None
Beispiel #5
0
 def test_read_deploy_config_values1(self):
     config = reader.read("tests/fixtures/deployment/values1.yml")
     assert isinstance(config, DeploymentConfig)
     assert config.deploymentType == "docker-compose"
     assert config.namespace is None
     assert config.rbac.enabled is True
     assert config.adminViewEnabled is None
     assert config.timeZone is None
     assert config.environment == "staging"
     assert config.ingress.enabled is True
     assert config.serviceType == "ClusterIP"
     assert config.user.to_dict() == {"password": "******"}
     assert config.nodeSelector is None
     assert config.tolerations is None
     assert config.affinity is None
     assert config.limitResources is None
     assert config.globalReplicas is None
     assert config.globalConcurrency is None
     assert config.api is None
     assert config.scheduler is None
     assert config.beat is None
     assert config.hooks is None
     assert config.postgresql.enabled is False
     assert config.rabbitmq is None
     assert config.dockerRegistry is None
     assert config.email is None
     assert config.hostName is None
     assert config.allowedHosts is None
     assert config.intervals is None
     assert config.persistence is None
     assert config.ldap is None
Beispiel #6
0
 def test_read_deploy_config_values4(self):
     config = reader.read("tests/fixtures/deployment/values4.yml")
     assert isinstance(config, DeploymentConfig)
     assert config.deployment_type is None
     assert config.namespace is None
     assert config.rbac.enabled is True
     assert config.timezone == "Europe/Berlin"
     assert config.environment == "staging"
     assert config.ingress.enabled is True
     assert config.gateway.service.get("type") == "ClusterIP"
     assert config.user.to_dict() == {"password": "******"}
     assert config.node_selector == {"polyaxon": "core"}
     assert config.tolerations is None
     assert config.affinity is None
     assert config.limit_resources is None
     assert config.global_replicas is None
     assert config.global_concurrency is None
     assert config.api.replicas == 1
     assert config.scheduler.replicas == 1
     assert config.worker.replicas == 1
     assert config.beat.image_tag == "latest"
     assert config.worker.image_tag == "latest"
     assert config.hooks.image_tag == "latest"
     assert config.postgresql is None
     assert config.rabbitmq is None
     assert config.broker is None
     assert config.email is None
     assert config.host_name == "19.3.50.12"
     assert config.allowed_hosts == ["127.0.0.1", "123.123.12.3"]
     assert config.intervals is None
     assert config.artifacts_store.name == "test"
     assert config.artifacts_store.kind == "volume_claim"
     assert config.artifacts_store.schema.volume_claim == "test"
     assert len(config.connections) == 2
     assert config.auth.enabled is False
     assert config.auth.external is None
     assert config.auth.use_resolver is True
     assert config.ui.enabled is True
     assert config.ui.offline is True
     assert config.ui.static_url == "https://ffo.com"
     assert config.ui.admin_enabled is True
     assert config.ldap is not None
     assert config.ssl.enabled is True
     assert config.ssl.secret_name == "polyaxon-cert"
     assert config.ssl.path == "/etc/tls"
     assert config.dns == {
         "backend": "coredns",
         "customCluster": "custom.cluster.name",
     }
     assert config.security_context is not None
     assert config.security_context.enabled is True
     assert config.security_context.user == 2222
     assert config.security_context.group == 2222
     assert config.password_length == 4
Beispiel #7
0
 def test_read_deploy_config_values5(self):
     config = reader.read("tests/fixtures/deployment/values5.yml")
     assert isinstance(config, DeploymentConfig)
     assert config.deployment_type is None
     assert config.namespace is None
     assert config.rbac.enabled is True
     assert config.ui is None
     assert config.timezone == "Europe/Berlin"
     assert config.environment == "staging"
     assert config.ingress.enabled is True
     assert config.gateway.service.get("type") == "ClusterIP"
     assert config.user.to_dict() == {"password": "******"}
     assert config.node_selector == {"polyaxon": "core"}
     assert config.tolerations is None
     assert config.affinity is None
     assert config.limit_resources is None
     assert config.global_replicas is None
     assert config.global_concurrency is None
     assert config.api.replicas == 1
     assert config.organization_key == "some-key"
     assert config.scheduler.replicas == 1
     assert config.scheduler.celery.to_dict() == {
         "taskTrackStarted": False,
         "brokerPoolLimit": 2,
         "confirmPublish": False,
         "workerPrefetchMultiplier": 2,
         "workerMaxTasksPerChild": 2,
         "workerMaxMemoryPerChild": 2,
         "taskAlwaysEager": True,
     }
     assert config.worker.replicas == 1
     assert config.worker.celery.to_dict() == {
         "taskTrackStarted": True,
         "brokerPoolLimit": 4,
         "confirmPublish": True,
         "workerPrefetchMultiplier": 4,
         "workerMaxTasksPerChild": 4,
         "workerMaxMemoryPerChild": 4,
     }
     assert config.beat.image_tag == "latest"
     assert config.hooks.image_tag == "latest"
     assert config.postgresql is None
     assert config.rabbitmq.enabled is False
     assert config.broker == "redis"
     assert config.email is None
     assert config.host_name == "19.3.50.12"
     assert config.allowed_hosts == ["127.0.0.1", "123.123.12.3"]
     assert config.intervals is None
     assert config.ldap is None
     assert config.artifacts_store is not None
     assert config.connections is None
     assert config.operator.enabled is False
     assert config.operator.skip_crd is False
Beispiel #8
0
 def test_read_deploy_config_values5(self):
     config = reader.read("tests/fixtures/deployment/values5.yml")
     assert isinstance(config, DeploymentConfig)
     assert config.deploymentType is None
     assert config.namespace is None
     assert config.rbac.enabled is True
     assert config.adminViewEnabled is None
     assert config.timeZone == "Europe/Berlin"
     assert config.environment == "staging"
     assert config.ingress.enabled is True
     assert config.serviceType == "ClusterIP"
     assert config.user.to_dict() == {"password": "******"}
     assert config.nodeSelector == {"polyaxon": "core"}
     assert config.tolerations is None
     assert config.affinity is None
     assert config.limitResources is None
     assert config.globalReplicas is None
     assert config.globalConcurrency is None
     assert config.api.replicas == 1
     assert config.scheduler.replicas == 1
     assert config.scheduler.celery.to_dict() == {
         "taskTrackStarted": False,
         "brokerPoolLimit": 2,
         "confirmPublish": False,
         "workerPrefetchMultiplier": 2,
         "workerMaxTasksPerChild": 2,
         "workerMaxMemoryPerChild": 2,
         "taskAlwaysEager": True,
     }
     assert config.worker.replicas == 1
     assert config.worker.celery.to_dict() == {
         "taskTrackStarted": True,
         "brokerPoolLimit": 4,
         "confirmPublish": True,
         "workerPrefetchMultiplier": 4,
         "workerMaxTasksPerChild": 4,
         "workerMaxMemoryPerChild": 4,
     }
     assert config.beat.imageTag == "latest"
     assert config.hooks.imageTag == "latest"
     assert config.postgresql is None
     assert config.rabbitmq.enabled is False
     assert config.broker == "redis"
     assert config.dockerRegistry is None
     assert config.email is None
     assert config.hostName == "19.3.50.12"
     assert config.allowedHosts == ["127.0.0.1", "123.123.12.3"]
     assert config.intervals is None
     assert config.ldap is None
     assert config.persistence.logs is not None
     assert len(config.persistence.outputs) == 2
     assert config.trackerBackend == "noop"
Beispiel #9
0
 def test_read_deploy_config_pgsql_values(self):
     config = reader.read(
         "tests/fixtures/deployment/external_pgsql_values.yml")
     assert isinstance(config, DeploymentConfig)
     assert config.namespace is None
     assert config.rbac.enabled is True
     assert config.ui is None
     assert config.timezone is None
     assert config.environment == "staging"
     assert config.ingress is None
     assert config.gateway.service.get("type") == "ClusterIP"
     assert config.user.to_dict() == {"password": "******"}
     assert config.node_selector is None
     assert config.tolerations is None
     assert config.affinity is None
     assert config.limit_resources is None
     assert config.global_replicas is None
     assert config.global_concurrency is None
     assert config.api is None
     assert config.scheduler is None
     assert config.worker is None
     assert config.beat is None
     assert config.hooks is None
     assert config.email is None
     assert config.host_name is None
     assert config.allowed_hosts is None
     assert config.intervals is None
     assert config.artifacts_store.name == "test"
     assert config.artifacts_store.kind == "host_path"
     assert config.connections is None
     assert config.encryption_secret == "test"
     assert config.agent_secret == "test"
     assert config.platform_secret == "test"
     assert config.ldap is None
     assert config.rabbitmq is None
     assert config.redis is None
     assert config.postgresql.enabled is False
     assert config.external_services.redis is None
     assert config.external_services.rabbitmq is None
     assert config.external_services.postgresql.to_dict() == {
         "user": "******",
         "password": "******",
         "database": "postgres",
         "host": "35.226.163.84",
         "port": 1111,
         "pgbouncer": {
             "foo": "bar",
             "image": "test"
         },
     }
Beispiel #10
0
 def test_read_deploy_config_values4(self):
     config = reader.read("tests/fixtures/deployment/values4.yml")
     assert isinstance(config, DeploymentConfig)
     assert config.deploymentType is None
     assert config.namespace is None
     assert config.rbac.enabled is True
     assert config.adminViewEnabled is None
     assert config.timeZone == "Europe/Berlin"
     assert config.environment == "staging"
     assert config.ingress.enabled is True
     assert config.serviceType == "ClusterIP"
     assert config.user.to_dict() == {"password": "******"}
     assert config.nodeSelector == {"polyaxon": "core"}
     assert config.tolerations is None
     assert config.affinity is None
     assert config.limitResources is None
     assert config.globalReplicas is None
     assert config.globalConcurrency is None
     assert config.api.replicas == 1
     assert config.scheduler.replicas == 1
     assert config.worker.replicas == 1
     assert config.beat.imageTag == "latest"
     assert config.worker.imageTag == "latest"
     assert config.hooks.imageTag == "latest"
     assert config.postgresql is None
     assert config.rabbitmq is None
     assert config.broker is None
     assert config.dockerRegistry is None
     assert config.email is None
     assert config.hostName == "19.3.50.12"
     assert config.allowedHosts == ["127.0.0.1", "123.123.12.3"]
     assert config.intervals is None
     assert config.persistence.logs is not None
     assert len(config.persistence.outputs) == 2
     assert config.trackerBackend is None
     assert config.ldap is not None
     assert config.ssl.enabled is True
     assert config.ssl.secretName == "polyaxon-cert"
     assert config.ssl.path == "/etc/tls"
     assert config.dns == {
         "backend": "coredns",
         "customCluster": "custom.cluster.name",
     }
     assert config.securityContext is not None
     assert config.securityContext.enabled is True
     assert config.securityContext.user == 2222
     assert config.securityContext.group == 2222
     assert config.passwordLength == 4
Beispiel #11
0
def read_deployment_config(filepaths):
    if not filepaths:
        return None

    filepaths = to_list(filepaths)
    for filepath in filepaths:
        if not os.path.isfile(filepath):
            Printer.print_error("`{}` must be a valid file".format(filepath))
            sys.exit(1)
    try:
        deployment_config = reader.read(filepaths)
    except Exception as e:
        handle_cli_error(e, message="Polyaxon deployment file is not valid.")
        sys.exit(1)

    return deployment_config
Beispiel #12
0
 def test_read_deploy_config_values6(self):
     config = reader.read("tests/fixtures/deployment/values6.yml")
     assert isinstance(config, DeploymentConfig)
     assert config.deployment_chart == "agent"
     assert config.deployment_type == "kubernetes"
     assert config.namespace == "polyaxon"
     assert config.limit_resources is False
     assert config.rbac.enabled is True
     assert config.ingress.enabled is False
     assert config.external_services.gateway.host == "foo-bar-ex"
     assert config.external_services.gateway.port == 443
     assert config.external_services.api.host == "foo-bar-ex"
     assert config.external_services.api.port == 443
     assert config.gateway.enabled is False
     assert config.streams.image == "polyaxon/polyaxon-streams"
     assert config.auth.enabled is True
     assert config.auth.external == "test"
     assert config.auth.use_resolver is True
Beispiel #13
0
def read_deployment_config(filepaths):
    from polyaxon.deploy import reader

    if not filepaths:
        return None

    filepaths = to_list(filepaths)
    for filepath in filepaths:
        if not os.path.isfile(filepath):
            Printer.print_error("`{}` must be a valid file".format(filepath),
                                sys_exit=True)
    try:
        deployment_config = reader.read(filepaths)
        return deployment_config
    except Exception as e:
        handle_cli_error(e,
                         message="Polyaxon deployment file is not valid.",
                         sys_exit=True)
Beispiel #14
0
 def test_read_deploy_config_redis_values(self):
     config = reader.read(
         "tests/fixtures/deployment/external_redis_values.yml")
     assert isinstance(config, DeploymentConfig)
     assert config.namespace is None
     assert config.rbac.enabled is True
     assert config.admin_view_enabled is None
     assert config.timezone is None
     assert config.environment == "staging"
     assert config.ingress is None
     assert config.service_type == "ClusterIP"
     assert config.user.to_dict() == {"password": "******"}
     assert config.node_selector is None
     assert config.tolerations is None
     assert config.affinity is None
     assert config.limit_resources is None
     assert config.global_replicas is None
     assert config.global_concurrency is None
     assert config.api is None
     assert config.scheduler is None
     assert config.worker is None
     assert config.beat is None
     assert config.hooks is None
     assert config.docker_registry is None
     assert config.email is None
     assert config.host_name is None
     assert config.allowed_hosts is None
     assert config.intervals is None
     assert config.artifacts_store.name == "test"
     assert config.artifacts_store.kind == "host_path"
     assert config.connections is None
     assert config.ldap is None
     assert config.postgresql is None
     assert config.rabbitmq is None
     assert config.redis.enabled is False
     assert config.external_services.postgresql is None
     assert config.external_services.rabbitmq is None
     assert config.external_services.redis.to_dict() == {
         "usePassword": True,
         "password": "******",
         "host": "35.226.163.84",
         "port": 111,
     }
Beispiel #15
0
 def test_read_deploy_config_values3(self):
     config = reader.read("tests/fixtures/deployment/values3.yml")
     assert isinstance(config, DeploymentConfig)
     assert config.deployment_type is None
     assert config.namespace is None
     assert config.rbac.enabled is True
     assert config.admin_view_enabled is None
     assert config.timezone is None
     assert config.environment == "staging"
     assert config.ingress.enabled is True
     assert config.service_type == "ClusterIP"
     assert config.user.to_dict() == {"password": "******"}
     assert config.node_selector == {"polyaxon": "core"}
     assert config.tolerations is None
     assert config.affinity is None
     assert config.limit_resources is None
     assert config.global_replicas is None
     assert config.global_concurrency is None
     assert config.api.replicas == 3
     assert config.scheduler.replicas == 3
     assert config.worker.replicas == 3
     assert config.beat is None
     assert config.hooks is None
     assert config.postgresql.enabled is True
     assert config.rabbitmq.enabled is False
     assert config.redis.enabled is False
     assert config.docker_registry.enabled is False
     assert config.email is not None
     assert config.host_name == "123.123.123.123"
     assert config.allowed_hosts == ["foo.bar.com", "123.123.12.3"]
     assert config.intervals is None
     assert config.artifacts_store.name == "store"
     assert config.artifacts_store.kind == "host_path"
     assert config.artifacts_store.schema.mount_path == "/tmp/outputs"
     assert len(config.connections) == 2
     assert config.tracker_backend is None
     assert config.ldap is None
     assert config.ssl is None
     assert config.dns is None
Beispiel #16
0
 def test_read_deploy_config_values3(self):
     config = reader.read("tests/fixtures/deployment/values3.yml")
     assert isinstance(config, DeploymentConfig)
     assert config.deploymentType is None
     assert config.namespace is None
     assert config.rbac.enabled is True
     assert config.adminViewEnabled is None
     assert config.timeZone is None
     assert config.environment == "staging"
     assert config.ingress.enabled is True
     assert config.serviceType == "ClusterIP"
     assert config.user.to_dict() == {"password": "******"}
     assert config.nodeSelector == {"polyaxon": "core"}
     assert config.tolerations is None
     assert config.affinity is None
     assert config.limitResources is None
     assert config.globalReplicas is None
     assert config.globalConcurrency is None
     assert config.api.replicas == 3
     assert config.scheduler.replicas == 3
     assert config.worker.replicas == 3
     assert config.beat is None
     assert config.hooks is None
     assert config.postgresql.enabled is True
     assert config.rabbitmq.enabled is False
     assert config.redis.enabled is False
     assert config.dockerRegistry.enabled is False
     assert config.email is not None
     assert config.hostName == "123.123.123.123"
     assert config.allowedHosts == ["foo.bar.com", "123.123.12.3"]
     assert config.intervals is None
     assert config.persistence.logs is None
     assert len(config.persistence.outputs) == 3
     assert config.trackerBackend is None
     assert config.ldap is None
     assert config.ssl is None
     assert config.dns is None
Beispiel #17
0
 def test_generate(self):
     config = reader.read("tests/fixtures/deployment/all_values.yml")
     assert ComposeOperator.generate_env(config) is not None
Beispiel #18
0
 def test_read_deploy_config_all_agent_values(self):
     config = reader.read("tests/fixtures/deployment/all_agent_values.yml")
     assert isinstance(config, DeploymentConfig)
Beispiel #19
0
 def test_read_deploy_config_wrong_values9(self):
     with self.assertRaises(ValidationError):
         reader.read("tests/fixtures/deployment/wrong_values9.yml")