Screencasts for create, config and terminate.

Signed-off-by: Fabian Kammel <fk@edgeless.systems>
This commit is contained in:
Fabian Kammel 2023-02-14 16:14:19 +00:00 committed by Moritz Eckert
parent 9e1c91f04b
commit c86f8a8845
16 changed files with 8051 additions and 1279 deletions

View file

@ -1,5 +1,13 @@
# Configure your cluster # Configure your cluster
:::info
This recording presents the essence of this page. It is recommended to read it in full for the motivation and all details.
:::
<asciinemaWidget src="/constellation/assets/configure-cluster.cast" rows={20} cols={112} idleTimeLimit={3} preload={true} theme={'edgeless'} />
---
Before you can create your cluster, you need to configure the identity and access management (IAM) for your cloud service provider (CSP) and choose machine types for the nodes. Before you can create your cluster, you need to configure the identity and access management (IAM) for your cloud service provider (CSP) and choose machine types for the nodes.
## Creating the configuration file ## Creating the configuration file
@ -256,3 +264,7 @@ Delete the IAM configuration by executing the following command in the same dire
```bash ```bash
constellation iam destroy constellation iam destroy
``` ```
---
<asciinemaWidget src="/constellation/assets/delete-iam.cast" rows={20} cols={112} idleTimeLimit={3} preload={true} theme={'edgeless'} />

View file

@ -1,5 +1,13 @@
# Create your cluster # Create your cluster
:::info
This recording presents the essence of this page. It is recommended to read it in full for the motivation and all details.
:::
<asciinemaWidget src="/constellation/assets/create-cluster.cast" rows={20} cols={112} idleTimeLimit={3} preload={true} theme={'edgeless'} />
---
Creating your cluster requires two steps: Creating your cluster requires two steps:
1. Creating the necessary resources in your cloud environment 1. Creating the necessary resources in your cloud environment

View file

@ -1,5 +1,13 @@
# Terminate your cluster # Terminate your cluster
:::info
This recording presents the essence of this page. It is recommended to read it in full for the motivation and all details.
:::
<asciinemaWidget src="/constellation/assets/terminate-cluster.cast" rows={20} cols={112} idleTimeLimit={3} preload={true} theme={'edgeless'} />
---
You can terminate your cluster using the CLI. For this, you need the Terraform state directory named [`constellation-terraform`](../reference/terraform.md) in the current directory. You can terminate your cluster using the CLI. For this, you need the Terraform state directory named [`constellation-terraform`](../reference/terraform.md) in the current directory.
:::danger :::danger

View file

@ -1 +1,2 @@
recordings recordings
constellation

View file

@ -1,18 +1,27 @@
FROM ubuntu:20.04 FROM ubuntu:20.04
# Install requirements # Install requirements
RUN apt update RUN apt-get update && apt-get install -y software-properties-common &&\
RUN apt install -y software-properties-common apt-add-repository ppa:zanchey/asciinema && apt-get update &&\
RUN apt-add-repository ppa:zanchey/asciinema apt-get install -y curl expect asciinema sudo unzip &&\
RUN apt update rm -rf /var/lib/apt/lists/*
RUN apt install -y curl expect asciinema sudo
RUN curl -LO https://go.dev/dl/go1.19.5.linux-amd64.tar.gz && rm -rf /usr/local/go && tar -C /usr/local -xzf go1.19.5.linux-amd64.tar.gz
RUN echo 'export PATH="${PATH}:/usr/local/go/bin:/root/go/bin"' >> /root/.bashrc
ENV PATH="${PATH}:/usr/local/go/bin:/root/go/bin"
# Install cosign & rekor (speedup in recording) RUN curl -sLO https://github.com/mikefarah/yq/releases/download/v4.30.8/yq_linux_amd64 &&\
RUN go install github.com/sigstore/cosign/cmd/cosign@latest sudo install yq_linux_amd64 /usr/local/bin/yq && rm yq_linux_amd64
RUN go install github.com/sigstore/rekor/cmd/rekor-cli@latest
RUN curl -sLO https://dl.k8s.io/release/v1.26.0/bin/linux/amd64/kubectl &&\
sudo install kubectl /usr/local/bin/kubectl && rm kubectl
RUN curl -sLO https://releases.hashicorp.com/terraform/1.3.8/terraform_1.3.8_linux_amd64.zip &&\
unzip terraform_1.3.8_linux_amd64.zip &&\
sudo install terraform /usr/local/bin/terraform && rm terraform
RUN curl -sLO https://github.com/edgelesssys/constellation/releases/latest/download/constellation-linux-amd64 &&\
sudo install constellation-linux-amd64 /usr/local/bin/constellation &&\
rm constellation-linux-amd64
# As mount point for $HOME/.config/gcloud
RUN mkdir /root/.config
# Enable RGB colors in PS1 # Enable RGB colors in PS1
ENV TERM=xterm-256color ENV TERM=xterm-256color
@ -26,11 +35,11 @@ ENV SHELL=/bin/bash
# need to be escaped with additional \[ and \], see [2]. # need to be escaped with additional \[ and \], see [2].
# [1]: https://stackoverflow.com/a/33206814/2306355 # [1]: https://stackoverflow.com/a/33206814/2306355
# [2]: https://stackoverflow.com/a/19501528/2306355 # [2]: https://stackoverflow.com/a/19501528/2306355
RUN echo 'export PS1="\[\033[38;2;144;255;153m\]~/constellation\[\033[0m\]\r\n\[\033[38;2;139;4;221m\]$\[\033[0m\] "' >> /root/.bashrc RUN echo 'export PS1="\[\033[38;2;144;255;153m\]\`pwd\`\[\033[0m\]\r\n\[\033[38;2;139;4;221m\]$\[\033[0m\] "' >> /root/.bashrc
# Copy install scripts # Copy install scripts
COPY ./*.expect /root/ COPY ./*.expect /scripts/
WORKDIR /root WORKDIR /constellation
ENTRYPOINT ["/usr/bin/expect", "-f"] ENTRYPOINT ["/usr/bin/expect", "-f"]
CMD ["verify-cli.expect"] CMD ["/scripts/verify-cli.expect"]

View file

@ -22,8 +22,28 @@ spawn asciinema rec --overwrite /recordings/check-sbom.cast
send "\r" send "\r"
expect_prompt expect_prompt
### Step 0: Requirements run_command "# Step 1: Install SLSA verifier"
run_command "echo Step 0: Installing requirements" expect_prompt
run_command "curl -sLO https://github.com/slsa-framework/slsa-verifier/releases/latest/download/slsa-verifier-linux-amd64"
expect_prompt
run_command "sudo install slsa-verifier-linux-amd64 /usr/local/bin/slsa-verifier"
expect_prompt
run_command "# Step 2: Download Constellation SBOM and provenance"
expect_prompt
run_command "curl -sLO https://github.com/edgelesssys/constellation/releases/latest/download/constellation.spdx.sbom"
expect_prompt
run_command "curl -sLO https://github.com/edgelesssys/constellation/releases/latest/download/constellation.intoto.jsonl"
expect_prompt
run_command "# Step 3: Check integrity of SBOM"
expect_prompt
run_command "slsa-verifier verify-artifact constellation.spdx.sbom --provenance-path constellation.intoto.jsonl --source-uri github.com/edgelesssys/constellation"
expect_prompt
run_command "curl -sLO https://github.com/edgelesssys/constellation/releases/latest/download/constellation.intoto.jsonl"
expect_prompt
run_command "# Step 4: Install grype (security scanner)"
expect_prompt expect_prompt
run_command "curl -sLO https://github.com/anchore/grype/releases/download/v0.56.0/grype_0.56.0_linux_amd64.tar.gz" run_command "curl -sLO https://github.com/anchore/grype/releases/download/v0.56.0/grype_0.56.0_linux_amd64.tar.gz"
expect_prompt expect_prompt
@ -34,14 +54,9 @@ expect_prompt
run_command "grype --help" run_command "grype --help"
expect_prompt expect_prompt
### Step 1: Download & check SBOM run_command "# Step 5: Check for vulnerabilities"
run_command "echo Step 1: Download Constellation SBOM"
expect_prompt
run_command "curl -sLO https://github.com/edgelesssys/constellation/releases/latest/download/constellation.spdx.sbom"
expect_prompt expect_prompt
run_command "grype constellation.spdx.sbom -o table -q" run_command "grype constellation.spdx.sbom -o table -q"
expect_prompt
run_command "echo We are safe!"
# Stop recording # Stop recording
send "exit" send "exit"

View file

@ -0,0 +1,46 @@
#!/usr/bin/expect -f
# Note: Expects to be able to run 'sudo install' without a password
set timeout -1
set send_human {0.05 0 1 0.05 0.3}
set CTRLC \003
set CTRLX \030
set record_name [lindex $argv 0];
proc expect_prompt {} {
# This matches the trailing 0m of our ANSI control sequence. See PS1 in Dockerfile.
expect "0m "
}
proc run_command {cmd} {
send -h "$cmd"
send "\r"
expect -timeout 1
}
# Start recording
spawn asciinema rec --overwrite /recordings/configure-cluster.cast
send "\r"
expect_prompt
run_command "# Step 1: Create IAM configuration"
expect_prompt
run_command "constellation iam create gcp --generate-config --projectID constellation-331613 --serviceAccountID constellation-demo --zone europe-west3-b"
expect -re "y\/n"
send "y"
send "\r"
expect_prompt
run_command "# Step 2: Fill in configuration"
expect_prompt
run_command "yq '.provider.gcp.project = \"constellation-331613\"' -i constellation-conf.yaml"
expect_prompt
run_command "yq '.provider.gcp.zone = \"europe-west3-b\"' -i constellation-conf.yaml"
expect_prompt
run_command "yq '.provider.gcp.region = \"europe-west3\"' -i constellation-conf.yaml"
expect_prompt
run_command "cat constellation-conf.yaml | head -n15"
expect_prompt
# Stop recording
send "exit"

View file

@ -0,0 +1,52 @@
#!/usr/bin/expect -f
# Note: Expects to be able to run 'sudo install' without a password
set timeout -1
set send_human {0.05 0 1 0.05 0.3}
set CTRLC \003
set CTRLX \030
set record_name [lindex $argv 0];
proc expect_prompt {} {
# This matches the trailing 0m of our ANSI control sequence. See PS1 in Dockerfile.
expect "0m "
}
proc run_command {cmd} {
send -h "$cmd"
send "\r"
expect -timeout 1
}
# Start recording
spawn asciinema rec --overwrite /recordings/create-cluster.cast
send "\r"
expect_prompt
run_command "# Step 1: Create cloud environment"
expect_prompt
run_command "constellation create --control-plane-nodes 3 --worker-nodes 2"
expect -re "y\/n"
send "y"
send "\r"
expect_prompt
run_command "# Step 2: Initialize Constellation"
expect_prompt
run_command "constellation init"
expect_prompt
run_command "# Wait for cluster to finish bootstrapping..."
expect_prompt
# Without a sleep we only see a single node, not 5.
run_command "sleep 300"
expect_prompt
run_command "# Step 3: Connect to Constellation"
expect_prompt
run_command "export KUBECONFIG=/constellation/constellation-admin.conf"
expect_prompt
run_command "kubectl get nodes"
# Stop recording
send "exit"

View file

@ -0,0 +1,31 @@
#!/usr/bin/expect -f
# Note: Expects to be able to run 'sudo install' without a password
set timeout -1
set send_human {0.05 0 1 0.05 0.3}
set CTRLC \003
set CTRLX \030
set record_name [lindex $argv 0];
proc expect_prompt {} {
# This matches the trailing 0m of our ANSI control sequence. See PS1 in Dockerfile.
expect "0m "
}
proc run_command {cmd} {
send -h "$cmd"
send "\r"
expect -timeout 1
}
# Start recording
spawn asciinema rec --overwrite /recordings/create-cluster.cast
send "\r"
expect_prompt
run_command "cd constellation-iam-terraform"
expect_prompt
run_command "terraform apply -destroy -auto-approve"
# Stop recording
send "exit"

View file

@ -0,0 +1,40 @@
#!/usr/bin/expect -f
# Note: Expects to be able to run 'sudo install' without a password
set timeout -1
set send_human {0.05 0 1 0.05 0.3}
set CTRLC \003
set CTRLX \030
set record_name [lindex $argv 0];
proc expect_prompt {} {
# This matches the trailing 0m of our ANSI control sequence. See PS1 in Dockerfile.
expect "0m "
}
proc run_command {cmd} {
send -h "$cmd"
send "\r"
expect -timeout 1
}
# Start recording
spawn asciinema rec --overwrite /recordings/create-cluster.cast
send "\r"
expect_prompt
run_command "# Step 1: Delete Constellation cluster"
expect_prompt
run_command "constellation terminate"
expect -re "y\/n"
send "y"
send "\r"
expect_prompt
run_command "# Delete mastersecret to finalize deletion"
expect_prompt
run_command "rm constellation-mastersecret.json"
expect_prompt
# Stop recording
send "exit"

View file

@ -22,26 +22,26 @@ spawn asciinema rec --overwrite /recordings/verify-cli.cast
send "\r" send "\r"
expect_prompt expect_prompt
run_command "# Step 0: Installing SLSA verifier" run_command "# Step 1: Install SLSA verifier"
expect_prompt expect_prompt
run_command "curl -sLO https://github.com/slsa-framework/slsa-verifier/releases/latest/download/slsa-verifier-linux-amd64" run_command "curl -sLO https://github.com/slsa-framework/slsa-verifier/releases/latest/download/slsa-verifier-linux-amd64"
expect_prompt expect_prompt
run_command "sudo install slsa-verifier-linux-amd64 /usr/local/bin/slsa-verifier" run_command "sudo install slsa-verifier-linux-amd64 /usr/local/bin/slsa-verifier"
expect_prompt expect_prompt
run_command "# Step 1: Download Constellation and provenance file" run_command "# Step 2: Download Constellation CLI and provenance"
expect_prompt expect_prompt
run_command "curl -sLO https://github.com/edgelesssys/constellation/releases/latest/download/constellation-linux-amd64" run_command "curl -sLO https://github.com/edgelesssys/constellation/releases/latest/download/constellation-linux-amd64"
expect_prompt expect_prompt
run_command "curl -sLO https://github.com/edgelesssys/constellation/releases/latest/download/constellation.intoto.jsonl" run_command "curl -sLO https://github.com/edgelesssys/constellation/releases/latest/download/constellation.intoto.jsonl"
expect_prompt expect_prompt
run_command "# Step 2: Verify provenance" run_command "# Step 3: Verify provenance"
expect_prompt expect_prompt
run_command "slsa-verifier verify-artifact constellation-linux-amd64 --provenance-path constellation.intoto.jsonl --source-uri github.com/edgelesssys/constellation" run_command "slsa-verifier verify-artifact constellation-linux-amd64 --provenance-path constellation.intoto.jsonl --source-uri github.com/edgelesssys/constellation"
expect_prompt expect_prompt
run_command "# Step 3: Install the CLI" run_command "# Step 4: Install the CLI"
expect_prompt expect_prompt
run_command "sudo install constellation-linux-amd64 /usr/local/bin/constellation" run_command "sudo install constellation-linux-amd64 /usr/local/bin/constellation"
expect_prompt expect_prompt

View file

@ -2,10 +2,42 @@
docker build -t screenrecodings docker docker build -t screenrecodings docker
# Generate cast to verify CLI # Verify CLI
docker run -it -v "$(pwd)"/recordings:/recordings screenrecodings verify-cli.expect docker run -it -v "$(pwd)"/recordings:/recordings screenrecodings /scripts/verify-cli.expect
cp recordings/verify-cli.cast ../static/assets/verify-cli.cast cp recordings/verify-cli.cast ../static/assets/verify-cli.cast
# Generate cast to check SBOM # Check SBOM
docker run -it -v "$(pwd)"/recordings:/recordings screenrecodings check-sbom.expect docker run -it -v "$(pwd)"/recordings:/recordings screenrecodings /scripts/check-sbom.expect
cp recordings/check-sbom.cast ../static/assets/check-sbom.cast cp recordings/check-sbom.cast ../static/assets/check-sbom.cast
# Create config
docker run -it \
-v $HOME/.config/gcloud:/root/.config/gcloud \
-v "$(pwd)"/recordings:/recordings \
-v "$(pwd)"/constellation:/constellation \
screenrecodings /scripts/configure-cluster.expect
cp recordings/configure-cluster.cast ../static/assets/configure-cluster.cast
# Create cluster
docker run -it \
-v $HOME/.config/gcloud:/root/.config/gcloud \
-v "$(pwd)"/recordings:/recordings \
-v "$(pwd)"/constellation:/constellation \
screenrecodings /scripts/create-cluster.expect
cp recordings/create-cluster.cast ../static/assets/create-cluster.cast
# Terminate cluster
docker run -it \
-v $HOME/.config/gcloud:/root/.config/gcloud \
-v "$(pwd)"/recordings:/recordings \
-v "$(pwd)"/constellation:/constellation \
screenrecodings /scripts/terminate-cluster.expect
cp recordings/terminate-cluster.cast ../static/assets/terminate-cluster.cast
# Delete IAM
docker run -it \
-v $HOME/.config/gcloud:/root/.config/gcloud \
-v "$(pwd)"/recordings:/recordings \
-v "$(pwd)"/constellation:/constellation \
screenrecodings /scripts/delete-iam.expect
cp recordings/delete-iam.cast ../static/assets/delete-iam.cast

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,646 @@
{"version": 2, "width": 0, "height": 0, "timestamp": 1676389876, "env": {"SHELL": "/bin/bash", "TERM": "xterm-256color"}}
[0.009978, "o", "\u001b[38;2;144;255;153m/constellation\u001b[0m\r\r\n\u001b[38;2;139;4;221m$\u001b[0m "]
[0.012163, "o", "#"]
[0.163108, "o", " "]
[0.216936, "o", "S"]
[0.30533, "o", "t"]
[0.45903, "o", "e"]
[0.512104, "o", "p"]
[0.586704, "o", " "]
[0.74772, "o", "1"]
[0.871306, "o", ":"]
[0.923055, "o", " "]
[0.998877, "o", "C"]
[1.106553, "o", "r"]
[1.162884, "o", "e"]
[1.302957, "o", "a"]
[1.394736, "o", "t"]
[1.44488, "o", "e"]
[1.497134, "o", " "]
[1.582973, "o", "I"]
[1.672563, "o", "A"]
[1.722502, "o", "M"]
[1.774184, "o", " "]
[1.827576, "o", "c"]
[1.889641, "o", "o"]
[2.066619, "o", "n"]
[2.116009, "o", "f"]
[2.180924, "o", "i"]
[2.293095, "o", "g"]
[2.343539, "o", "u"]
[2.406095, "o", "r"]
[2.45627, "o", "a"]
[2.562646, "o", "t"]
[2.622129, "o", "i"]
[2.721485, "o", "o"]
[2.782927, "o", "n\r\n"]
[2.785051, "o", "\u001b[38;2;144;255;153m/constellation\u001b[0m\r\r\n\u001b[38;2;139;4;221m$\u001b[0m "]
[3.824013, "o", "c"]
[3.880865, "o", "o"]
[3.932967, "o", "n"]
[4.318449, "o", "s"]
[4.375397, "o", "t"]
[4.441553, "o", "e"]
[4.492132, "o", "l"]
[4.5621, "o", "l"]
[4.618377, "o", "a"]
[4.707542, "o", "t"]
[4.780711, "o", "i"]
[4.847373, "o", "o"]
[4.914727, "o", "n"]
[4.966568, "o", " "]
[5.148053, "o", "i"]
[5.205102, "o", "a"]
[5.274299, "o", "m"]
[5.347453, "o", " "]
[5.450853, "o", "c"]
[5.502333, "o", "r"]
[5.576264, "o", "e"]
[5.766585, "o", "a"]
[5.911045, "o", "t"]
[6.157707, "o", "e"]
[6.209767, "o", " "]
[6.407054, "o", "g"]
[6.462539, "o", "c"]
[6.611336, "o", "p"]
[6.669606, "o", " "]
[7.020967, "o", "-"]
[7.158271, "o", "-"]
[7.217362, "o", "g"]
[7.333416, "o", "e"]
[7.4146, "o", "n"]
[7.476091, "o", "e"]
[7.53152, "o", "r"]
[7.614397, "o", "a"]
[7.672485, "o", "t"]
[7.830837, "o", "e"]
[7.889635, "o", "-"]
[8.003556, "o", "c"]
[8.063886, "o", "o"]
[8.163553, "o", "n"]
[8.250599, "o", "f"]
[8.305599, "o", "i"]
[8.367759, "o", "g"]
[8.419983, "o", " "]
[8.475954, "o", "-"]
[8.6804, "o", "-"]
[8.848784, "o", "p"]
[8.903175, "o", "r"]
[9.021597, "o", "o"]
[9.094996, "o", "j"]
[9.167912, "o", "e"]
[9.219172, "o", "c"]
[9.270938, "o", "t"]
[9.333226, "o", "I"]
[9.480658, "o", "D"]
[9.531524, "o", " "]
[9.605122, "o", "c"]
[9.668015, "o", "o"]
[9.747914, "o", "n"]
[9.849176, "o", "s"]
[9.905821, "o", "t"]
[10.051341, "o", "e"]
[10.102016, "o", "l"]
[10.172552, "o", "l"]
[10.310982, "o", "a"]
[10.381231, "o", "t"]
[10.43422, "o", "i"]
[10.503366, "o", "o"]
[10.555465, "o", "n"]
[10.620398, "o", "-"]
[10.708496, "o", "3"]
[10.772283, "o", "3"]
[10.846826, "o", "1"]
[10.906003, "o", "6"]
[10.997204, "o", "1"]
[11.07978, "o", "3"]
[11.129662, "o", " "]
[11.212284, "o", "-"]
[11.263799, "o", "-"]
[11.315677, "o", "s"]
[11.432094, "o", "e"]
[11.485021, "o", "r"]
[11.562068, "o", "v"]
[11.645216, "o", "i"]
[11.742764, "o", "c"]
[11.795252, "o", "e"]
[11.860973, "o", "A"]
[11.92391, "o", "c"]
[11.978174, "o", "c"]
[12.059866, "o", "o"]
[12.1108, "o", "u"]
[12.161323, "o", "n"]
[12.211569, "o", "t"]
[12.262309, "o", "I"]
[12.343094, "o", "D"]
[12.400267, "o", " "]
[12.48269, "o", "c"]
[12.534894, "o", "o"]
[12.661298, "o", "n"]
[12.718252, "o", "s"]
[12.803397, "o", "t"]
[12.881141, "o", "e"]
[12.967152, "o", "l"]
[13.032166, "o", "l"]
[13.138291, "o", "a"]
[13.229967, "o", "t"]
[13.292397, "o", "i"]
[13.357833, "o", "o"]
[13.408117, "o", "n"]
[13.465772, "o", "-"]
[13.616323, "o", "d"]
[13.667217, "o", "e"]
[13.753662, "o", "m"]
[13.803851, "o", "o"]
[13.85434, "o", " "]
[13.90791, "o", "-"]
[13.973979, "o", "-"]
[14.030352, "o", "z"]
[14.118029, "o", "o"]
[14.178307, "o", "n"]
[14.23436, "o", "e"]
[14.300903, "o", " "]
[14.499157, "o", "e"]
[14.671772, "o", "u"]
[14.723545, "o", "r"]
[14.780229, "o", "o"]
[14.865105, "o", "p"]
[14.915711, "o", "e"]
[14.971511, "o", "-"]
[15.022695, "o", "w"]
[15.095252, "o", "e"]
[15.145575, "o", "s"]
[15.200056, "o", "t"]
[15.251336, "o", "3"]
[15.325208, "o", "-"]
[15.386449, "o", "b\r\n"]
[15.472692, "o", "The following IAM configuration will be created:\r\n\r\nProject ID:\t\tconstellation-331613\r\nService Account ID:\tconstellation-demo\r\nRegion:\t\t\teurope-west3\r\nZone:\t\t\teurope-west3-b\r\n\r\nThe configuration file constellation-conf.yaml will be automatically generated and populated with the IAM values.\r\nDo you want to create the configuration? [y/n]: "]
[16.473806, "o", "y\r\n"]
[16.474342, "o", "\u001b[?25l\r⣷ Creating"]
[16.575032, "o", "\r⣯ Creating"]
[16.675259, "o", "\r⣟ Creating"]
[16.7827, "o", "\r⡿ Creating"]
[16.883861, "o", "\r⢿ Creating"]
[17.016829, "o", "\r⣻ Creating"]
[17.117251, "o", "\r⣽ Creating"]
[17.219919, "o", "\r⣾ Creating"]
[17.320225, "o", "\r⣷ Creating"]
[17.421474, "o", "\r⣯ Creating"]
[17.521765, "o", "\r⣟ Creating"]
[17.624581, "o", "\r⡿ Creating"]
[17.724805, "o", "\r⢿ Creating"]
[17.82998, "o", "\r⣻ Creating"]
[17.9301, "o", "\r⣽ Creating"]
[18.031026, "o", "\r⣾ Creating"]
[18.132156, "o", "\r⣷ Creating"]
[18.234037, "o", "\r⣯ Creating"]
[18.343927, "o", "\r⣟ Creating"]
[18.439597, "o", "\r⡿ Creating"]
[18.549655, "o", "\r⢿ Creating"]
[18.649795, "o", "\r⣻ Creating"]
[18.755598, "o", "\r⣽ Creating"]
[18.855765, "o", "\r⣾ Creating"]
[18.956662, "o", "\r⣷ Creating"]
[19.058444, "o", "\r⣯ Creating"]
[19.166903, "o", "\r⣟ Creating"]
[19.268459, "o", "\r⡿ Creating"]
[19.369512, "o", "\r⢿ Creating"]
[19.470511, "o", "\r⣻ Creating"]
[19.574556, "o", "\r⣽ Creating"]
[19.674846, "o", "\r⣾ Creating"]
[19.781958, "o", "\r⣷ Creating"]
[19.900041, "o", "\r⣯ Creating"]
[20.020233, "o", "\r⣟ Creating"]
[20.131927, "o", "\r⡿ Creating"]
[20.233237, "o", "\r⢿ Creating"]
[20.334281, "o", "\r⣻ Creating"]
[20.436651, "o", "\r⣽ Creating"]
[20.53706, "o", "\r⣾ Creating"]
[20.637777, "o", "\r⣷ Creating"]
[20.738986, "o", "\r⣯ Creating"]
[20.839375, "o", "\r⣟ Creating"]
[20.939541, "o", "\r⡿ Creating"]
[21.043192, "o", "\r⢿ Creating"]
[21.141137, "o", "\r⣻ Creating"]
[21.244527, "o", "\r⣽ Creating"]
[21.345189, "o", "\r⣾ Creating"]
[21.446019, "o", "\r⣷ Creating"]
[21.5465, "o", "\r⣯ Creating"]
[21.651274, "o", "\r⣟ Creating"]
[21.75166, "o", "\r⡿ Creating"]
[21.85552, "o", "\r⢿ Creating"]
[21.955714, "o", "\r⣻ Creating"]
[22.1182, "o", "\r⣽ Creating"]
[22.262592, "o", "\r⣾ Creating"]
[22.362979, "o", "\r⣷ Creating"]
[22.466134, "o", "\r⣯ Creating"]
[22.582881, "o", "\r⣟ Creating"]
[22.683127, "o", "\r⡿ Creating"]
[22.785231, "o", "\r⢿ Creating"]
[22.899505, "o", "\r⣻ Creating"]
[22.999957, "o", "\r⣽ Creating"]
[23.103055, "o", "\r⣾ Creating"]
[23.204087, "o", "\r⣷ Creating"]
[23.307801, "o", "\r⣯ Creating"]
[23.409872, "o", "\r⣟ Creating"]
[23.511182, "o", "\r⡿ Creating"]
[23.612966, "o", "\r⢿ Creating"]
[23.714741, "o", "\r⣻ Creating"]
[23.815256, "o", "\r⣽ Creating"]
[23.916958, "o", "\r⣾ Creating"]
[24.019659, "o", "\r⣷ Creating"]
[24.119755, "o", "\r⣯ Creating"]
[24.22718, "o", "\r⣟ Creating"]
[24.328615, "o", "\r⡿ Creating"]
[24.432934, "o", "\r⢿ Creating"]
[24.532944, "o", "\r⣻ Creating"]
[24.633593, "o", "\r⣽ Creating"]
[24.735253, "o", "\r⣾ Creating"]
[24.835654, "o", "\r⣷ Creating"]
[24.942718, "o", "\r⣯ Creating"]
[25.047499, "o", "\r⣟ Creating"]
[25.156264, "o", "\r⡿ Creating"]
[25.260032, "o", "\r⢿ Creating"]
[25.361037, "o", "\r⣻ Creating"]
[25.465926, "o", "\r⣽ Creating"]
[25.567071, "o", "\r⣾ Creating"]
[25.679179, "o", "\r⣷ Creating"]
[25.785437, "o", "\r⣯ Creating"]
[25.898963, "o", "\r⣟ Creating"]
[26.00826, "o", "\r⡿ Creating"]
[26.12077, "o", "\r⢿ Creating"]
[26.223794, "o", "\r⣻ Creating"]
[26.326203, "o", "\r⣽ Creating"]
[26.426648, "o", "\r⣾ Creating"]
[26.52916, "o", "\r⣷ Creating"]
[26.631428, "o", "\r⣯ Creating"]
[26.73613, "o", "\r⣟ Creating"]
[26.837253, "o", "\r⡿ Creating"]
[26.938033, "o", "\r⢿ Creating"]
[27.039947, "o", "\r⣻ Creating"]
[27.155761, "o", "\r⣽ Creating"]
[27.258276, "o", "\r⣾ Creating"]
[27.380164, "o", "\r⣷ Creating"]
[27.480625, "o", "\r⣯ Creating"]
[27.615038, "o", "\r⣟ Creating"]
[27.716766, "o", "\r⡿ Creating"]
[27.840816, "o", "\r⢿ Creating"]
[27.949213, "o", "\r⣻ Creating"]
[28.050072, "o", "\r⣽ Creating"]
[28.154047, "o", "\r⣾ Creating"]
[28.255065, "o", "\r⣷ Creating"]
[28.361619, "o", "\r⣯ Creating"]
[28.461822, "o", "\r⣟ Creating"]
[28.594697, "o", "\r⡿ Creating"]
[28.694629, "o", "\r⢿ Creating"]
[28.806014, "o", "\r⣻ Creating"]
[28.90789, "o", "\r⣽ Creating"]
[29.013842, "o", "\r⣾ Creating"]
[29.113959, "o", "\r⣷ Creating"]
[29.235655, "o", "\r⣯ Creating"]
[29.337491, "o", "\r⣟ Creating"]
[29.490505, "o", "\r⡿ Creating"]
[29.598041, "o", "\r⢿ Creating"]
[29.698439, "o", "\r⣻ Creating"]
[29.822858, "o", "\r⣽ Creating"]
[29.923687, "o", "\r⣾ Creating"]
[30.025055, "o", "\r⣷ Creating"]
[30.125576, "o", "\r⣯ Creating"]
[30.225933, "o", "\r⣟ Creating"]
[30.328717, "o", "\r⡿ Creating"]
[30.431771, "o", "\r⢿ Creating"]
[30.532696, "o", "\r⣻ Creating"]
[30.636825, "o", "\r⣽ Creating"]
[30.73813, "o", "\r⣾ Creating"]
[30.842863, "o", "\r⣷ Creating"]
[30.945874, "o", "\r⣯ Creating"]
[31.076517, "o", "\r⣟ Creating"]
[31.179927, "o", "\r⡿ Creating"]
[31.300964, "o", "\r⢿ Creating"]
[31.403787, "o", "\r⣻ Creating"]
[31.504727, "o", "\r⣽ Creating"]
[31.604906, "o", "\r⣾ Creating"]
[31.719645, "o", "\r⣷ Creating"]
[31.845218, "o", "\r⣯ Creating"]
[31.955586, "o", "\r⣟ Creating"]
[32.110108, "o", "\r⡿ Creating"]
[32.223636, "o", "\r⢿ Creating"]
[32.329569, "o", "\r⣻ Creating"]
[32.4339, "o", "\r⣽ Creating"]
[32.534974, "o", "\r⣾ Creating"]
[32.63975, "o", "\r⣷ Creating"]
[32.74006, "o", "\r⣯ Creating"]
[32.868681, "o", "\r⣟ Creating"]
[32.969846, "o", "\r⡿ Creating"]
[33.072872, "o", "\r⢿ Creating"]
[33.173932, "o", "\r⣻ Creating"]
[33.275817, "o", "\r⣽ Creating"]
[33.416162, "o", "\r⣾ Creating"]
[33.53577, "o", "\r⣷ Creating"]
[33.636099, "o", "\r⣯ Creating"]
[33.737888, "o", "\r⣟ Creating"]
[33.841735, "o", "\r⡿ Creating"]
[33.944477, "o", "\r⢿ Creating"]
[34.044865, "o", "\r⣻ Creating"]
[34.146799, "o", "\r⣽ Creating"]
[34.246963, "o", "\r⣾ Creating"]
[34.348786, "o", "\r⣷ Creating"]
[34.449006, "o", "\r⣯ Creating"]
[34.549721, "o", "\r⣟ Creating"]
[34.653474, "o", "\r⡿ Creating"]
[34.754231, "o", "\rCreating \r\n\u001b[?25h\r\n"]
[34.76364, "o", "Your IAM configuration was created and filled into constellation-conf.yaml successfully.\r\n"]
[34.767549, "o", "\u001b[38;2;144;255;153m/constellation\u001b[0m\r\r\n\u001b[38;2;139;4;221m$\u001b[0m "]
[34.768676, "o", "#"]
[34.820322, "o", " "]
[34.870398, "o", "S"]
[34.921849, "o", "t"]
[34.996144, "o", "e"]
[35.053485, "o", "p"]
[35.124612, "o", " "]
[35.217356, "o", "2"]
[35.269964, "o", ":"]
[35.343378, "o", " "]
[35.403036, "o", "F"]
[35.459633, "o", "i"]
[35.530259, "o", "l"]
[35.753927, "o", "l"]
[35.832153, "o", " "]
[35.907045, "o", "i"]
[35.985367, "o", "n"]
[36.059152, "o", " "]
[36.125529, "o", "c"]
[36.249043, "o", "o"]
[36.302957, "o", "n"]
[36.381805, "o", "f"]
[36.435701, "o", "i"]
[36.505041, "o", "g"]
[36.644616, "o", "u"]
[36.829273, "o", "r"]
[37.272297, "o", "a"]
[37.487987, "o", "t"]
[37.541896, "o", "i"]
[37.637833, "o", "o"]
[37.695807, "o", "n\r\n"]
[37.697093, "o", "\u001b[38;2;144;255;153m/constellation\u001b[0m\r\r\n\u001b[38;2;139;4;221m$\u001b[0m "]
[38.702318, "o", "y"]
[38.756718, "o", "q"]
[38.810071, "o", " "]
[38.865927, "o", "'"]
[38.919268, "o", "."]
[38.97605, "o", "p"]
[39.031231, "o", "r"]
[39.121649, "o", "o"]
[39.216923, "o", "v"]
[39.331769, "o", "i"]
[39.549907, "o", "d"]
[39.617059, "o", "e"]
[39.756093, "o", "r"]
[39.829437, "o", "."]
[39.880465, "o", "g"]
[39.934268, "o", "c"]
[39.994565, "o", "p"]
[40.05663, "o", "."]
[40.128821, "o", "p"]
[40.203665, "o", "r"]
[40.25626, "o", "o"]
[40.307339, "o", "j"]
[40.365324, "o", "e"]
[40.418733, "o", "c"]
[40.47342, "o", "t"]
[40.526103, "o", " "]
[40.580684, "o", "="]
[40.642017, "o", " "]
[40.718342, "o", "\""]
[40.785066, "o", "c"]
[40.874377, "o", "o"]
[40.929006, "o", "n"]
[41.002858, "o", "s"]
[41.077102, "o", "t"]
[41.130828, "o", "e"]
[41.20603, "o", "l"]
[41.373038, "o", "l"]
[41.451682, "o", "a"]
[41.506705, "o", "t"]
[41.557902, "o", "i"]
[41.614091, "o", "o"]
[41.664937, "o", "n"]
[41.71727, "o", "-"]
[41.773826, "o", "3"]
[42.029874, "o", "3"]
[42.13697, "o", "1"]
[42.19794, "o", "6"]
[42.251841, "o", "1"]
[42.323888, "o", "3"]
[42.380268, "o", "\""]
[42.444092, "o", "'"]
[42.500876, "o", " "]
[42.588894, "o", "-"]
[42.645038, "o", "i"]
[42.725942, "o", " "]
[42.817888, "o", "c"]
[42.887035, "o", "o"]
[42.971254, "o", "n"]
[43.134712, "o", "s"]
[43.211026, "o", "t"]
[43.327158, "o", "e"]
[43.411375, "o", "l"]
[43.465806, "o", "l"]
[43.518393, "o", "a"]
[43.569901, "o", "t"]
[43.642334, "o", "i"]
[43.697866, "o", "o"]
[43.897101, "o", "n"]
[43.955816, "o", "-"]
[44.026985, "o", "c"]
[44.087799, "o", "o"]
[44.335802, "o", "n"]
[44.426355, "o", "f"]
[44.481967, "o", "."]
[44.535889, "o", "y"]
[44.625469, "o", "a"]
[44.684142, "o", "m"]
[44.751397, "o", "l\r\n"]
[44.770905, "o", "\u001b[38;2;144;255;153m/constellation\u001b[0m\r\r\n\u001b[38;2;139;4;221m$\u001b[0m "]
[45.780101, "o", "y"]
[45.932978, "o", "q"]
[46.04493, "o", " "]
[46.103148, "o", "'"]
[46.155025, "o", "."]
[46.220993, "o", "p"]
[46.276081, "o", "r"]
[46.340959, "o", "o"]
[46.413767, "o", "v"]
[46.472216, "o", "i"]
[46.526678, "o", "d"]
[46.576756, "o", "e"]
[46.629996, "o", "r"]
[46.682443, "o", "."]
[46.776734, "o", "g"]
[46.853734, "o", "c"]
[46.940891, "o", "p"]
[47.006688, "o", "."]
[47.130564, "o", "z"]
[47.313245, "o", "o"]
[47.397168, "o", "n"]
[47.498473, "o", "e"]
[47.555208, "o", " "]
[47.605505, "o", "="]
[47.658822, "o", " "]
[47.710825, "o", "\""]
[47.821063, "o", "e"]
[47.921745, "o", "u"]
[47.972996, "o", "r"]
[48.052917, "o", "o"]
[48.107423, "o", "p"]
[48.158329, "o", "e"]
[48.21316, "o", "-"]
[48.263796, "o", "w"]
[48.314123, "o", "e"]
[48.378198, "o", "s"]
[48.440396, "o", "t"]
[48.495964, "o", "3"]
[48.546953, "o", "-"]
[48.606905, "o", "b"]
[48.657912, "o", "\""]
[48.779126, "o", "'"]
[48.858163, "o", " "]
[48.929272, "o", "-"]
[48.982248, "o", "i"]
[49.066356, "o", " "]
[49.130109, "o", "c"]
[49.266673, "o", "o"]
[49.342786, "o", "n"]
[49.403692, "o", "s"]
[49.456008, "o", "t"]
[49.506648, "o", "e"]
[49.649664, "o", "l"]
[49.769891, "o", "l"]
[49.823427, "o", "a"]
[49.886317, "o", "t"]
[49.940876, "o", "i"]
[49.991643, "o", "o"]
[50.083198, "o", "n"]
[50.134118, "o", "-"]
[50.215362, "o", "c"]
[50.288528, "o", "o"]
[50.343689, "o", "n"]
[50.464817, "o", "f"]
[50.517915, "o", "."]
[50.570697, "o", "y"]
[50.623035, "o", "a"]
[50.681023, "o", "m"]
[50.761343, "o", "l\r\n"]
[50.784767, "o", "\u001b[38;2;144;255;153m/constellation\u001b[0m\r\r\n\u001b[38;2;139;4;221m$\u001b[0m "]
[51.793419, "o", "y"]
[51.844659, "o", "q"]
[51.895305, "o", " "]
[51.94749, "o", "'"]
[51.997446, "o", "."]
[52.048978, "o", "p"]
[52.163754, "o", "r"]
[52.214978, "o", "o"]
[52.266814, "o", "v"]
[52.316845, "o", "i"]
[52.395035, "o", "d"]
[52.452954, "o", "e"]
[52.53708, "o", "r"]
[52.605094, "o", "."]
[52.656866, "o", "g"]
[52.717961, "o", "c"]
[52.791801, "o", "p"]
[52.847118, "o", "."]
[52.899873, "o", "r"]
[52.950369, "o", "e"]
[53.000995, "o", "g"]
[53.051937, "o", "i"]
[53.178809, "o", "o"]
[53.231176, "o", "n"]
[53.288347, "o", " "]
[53.361955, "o", "="]
[53.446987, "o", " "]
[53.511463, "o", "\""]
[53.563732, "o", "e"]
[53.614895, "o", "u"]
[53.672962, "o", "r"]
[53.786195, "o", "o"]
[53.837933, "o", "p"]
[53.962129, "o", "e"]
[54.020488, "o", "-"]
[54.082905, "o", "w"]
[54.217438, "o", "e"]
[54.297605, "o", "s"]
[54.361169, "o", "t"]
[54.42538, "o", "3"]
[54.476543, "o", "\""]
[54.559356, "o", "'"]
[54.624474, "o", " "]
[54.697841, "o", "-"]
[54.75414, "o", "i"]
[54.828609, "o", " "]
[54.879288, "o", "c"]
[54.950881, "o", "o"]
[55.007126, "o", "n"]
[55.112773, "o", "s"]
[55.16434, "o", "t"]
[55.25062, "o", "e"]
[55.301177, "o", "l"]
[55.352261, "o", "l"]
[55.405339, "o", "a"]
[55.540904, "o", "t"]
[55.601913, "o", "i"]
[55.661603, "o", "o"]
[55.762172, "o", "n"]
[55.812922, "o", "-"]
[55.865833, "o", "c"]
[55.918596, "o", "o"]
[55.973868, "o", "n"]
[56.059938, "o", "f"]
[56.121265, "o", "."]
[56.179797, "o", "y"]
[56.234914, "o", "a"]
[56.287168, "o", "m"]
[56.340341, "o", "l\r\n"]
[56.364914, "o", "\u001b[38;2;144;255;153m/constellation\u001b[0m\r\r\n\u001b[38;2;139;4;221m$\u001b[0m "]
[57.368024, "o", "c"]
[57.457651, "o", "a"]
[57.511962, "o", "t"]
[57.56289, "o", " "]
[57.616056, "o", "c"]
[57.667901, "o", "o"]
[57.719365, "o", "n"]
[57.791671, "o", "s"]
[57.847394, "o", "t"]
[57.929442, "o", "e"]
[57.995117, "o", "l"]
[58.08735, "o", "l"]
[58.139414, "o", "a"]
[58.230209, "o", "t"]
[58.326932, "o", "i"]
[58.378221, "o", "o"]
[58.431794, "o", "n"]
[58.483061, "o", "-"]
[58.53396, "o", "c"]
[58.58778, "o", "o"]
[58.641333, "o", "n"]
[58.693085, "o", "f"]
[58.746871, "o", "."]
[58.835347, "o", "y"]
[58.894994, "o", "a"]
[59.017027, "o", "m"]
[59.171602, "o", "l"]
[59.22632, "o", " "]
[59.301167, "o", "|"]
[59.354302, "o", " "]
[59.449938, "o", "h"]
[59.589654, "o", "e"]
[59.676218, "o", "a"]
[59.725867, "o", "d"]
[59.776711, "o", " "]
[59.876724, "o", "-"]
[59.928274, "o", "n"]
[59.985415, "o", "1"]
[60.03635, "o", "5\r\n"]
[60.03847, "o", "version: v2 # Schema version of this configuration file.\r\nimage: v2.5.1 # Machine image used to create Constellation nodes.\r\nstateDiskSizeGB: 30 # Size (in GB) of a node's disk to store the non-volatile state.\r\nkubernetesVersion: \"1.25\" # Kubernetes version to be installed in the cluster.\r\ndebugCluster: false # DON'T USE IN PRODUCTION: enable debug mode and use debug images. For usage, see: https://github.com/edgelesssys/constellation/blob/main/debugd/README.md\r\n# Supported cloud providers and their specific configurations.\r\nprovider:\r\n # Configuration for Google Cloud as provider.\r\n gcp:\r\n project: \"constellation-331613\" # GCP project. See: https://support.google.com/googleapi/answer/7014113?hl=en\r\n region: \"europe-west3\" # GCP datacenter region. See: https://cloud.google.com/compute/docs/regions-zones#available\r\n zone: \"europe-west3-b\" # GCP datacenter zone. See: https://cloud.google.com/compute/docs/regions-zones#available\r\n serviceAccountKeyPath: gcpServiceAccountKey.json # Path of service a"]
[60.038554, "o", "ccount key file. For required service account roles, see https://docs.edgeless.systems/constellation/getting-started/install#authorization\r\n instanceType: n2d-standard-4 # VM instance type to use for Constellation nodes.\r\n stateDiskType: pd-ssd # Type of a node's state disk. The type influences boot time and I/O performance. See: https://cloud.google.com/compute/docs/disks#disk-types\r\n"]
[60.040033, "o", "\u001b[38;2;144;255;153m/constellation\u001b[0m\r\r\n\u001b[38;2;139;4;221m$\u001b[0m "]

5214
docs/static/assets/create-cluster.cast vendored Normal file

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff