From c5323ac9253a9407c34cbf0b3a433f2117cb3bca Mon Sep 17 00:00:00 2001 From: corver Date: Thu, 26 Sep 2024 10:39:07 +0200 Subject: [PATCH] ci(halovisor): swap to omni cosmovisor fork (#1977) Swap the cosmovisor binary inside halovisor to the omni [fork](https://github.com/omni-network/cosmovisor). This ensures that the next version, `v0.8.0`. Will be compatible with subsequent e2e app that mounts only a single `/halo` folder to halovisor. This ensures we can use `v0.8.0`as LTS "genesis version" and backwards compatibility target. issue: none --- cli/cmd/compose.yml.tpl | 3 +-- e2e/docker/compose.yaml.tmpl | 3 +-- .../TestComposeTemplate_commit.golden | 3 +-- ...estComposeTemplate_empheral_network.golden | 3 +-- ...seTemplate_empheral_network_upgrade.golden | 3 +-- e2e/manifests/backwards.toml | 6 ++--- .../TestSetup_127-0-0-1-compose.yaml.golden | 3 +-- .../TestSetup_127-0-0-2-compose.yaml.golden | 3 +-- .../TestSetup_127-0-0-4-compose.yaml.golden | 3 +-- .../TestSetup_127-0-0-5-compose.yaml.golden | 3 +-- scripts/halovisor/Dockerfile | 24 ++++++++----------- scripts/halovisor/build.sh | 14 +++++------ 12 files changed, 29 insertions(+), 42 deletions(-) diff --git a/cli/cmd/compose.yml.tpl b/cli/cmd/compose.yml.tpl index 44dde0e08..ea8accc3d 100644 --- a/cli/cmd/compose.yml.tpl +++ b/cli/cmd/compose.yml.tpl @@ -11,8 +11,7 @@ services: # - 1317:1317 # Cosmos REST API # - 9090:9090 # Cosmos gRPC API volumes: - - ./halo/config:/halo/config - - ./halo/data:/halo/data + - ./halo:/halo - ./geth/geth/jwtsecret:/geth/jwtsecret omni_evm: diff --git a/e2e/docker/compose.yaml.tmpl b/e2e/docker/compose.yaml.tmpl index 85081b58a..18645e745 100644 --- a/e2e/docker/compose.yaml.tmpl +++ b/e2e/docker/compose.yaml.tmpl @@ -30,8 +30,7 @@ services: {{- end }} - 6060 # Pprof volumes: - - ./{{ .Name }}/config:/halo/config - - ./{{ .Name }}/data:/halo/data + - ./{{ .Name }}:/halo networks: {{ $.NetworkName }}: {{ if $.Network }}ipv4_address: {{ .InternalIP }}{{ end }} diff --git a/e2e/docker/testdata/TestComposeTemplate_commit.golden b/e2e/docker/testdata/TestComposeTemplate_commit.golden index 09752a5f2..09a29fb63 100644 --- a/e2e/docker/testdata/TestComposeTemplate_commit.golden +++ b/e2e/docker/testdata/TestComposeTemplate_commit.golden @@ -24,8 +24,7 @@ services: - 1317 # Cosmos REST API - 6060 # Pprof volumes: - - ./node0/config:/halo/config - - ./node0/data:/halo/data + - ./node0:/halo networks: test: ipv4_address: 10.186.73.0 diff --git a/e2e/docker/testdata/TestComposeTemplate_empheral_network.golden b/e2e/docker/testdata/TestComposeTemplate_empheral_network.golden index 2c5f3e96d..4353d1d4c 100644 --- a/e2e/docker/testdata/TestComposeTemplate_empheral_network.golden +++ b/e2e/docker/testdata/TestComposeTemplate_empheral_network.golden @@ -24,8 +24,7 @@ services: - 1317 # Cosmos REST API - 6060 # Pprof volumes: - - ./node0/config:/halo/config - - ./node0/data:/halo/data + - ./node0:/halo networks: test: ipv4_address: 10.186.73.0 diff --git a/e2e/docker/testdata/TestComposeTemplate_empheral_network_upgrade.golden b/e2e/docker/testdata/TestComposeTemplate_empheral_network_upgrade.golden index c9071003f..88f5d2758 100644 --- a/e2e/docker/testdata/TestComposeTemplate_empheral_network_upgrade.golden +++ b/e2e/docker/testdata/TestComposeTemplate_empheral_network_upgrade.golden @@ -24,8 +24,7 @@ services: - 1317 # Cosmos REST API - 6060 # Pprof volumes: - - ./node0/config:/halo/config - - ./node0/data:/halo/data + - ./node0:/halo networks: test: ipv4_address: 10.186.73.0 diff --git a/e2e/manifests/backwards.toml b/e2e/manifests/backwards.toml index 05fd4ea13..6aeebe7f1 100644 --- a/e2e/manifests/backwards.toml +++ b/e2e/manifests/backwards.toml @@ -1,4 +1,4 @@ -# Backwards ensures backwards-compatibility with v0.4.0. +# Backwards ensures backwards-compatibility with v0.8.0. network = "devnet" anvil_chains = ["mock_l1", "mock_l2"] @@ -9,9 +9,9 @@ multi_omni_evms = true mode = "archive" [node.validator03] -version="omniops/halovisor:v0.4.0" +version="omniops/halovisor:v0.8.0" perturb = ["upgrade"] [node.validator04] -version="omniops/halovisor:v0.4.0" +version="omniops/halovisor:v0.8.0" perturb = ["upgrade"] diff --git a/e2e/vmcompose/testdata/TestSetup_127-0-0-1-compose.yaml.golden b/e2e/vmcompose/testdata/TestSetup_127-0-0-1-compose.yaml.golden index babb14adc..9f50b092c 100644 --- a/e2e/vmcompose/testdata/TestSetup_127-0-0-1-compose.yaml.golden +++ b/e2e/vmcompose/testdata/TestSetup_127-0-0-1-compose.yaml.golden @@ -20,8 +20,7 @@ services: - 1317:1317 # Cosmos REST API - 6060 # Pprof volumes: - - ./validator01/config:/halo/config - - ./validator01/data:/halo/data + - ./validator01:/halo networks: test: diff --git a/e2e/vmcompose/testdata/TestSetup_127-0-0-2-compose.yaml.golden b/e2e/vmcompose/testdata/TestSetup_127-0-0-2-compose.yaml.golden index 5dbc9b4d4..8ab3f5b69 100644 --- a/e2e/vmcompose/testdata/TestSetup_127-0-0-2-compose.yaml.golden +++ b/e2e/vmcompose/testdata/TestSetup_127-0-0-2-compose.yaml.golden @@ -20,8 +20,7 @@ services: - 1317:1317 # Cosmos REST API - 6060 # Pprof volumes: - - ./validator02/config:/halo/config - - ./validator02/data:/halo/data + - ./validator02:/halo networks: test: diff --git a/e2e/vmcompose/testdata/TestSetup_127-0-0-4-compose.yaml.golden b/e2e/vmcompose/testdata/TestSetup_127-0-0-4-compose.yaml.golden index 02cb5eee3..550658146 100644 --- a/e2e/vmcompose/testdata/TestSetup_127-0-0-4-compose.yaml.golden +++ b/e2e/vmcompose/testdata/TestSetup_127-0-0-4-compose.yaml.golden @@ -20,8 +20,7 @@ services: - 1317:1317 # Cosmos REST API - 6060 # Pprof volumes: - - ./seed01/config:/halo/config - - ./seed01/data:/halo/data + - ./seed01:/halo networks: test: diff --git a/e2e/vmcompose/testdata/TestSetup_127-0-0-5-compose.yaml.golden b/e2e/vmcompose/testdata/TestSetup_127-0-0-5-compose.yaml.golden index a98e31f7a..6703c2601 100644 --- a/e2e/vmcompose/testdata/TestSetup_127-0-0-5-compose.yaml.golden +++ b/e2e/vmcompose/testdata/TestSetup_127-0-0-5-compose.yaml.golden @@ -20,8 +20,7 @@ services: - 1317:1317 # Cosmos REST API - 6060 # Pprof volumes: - - ./fullnode01/config:/halo/config - - ./fullnode01/data:/halo/data + - ./fullnode01:/halo networks: test: diff --git a/scripts/halovisor/Dockerfile b/scripts/halovisor/Dockerfile index 694cc290e..984f818a8 100644 --- a/scripts/halovisor/Dockerfile +++ b/scripts/halovisor/Dockerfile @@ -1,15 +1,10 @@ # Docker build args -# TODO: Pin halo genesis to public omega release -ARG HALO_VERSION_GENESIS=main +ARG OMNI_COSMOVISOR_VERSION=v0.1.0 +ARG HALO_VERSION_0_GENESIS=v0.8.0 # Build stages -FROM golang:alpine AS build-cosmovisor -ENV COSMOVISOR_VERSION=v1.5.0 -RUN go install cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@${COSMOVISOR_VERSION} - -FROM omniops/halo:${HALO_VERSION_GENESIS} AS build-genesis - -# TODO: Add post-genesis network-upgrade versions here. +FROM omniops/cosmovisor:${OMNI_COSMOVISOR_VERSION} AS build-cosmovisor +FROM omniops/halo:${HALO_VERSION_0_GENESIS} AS build-0-genesis # Runtime stage FROM scratch AS runtime @@ -26,14 +21,15 @@ ENV DAEMON_NAME=halo ENV DAEMON_ALLOW_DOWNLOAD_BINARIES=false ENV DAEMON_RESTART_AFTER_UPGRADE=true ENV COSMOVISOR_TIMEFORMAT_LOGS=rfc3339nano +ENV COSMOVISOR_CUSTOM_ROOT=/halovisor +ENV COSMOVISOR_CUSTOM_CURRENT_LINK=/halo/halovisor-current -# Define mounted volumes -VOLUME /halo/config -VOLUME /halo/data +# Define mounted volume +VOLUME /halo # Copy binaries from build stages. -COPY --from=build-cosmovisor /go/bin/cosmovisor /usr/local/bin/cosmovisor -COPY --from=build-genesis /app $DAEMON_HOME/cosmovisor/genesis/bin/halo +COPY --from=build-cosmovisor /ko-app/cosmovisor /usr/local/bin/cosmovisor +COPY --from=build-0-genesis /app /halovisor/genesis/bin/halo # Cosmovisor is the entrypoint ENTRYPOINT [ "cosmovisor" ] diff --git a/scripts/halovisor/build.sh b/scripts/halovisor/build.sh index 58c89ecf1..4f6751f7e 100755 --- a/scripts/halovisor/build.sh +++ b/scripts/halovisor/build.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -# ./build.sh +# ./build.sh # This scripts builds the halovisor docker image # Halovisor wraps cosmovisor and multiple halo versions into a single docker image. # It allows for docker based deployments that support halo network upgrades. @@ -8,17 +8,17 @@ set -e SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) -HALO_VERSION_GENESIS="${1}" -if [ -z "$HALO_VERSION_GENESIS" ]; then - HALO_VERSION_GENESIS=$(git rev-parse --short=7 HEAD) - echo "Using head as HALO_VERSION_GENESIS: ${HALO_VERSION_GENESIS}" +HALO_VERSION_0_GENESIS="${1}" +if [ -z "${HALO_VERSION_0_GENESIS}" ]; then + HALO_VERSION_0_GENESIS=$(git rev-parse --short=7 HEAD) + echo "Using head as HALO_VERSION_GENESIS: ${HALO_VERSION_0_GENESIS}" fi -IMAGEREF="omniops/halovisor:${HALO_VERSION_GENESIS}" +IMAGEREF="omniops/halovisor:${HALO_VERSION_0_GENESIS}" IMAGEMAIN="omniops/halovisor:main" docker build \ - --build-arg HALO_VERSION_GENESIS="${HALO_VERSION_GENESIS}" \ + --build-arg HALO_VERSION_0_GENESIS="${HALO_VERSION_0_GENESIS}" \ -t "${IMAGEREF}" \ -t "${IMAGEMAIN}" \ "${SCRIPT_DIR}"