def METHOD_NAME(self, values_file):
    cmd = [
        "helm",
        "install",
        "robusta",
        "./helm/robusta/",
        "-f",
        values_file,
        "--set",
        "kubewatch.resources.requests.memory=64Mi",
        "--set",
        "grafanaRenderer.resources.requests.memory=64Mi",
        "--set",
        "runner.resources.requests.memory=512Mi",
    ]
    logging.debug(f"runner image is {self.robusta_runner_image}")
    if self.robusta_runner_image is not None:
        cmd.extend(["--set", f"runner.image={self.robusta_runner_image}"])
    logs = self._run_cmd(cmd)
    assert "STATUS: deployed" in logs
    # wait until robusta runner is created, takes some time to pull the 2 container images
    for _ in range(60):
        logs = self._run_cmd(
            [
                "kubectl",
                "get",
                "pods",
            ],
        )
        # wait until we have exactly two pods running - the runner and the forwarder
        if len(re.findall("robusta-.*Running.*", logs)) == 2:
            print("Robusta runner created")
            # wait another few seconds for robusta to finish starting up
            time.sleep(10)
            return
        time.sleep(5)
    details = self._run_cmd(["kubectl", "describe", "pods"])
    logging.error(f"robusta runner did not start. logs={logs}; details={details}")
    raise Exception("robusta runner did not start")