コード例 #1
0
def test_cli_invocation():
    """
    Should call the callback and then execute a status command action on
    the created (and empty) resource bundle.
    """
    callback = MagicMock()
    kuber.cli(callback, arguments=["status"])
    callback.assert_called_once()
コード例 #2
0
ファイル: test_cli.py プロジェクト: datalayer-externals/kuber
def test_settings_error():
    """Should load settings from this test files."""
    cb = MagicMock()

    with pytest.raises(ValueError):
        kuber.cli(cb, arguments=["render", "--settings=foo"])

    cb.assert_not_called()
コード例 #3
0
ファイル: test_cli.py プロジェクト: datalayer-externals/kuber
def test_settings_directory():
    """Should load settings from this test directory."""
    def _callback(action: kuber.CommandAction):
        s = action.bundle.settings
        assert s.foo and s.foo == s.spam
        assert s.bar and s.bar == s.ham
        assert s.baz and s.baz == s.eggs

    cb = MagicMock()
    cb.side_effect = _callback
    kuber.cli(cb, arguments=["render", f"--settings={MY_DIRECTORY}"])
    cb.assert_called_once()
コード例 #4
0
ファイル: test_cli.py プロジェクト: datalayer-externals/kuber
def test_settings_files():
    """Should load settings from this test files."""
    def _callback(action: kuber.CommandAction):
        s = action.bundle.settings
        assert s.foo and s.foo == s.spam
        assert s.bar and s.bar == s.ham
        assert s.baz and s.baz == s.eggs

    cb = MagicMock()
    cb.side_effect = _callback

    kuber.cli(
        cb,
        arguments=[
            "render",
            f'--settings={os.path.join(MY_DIRECTORY, "settings.yaml")}',
            f'--settings={os.path.join(MY_DIRECTORY, "settings.json")}',
        ],
    )
    cb.assert_called_once()
コード例 #5
0
import pathlib

import kuber

directory = pathlib.Path(__file__).parent.absolute()


def populate(action: kuber.CommandAction):
    """Populate the bundle"""
    bundle = action.bundle
    bundle.namespace = bundle.namespace or bundle.name

    # Add a namespace in which the bundle will reside.
    with bundle.new("v1", "Namespace", bundle.namespace).metadata as md:
        md.labels["name"] = bundle.namespace

    bundle.add_from_helm(
        chart_name="deliveryhero/locust",
        values_path=directory.joinpath("values.yaml"),
        repos={"deliveryhero": "https://charts.deliveryhero.io/"},
        update=True,
    )


if __name__ == "__main__":
    kuber.load_access_config()
    version = kuber.get_version_from_cluster("latest")
    kuber.cli(callback=populate,
              kubernetes_version=version,
              bundle_name="locust-load-test")
コード例 #6
0
from kuber.latest import core_v1


def populate(action: kuber.CommandAction):
    """
    Populate the empty bundle that was created by the
    cli function call prior to calling this function.
    The action argument contains the bundle along with
    information about the command line execution.
    """
    bundle = action.bundle
    bundle.namespace = "prometheus"
    bundle.add_file("./resources.yaml")

    # Get the server container from the server
    # deployment for modification.
    deployment: apps_v1.Deployment = bundle.get(name="prometheus-server",
                                                kind="Deployment")
    server: core_v1.Container = deployment.get_container("prometheus-server")

    # Override default retention time to be 7 days.
    server.args.append("--storage.tsdb.retention.time=7d")


if __name__ == "__main__":
    kuber.load_access_config()
    version = kuber.get_version_from_cluster("latest")
    kuber.cli(callback=populate,
              kubernetes_version=version,
              bundle_name="prometheus")