Esempio n. 1
0
def test_refresh_kubeconfig_invalid_setting(tmp_working_dir_empty_conf,
                                            caplog):  # noqa: D103
    paths = tmp_working_dir_empty_conf
    stack_config_b = paths[
        "conf_dir"] / "testaccount_testenvironment_testregion_teststack.yml"
    stack_config_b.write_text(
        textwrap.dedent("""
            ---
            gcp:
              general:
                mode: adc-user
                project: &gcp_project testproject
              gke:
              - nae: gke-testproject2
                zone: europe-west1-b
                refresh_kubeconfig: invalid
            terraform:
              vars:
                client_name: claranet
            """))

    with pytest.raises(SystemExit):
        tfwrapper.load_stack_config(
            paths["conf_dir"],
            "testaccount",
            "testenvironment",
            "testregion",
            "teststack",
        )
    assert "Or('always', 'never') did not validate 'invalid'" in caplog.text
Esempio n. 2
0
def test_stack_config_parsing_extended_custom_provider(  # noqa: D103
    tmp_working_dir_empty_conf,
):
    paths = tmp_working_dir_empty_conf
    stack_config = paths["conf_dir"] / "testaccount_testenvironment_testregion_teststack.yml"

    stack_config.write_text(
        textwrap.dedent(
            """
            ---
            terraform:
                vars:
                    client_name: claranet
                    version: 0.11.14
                custom-providers:
                    claranet/terraform-provider-gitlab: '2.1'
                    custom/terraform-custom-provider:
                        version: '1.1.1'
                        extension: 'tar.gz'
            """
        )
    )

    expected_stack_result = {
        "terraform": {
            "custom-providers": {
                "claranet/terraform-provider-gitlab": "2.1",
                "custom/terraform-custom-provider": {"version": "1.1.1", "extension": "tar.gz"},
            },
            "vars": {"client_name": "claranet", "version": "0.11.14"},
        }
    }
    stack_config = tfwrapper.load_stack_config(paths["conf_dir"], "testaccount", "testenvironment", "testregion", "teststack")
    assert stack_config == expected_stack_result
Esempio n. 3
0
def test_stack_config_parsing_invalid_custom_provider_missing_version(tmp_working_dir_empty_conf, caplog):  # noqa: D103
    paths = tmp_working_dir_empty_conf
    stack_config = paths["conf_dir"] / "testaccount_testenvironment_testregion_teststack.yml"

    stack_config.write_text(
        textwrap.dedent(
            """
            ---
            terraform:
                vars:
                    client_name: claranet
                    version: 0.11.14
                custom-providers:
                    claranet/terraform-provider-gitlab: '2.1'
                    custom/terraform-custom-provider:
                        extension: '.zip'
            """
        )
    )

    with pytest.raises(SystemExit):
        stack_config = tfwrapper.load_stack_config(
            paths["conf_dir"],
            "testaccount",
            "testenvironment",
            "testregion",
            "teststack",
        )
    assert "Missing key: 'version'" in caplog.text
Esempio n. 4
0
def test_refresh_kubeconfig_setting(tmp_working_dir_empty_conf):  # noqa: D103
    paths = tmp_working_dir_empty_conf
    stack_config = paths[
        "conf_dir"] / "testaccount_testenvironment_testregion_teststack.yml"

    stack_config.write_text(
        textwrap.dedent("""
            ---
            gcp:
              general:
                mode: adc-user
                project: &gcp_project testproject
              gke:
              - name: gke-testproject
                zone: europe-west1-b
            terraform:
              vars:
                client_name: claranet
            """))

    expected_stack_result = {
        "gcp": {
            "general": {
                "mode": "adc-user",
                "project": "testproject"
            },
            "gke": [{
                "name": "gke-testproject",
                "zone": "europe-west1-b"
            }],
        },
        "terraform": {
            "vars": {
                "client_name": "claranet"
            }
        },
    }
    parsed_stack_config = tfwrapper.load_stack_config(paths["conf_dir"],
                                                      "testaccount",
                                                      "testenvironment",
                                                      "testregion",
                                                      "teststack")
    assert parsed_stack_config == expected_stack_result

    stack_config.write_text(
        textwrap.dedent("""
            ---
            gcp:
              general:
                mode: adc-user
                project: &gcp_project testproject
              gke:
              - name: gke-testproject
                zone: europe-west1-b
                refresh_kubeconfig: always
            terraform:
              vars:
                client_name: claranet
            """))

    expected_stack_result = {
        "gcp": {
            "general": {
                "mode": "adc-user",
                "project": "testproject"
            },
            "gke": [{
                "name": "gke-testproject",
                "zone": "europe-west1-b",
                "refresh_kubeconfig": "always"
            }],
        },
        "terraform": {
            "vars": {
                "client_name": "claranet"
            }
        },
    }
    parsed_stack_config = tfwrapper.load_stack_config(paths["conf_dir"],
                                                      "testaccount",
                                                      "testenvironment",
                                                      "testregion",
                                                      "teststack")
    assert parsed_stack_config == expected_stack_result

    stack_config.write_text(
        textwrap.dedent("""
            ---
            gcp:
              general:
                mode: adc-user
                project: &gcp_project testproject
              gke:
              - name: gke-testproject
                zone: europe-west1-b
                refresh_kubeconfig: never
            terraform:
              vars:
                client_name: claranet
            """))

    expected_stack_result = {
        "gcp": {
            "general": {
                "mode": "adc-user",
                "project": "testproject"
            },
            "gke": [{
                "name": "gke-testproject",
                "zone": "europe-west1-b",
                "refresh_kubeconfig": "never"
            }],
        },
        "terraform": {
            "vars": {
                "client_name": "claranet"
            }
        },
    }
    parsed_stack_config = tfwrapper.load_stack_config(paths["conf_dir"],
                                                      "testaccount",
                                                      "testenvironment",
                                                      "testregion",
                                                      "teststack")
    assert parsed_stack_config == expected_stack_result