p-demo-multi

```

Example Command Output

```textRunning with active workspace: 'default' (global)

Running with active stack: 'default' (global)

Successfully connected container registry `gcr-zenml-core` to the following resources:

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━┓

┃             CONNECTOR ID             │ CONNECTOR NAME │ CONNECTOR TYPE │ RESOURCE TYPE      │ RESOURCE NAMES    ┃

┠──────────────────────────────────────┼────────────────┼────────────────┼────────────────────┼───────────────────┨

┃ eeeabc13-9203-463b-aa52-216e629e903c │ gcp-demo-multi │ 🔵 gcp         │ 🐳 docker-registry │ gcr.io/zenml-core ┃

┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━┛

```

Combine all Stack Components together into a Stack and set it as active (also throw in a local Image Builder for completion):Copyzenml image-builder register local --flavor local

Example Command Output

```text

Running with active workspace: 'default' (global)

Running with active stack: 'default' (global)

Successfully registered image_builder `local`.

```

```sh

zenml stack register gcp-demo -a gcs-zenml-bucket-sl -o gke-zenml-test-cluster -c gcr-zenml-core -i local --set

```

Example Command Output

```text

Running with active workspace: 'default' (global)

Stack 'gcp-demo' successfully registered!

Active global stack set to:'gcp-demo'

```

Finally, run a simple pipeline to prove that everything works as expected. We'll use the simplest pipelines possible for this example:Copyfrom zenml import pipeline, step

@step
def step_1() -> str:
    """Returns the `world` string."""
    return "world"

@step(enable_cache=False)
def step_2(input_one: str, input_two: str) -> None:
    """Combines the two strings at its input and prints them."""
    combined_str = f"{input_one} {input_two}"
    print(combined_str)