Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PAD-173: 2 node HA - Tech Preview #131

Merged
merged 90 commits into from
Jun 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
6143c81
use custom k3s provider; add marmot & sqlite
TylerGillson Oct 4, 2023
b8c1312
fix marmot install
TylerGillson Oct 4, 2023
6322198
fix marmot install; add less
TylerGillson Oct 5, 2023
30dd861
revert Dockerfile, move two node packages into Earthfile
TylerGillson Oct 6, 2023
b9e32c3
revert Dockerfile
TylerGillson Oct 6, 2023
18c401b
Fix bug in earthfile
oz123 Oct 9, 2023
e73955c
revert kairos-provider-image change
TylerGillson Oct 11, 2023
7042cc4
Parametrize marmot version
oz123 Oct 12, 2023
be2c1f4
Don't install less (there is already more in the image)
oz123 Oct 12, 2023
bcacb79
Add marmot installation to opensuse-leap
oz123 Oct 12, 2023
7b41a6c
DRY single curl block to download marmot
oz123 Oct 13, 2023
a18f456
PAD-156: Add custom health check script
oz123 Oct 18, 2023
221a477
PAD-156: Update user-data template, include health-check-script
oz123 Oct 18, 2023
2fec909
chore: use patched marmot binary
TylerGillson Oct 19, 2023
4187d98
install ping for two node
TylerGillson Oct 26, 2023
54ef5b6
Merge branch 'main' into two-node
TylerGillson Oct 30, 2023
7e3f355
Add E2E automation, debug helpers (#94)
TylerGillson Nov 6, 2023
5efa2fe
chore: use 0.8.7-beta.1 marmot release
TylerGillson Nov 7, 2023
b22e102
fix: increase EARTHLY_BUILDKIT_CACHE_SIZE_MB & upgrade PE version
TylerGillson Nov 7, 2023
1cab1e7
docs: fix debug README
TylerGillson Nov 7, 2023
96558cd
Update README.md
TylerGillson Nov 8, 2023
e499803
fix: specify liveness backend, bump earthly cache, eject both ISOs
TylerGillson Nov 13, 2023
0a5c09b
Add kine to the base installation (#98)
oz123 Nov 28, 2023
f979835
Add option to specify the two node backend
oz123 Dec 20, 2023
6bc814b
Add postgresql (#111)
oz123 Dec 20, 2023
bc244a3
DRY configuration of postgresql (#112)
oz123 Dec 20, 2023
5965f79
Parameterize build branches (#113)
oz123 Dec 22, 2023
09d9162
Correct the two node variable name
oz123 Dec 22, 2023
c1cf44e
Explicitly pass TWO_NODE_BACKEND to earthly
oz123 Dec 22, 2023
3ae3327
Correct the variable name passed to userdata
oz123 Dec 22, 2023
9930d98
fix sourcing of test-two-node.sh
TylerGillson Dec 22, 2023
086b9e9
Fix perl path so psql works in CanvOS
oz123 Dec 22, 2023
295a395
Don't exit from function, instead use return
oz123 Dec 22, 2023
525e2ac
Add missing kine version
oz123 Dec 24, 2023
824d72c
Merge branch 'main' into two-node
TylerGillson Jan 4, 2024
92f463e
chore: tidy Dockerfile examples
TylerGillson Jan 4, 2024
4432f00
fix: configure postgres conditionally; tidy Earthfile
TylerGillson Jan 4, 2024
e997f22
Add external datastore to default k3s config
oz123 Jan 8, 2024
5ab6bfc
Fix format of cluster create
oz123 Jan 8, 2024
e479c83
Parameterize CE_VERSION
oz123 Jan 10, 2024
dc6bf12
fix: parameterize k3s & PE versions
TylerGillson Jan 10, 2024
a9fface
fix: add two-node provider option; tidy
TylerGillson Jan 10, 2024
a98809a
chore: add master-master template
TylerGillson Jan 11, 2024
98418b5
Update env.example
TylerGillson Jan 11, 2024
3f37db0
Add stylus hash to machine and cluster names
oz123 Jan 12, 2024
062ca38
fix: align edge host names w/ cluster template
TylerGillson Jan 15, 2024
7115c36
chore: update master-master template
TylerGillson Jan 15, 2024
27d8d17
chore: remove sqlite support
TylerGillson Jan 15, 2024
07d5716
chore: use node-role, not two-node
TylerGillson Jan 15, 2024
092b6e8
chore: switch to master-master, remove userdata customization
TylerGillson Jan 16, 2024
944f5cd
fix: include edge host names
TylerGillson Jan 18, 2024
6fe1bd8
fix typo
TylerGillson Jan 18, 2024
69b57d2
tidy
TylerGillson Jan 20, 2024
40c900c
feat: remove backend flag; configure pg log rotation
TylerGillson Jan 22, 2024
fd0ba50
add host replacement var, update template
TylerGillson Jan 23, 2024
47e0181
upgrade k3s & kine; parameterize k3s version
TylerGillson Jan 23, 2024
45b831b
fix: finish parameterizing k3s version
TylerGillson Jan 23, 2024
968d3b0
bump kine as releases are missing amd64 build for 0.11.0
TylerGillson Jan 23, 2024
166e24b
remove --pod-eviction-timeout
TylerGillson Jan 23, 2024
9cf8e16
revert k3s & kine versions; update templates for k3s 1.28.x
TylerGillson Jan 24, 2024
17b84af
move pg_data dir into COS_PERSISTENT
TylerGillson Jan 25, 2024
e218b83
move rsync to stylus
TylerGillson Jan 26, 2024
124548e
fix REPLACEMENT_HOST logic
TylerGillson Jan 26, 2024
5dc914a
move pg config to stylus
TylerGillson Jan 27, 2024
8599efc
add prepare_cluster_update
TylerGillson Jan 27, 2024
44a3c1b
add SUFFIX_OVERRIDE; fix vm_array
TylerGillson Jan 30, 2024
41fdc7f
chore: fix instructions & default K3S_VERSION; make function detectio…
TylerGillson Jan 31, 2024
2282361
chore: update stylus branch
TylerGillson Feb 5, 2024
ae28b42
fix: update kine & k3s versions
TylerGillson Mar 7, 2024
d91e7a0
chore: merge main
TylerGillson Mar 8, 2024
982599f
chore: bump default PE_VERSION, k3s version
TylerGillson Mar 11, 2024
b25869d
fix: sort + dedupe k8s versions
TylerGillson Mar 14, 2024
6ebea8a
feat: use single ISO, dynamic edge host names
TylerGillson Mar 14, 2024
cb390ce
chore: add logging
TylerGillson Mar 14, 2024
141e649
fix: init globals after sourcing .env
TylerGillson Mar 14, 2024
273049a
chore: add logging
TylerGillson Mar 14, 2024
d42e19f
docs: add govc version warning
TylerGillson Mar 14, 2024
5546877
chore: remove two-node-update.json
TylerGillson Mar 15, 2024
1b153fa
feat: proxy support
TylerGillson Mar 29, 2024
6e1bb04
refactor: install postgres in provider image only
TylerGillson Apr 1, 2024
103cd4a
feat: wifi setup
TylerGillson Apr 4, 2024
f0f760e
Merge branch 'main' into 2-node
TylerGillson Apr 6, 2024
025f60c
Merge branch 'main' into 2-node
TylerGillson Apr 26, 2024
ff0f44e
Merge branch 'main' into 2-node
TylerGillson May 21, 2024
bbdc9a7
chore: fix typo; add gnupg
TylerGillson May 23, 2024
836facb
refactor: install postgresql w/o gpg
TylerGillson May 24, 2024
f5802c6
Merge branch 'main' into 2-node
TylerGillson May 28, 2024
c12598f
chore: bump provider-k3s version
TylerGillson Jun 11, 2024
ac574f8
Merge branch 'main' into 2-node
TylerGillson Jun 11, 2024
3e9a2d0
chore: fix merge conflicts
TylerGillson Jun 11, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,12 @@ content-*/*
*.arg
.idea
.DS_Store

hack/*.img
test/.env
two-node-create.json
two-node-update.json

build/
local/
keys/
Expand Down
14 changes: 12 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ RUN if [ "${OS_DISTRIBUTION}" = "opensuse-leap" ] && [ "${PROXY_CERT_PATH}" != "
update-ca-certificates; \
fi

###########################Add any other image customizations here #######################
########################### Add any other image customizations here #######################

#### Examples ####

Expand All @@ -37,8 +37,18 @@ RUN if [ "${OS_DISTRIBUTION}" = "opensuse-leap" ] && [ "${PROXY_CERT_PATH}" != "
# && apt-get clean

# RUN apt-get update && apt-get install nginx -y
### or

### To install the nginx package for opensuse ###

# RUN zypper refresh && zypper install nginx -y

### To add a custom health script for two-node liveness checks ###

# ADD overlay/files/opt/spectrocloud/bin/check-disk-size.sh /opt/spectrocloud/bin/

### To install wifi prerequisites for Ubuntu ###

# RUN apt-get update && apt-get install wpasupplicant -y && \
# apt-get update && apt-get install network-manager -y && \
# apt-get install iputils-ping -y && \
# mkdir /var/lib/wpa
66 changes: 47 additions & 19 deletions Earthfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@ VERSION 0.6
ARG TARGETOS
ARG TARGETARCH

## Default Image Repos Used in the Builds.
# Default image repositories used in the builds.
ARG ALPINE_IMG=gcr.io/spectro-images-public/alpine:3.16.2
ARG SPECTRO_PUB_REPO=gcr.io/spectro-images-public
ARG SPECTRO_LUET_REPO=gcr.io/spectro-dev-public
ARG KAIROS_BASE_IMAGE_URL=gcr.io/spectro-images-public
ARG ETCD_REPO=https://github.com/etcd-io
FROM $SPECTRO_PUB_REPO/canvos/alpine-cert:v1.0.0

## Spectro Cloud and Kairos Tags ##
# Spectro Cloud and Kairos tags.
ARG PE_VERSION=v4.4.1
ARG SPECTRO_LUET_VERSION=v1.3.1
ARG KAIROS_VERSION=v3.0.11
Expand All @@ -19,11 +19,11 @@ ARG RKE2_FLAVOR_TAG=rke2r1
ARG BASE_IMAGE_URL=quay.io/kairos
ARG OSBUILDER_VERSION=v0.201.0
ARG OSBUILDER_IMAGE=quay.io/kairos/osbuilder-tools:$OSBUILDER_VERSION
ARG K3S_PROVIDER_VERSION=v4.4.0
ARG K3S_PROVIDER_VERSION=v4.4.1
ARG KUBEADM_PROVIDER_VERSION=v4.4.0
ARG RKE2_PROVIDER_VERSION=v4.4.0

# Variables used in the builds. Update for ADVANCED use cases only Modify in .arg file or via CLI arguements
# Variables used in the builds. Update for ADVANCED use cases only. Modify in .arg file or via CLI arguments.
ARG OS_DISTRIBUTION
ARG OS_VERSION
ARG K8S_VERSION
Expand All @@ -48,6 +48,11 @@ ARG no_proxy=${NO_PROXY}
ARG PROXY_CERT_PATH

ARG UPDATE_KERNEL=false
ARG ETCD_VERSION="v3.5.13"

# Two node variables
ARG TWO_NODE=false
ARG KINE_VERSION=0.11.4

# UKI Variables
ARG IS_UKI=false
Expand All @@ -57,7 +62,6 @@ ARG UKI_BRING_YOUR_OWN_KEYS=false

ARG CMDLINE="stylus.registration"
ARG BRANDING="Palette eXtended Kubernetes Edge"
ARG ETCD_VERSION="v3.5.13"

# EFI size check
ARG EFI_MAX_SIZE=2048
Expand Down Expand Up @@ -530,7 +534,7 @@ secure-boot-dirs:
RUN chmod 0644 /secure-boot/public-keys
SAVE ARTIFACT --keep-ts /secure-boot AS LOCAL ./secure-boot

# Used to create the provider images. The --K8S_VERSION will be passed in the earthly build
# Used to create the provider images. The --K8S_VERSION will be passed in the earthly build.
provider-image:
FROM --platform=linux/${ARCH} +base-image
# added PROVIDER_K8S_VERSION to fix missing image in ghcr.io/kairos-io/provider-*
Expand Down Expand Up @@ -572,8 +576,30 @@ provider-image:
RUN touch /etc/machine-id \
&& chmod 444 /etc/machine-id

SAVE IMAGE --push $IMAGE_PATH
IF $TWO_NODE
# Install postgresql 16
IF [ "$OS_DISTRIBUTION" = "ubuntu" ] && [ "$ARCH" = "amd64" ]
RUN apt install -y ca-certificates curl && \
install -d /usr/share/postgresql-common/pgdg && \
curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc && \
echo "deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list && \
apt update && \
apt install -y postgresql-16 postgresql-contrib-16 iputils-ping
ELSE IF [ "$OS_DISTRIBUTION" = "opensuse-leap" ] && [ "$ARCH" = "amd64" ]
RUN zypper --non-interactive --quiet addrepo --refresh -p 90 http://download.opensuse.org/repositories/server:database:postgresql/openSUSE_Tumbleweed/ PostgreSQL && \
zypper --gpg-auto-import-keys ref && \
zypper install -y postgresql-16 postgresql-server-16 postgresql-contrib iputils
END

# Install kine
RUN mkdir -p /opt/spectrocloud/bin && \
curl -L https://github.com/k3s-io/kine/releases/download/v${KINE_VERSION}/kine-amd64 | install -m 755 /dev/stdin /opt/spectrocloud/bin/kine

# Ensure psql works ootb for the postgres user
RUN su postgres -c 'echo "export PERL5LIB=/usr/share/perl/5.34:/usr/share/perl5:/usr/lib/x86_64-linux-gnu/perl/5.34" > ~/.bash_profile'
END

SAVE IMAGE --push $IMAGE_PATH

provider-image-rootfs:
FROM --platform=linux/${ARCH} +provider-image
Expand Down Expand Up @@ -647,6 +673,7 @@ base-image:
ARG BASE_K8S_VERSION=$K8S_VERSION-$K8S_DISTRIBUTION_TAG
END

# OS == Ubuntu
IF [ "$OS_DISTRIBUTION" = "ubuntu" ] && [ "$ARCH" = "amd64" ]
IF [ ! -z "$UBUNTU_PRO_KEY" ]
RUN sed -i '/^[[:space:]]*$/d' /etc/os-release && \
Expand Down Expand Up @@ -696,27 +723,27 @@ base-image:
RUN pro detach --assume-yes
END

# IF OS Type is Opensuse
# OS == Opensuse
ELSE IF [ "$OS_DISTRIBUTION" = "opensuse-leap" ] && [ "$ARCH" = "amd64" ]
# Add proxy certificate if present
IF [ ! -z $PROXY_CERT_PATH ]
COPY sc.crt /usr/share/pki/trust/anchors
RUN update-ca-certificates
RUN update-ca-certificates
END
# Enable or Disable Kernel Updates
IF [ "$UPDATE_KERNEL" = "false" ]
RUN zypper al kernel-de*
END

RUN zypper refresh && \
zypper update -y
RUN zypper refresh && zypper update -y

IF [ -e "/usr/bin/dracut" ]
RUN --no-cache kernel=$(ls /lib/modules | tail -n1) && depmod -a "${kernel}"
RUN --no-cache kernel=$(ls /lib/modules | tail -n1) && dracut -f "/boot/initrd-${kernel}" "${kernel}" && ln -sf "initrd-${kernel}" /boot/initrd
END
RUN zypper install -y zstd vim iputils bridge-utils curl ethtool tcpdump
RUN zypper cc && \
IF [ -e "/usr/bin/dracut" ]
RUN --no-cache kernel=$(ls /lib/modules | tail -n1) && depmod -a "${kernel}"
RUN --no-cache kernel=$(ls /lib/modules | tail -n1) && dracut -f "/boot/initrd-${kernel}" "${kernel}" && ln -sf "initrd-${kernel}" /boot/initrd
END

RUN zypper install -y zstd vim iputils bridge-utils curl ethtool tcpdump && \
zypper cc && \
zypper clean
END

Expand All @@ -726,6 +753,7 @@ base-image:
zypper clean
RUN if [ ! -e /usr/bin/apparmor_parser ]; then cp /sbin/apparmor_parser /usr/bin/apparmor_parser; fi
END

IF [ "$ARCH" = "arm64" ]
ARG LUET_REPO=luet-repo-arm
ELSE IF [ "$ARCH" = "amd64" ]
Expand All @@ -738,7 +766,7 @@ base-image:
RUN --no-cache if [ -f spectro-luet-auth.yaml ]; then cat spectro-luet-auth.yaml >> /etc/luet/repos.conf.d/spectro.yaml; fi
RUN --no-cache luet repo update

IF [ "$OS_DISTRIBUTION" = "rhel" ]
IF [ "$OS_DISTRIBUTION" = "rhel" ]
RUN yum install -y openssl
END

Expand All @@ -762,7 +790,7 @@ base-image:
if grep "selinux=1" /etc/cos/bootargs.cfg > /dev/null; then sed -i 's/selinux=1/selinux=0/g' /etc/cos/bootargs.cfg; fi
END

# Used to build the installer image. The installer ISO will be created from this.
# Used to build the installer image. The installer ISO will be created from this.
iso-image:
FROM --platform=linux/${ARCH} +base-image
IF [ "$IS_UKI" = "false" ]
Expand Down
16 changes: 16 additions & 0 deletions hack/Earthfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
VERSION 0.6

ARG OSBUILDER_VERSION=v0.7.11
ARG OSBUILDER_IMAGE=quay.io/kairos/osbuilder-tools:$OSBUILDER_VERSION
ARG ISO_NAME=debug

# replace with your CanvOS provider image
ARG PROVIDER_IMAGE=oci:tylergillson/ubuntu:k3s-1.26.4-v4.0.4-071c2c23

build:
FROM $OSBUILDER_IMAGE
WORKDIR /build
COPY . ./

RUN /entrypoint.sh --name $ISO_NAME --debug build-iso --squash-no-compression --date=false $PROVIDER_IMAGE --output /build/
SAVE ARTIFACT /build/$ISO_NAME.iso kairos.iso AS LOCAL build/$ISO_NAME.iso
19 changes: 19 additions & 0 deletions hack/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Debugging Kairos

If you're facing hard-to-diagnose issues with your custom provider image, you can use the scripts in this directory to obtain verbose Kairos output.

## Steps
1. Use earthly to generate an ISO from your CanvOS provider image:
```
earthly +build --PROVIDER_IMAGE=<your_provider_image> # e.g., oci:tylergillson/ubuntu:k3s-1.26.4-v4.0.4-071c2c23
```
If successful, `build/debug.iso` will be created.

2. Launch a local VM based on the debug ISO using QEMU and pipe all output to a log file:
```
./launch-qemu.sh build/debug.iso | tee out.log
```

3. Boot the VM in `Kairos (manual)` mode. Once booted, create `userdata.yaml` with your desired Kairos config and execute a manual Kairos installation: `kairos-agent --debug manual-install --device auto userdata.yaml`.

4. The VM should eventually reboot itself once the installation completes. Rather than waiting, execute `reboot` to return to the GRUB menu, select `Palette eXtended Kubernetes Edge` and hit `e` to edit it. Add `rd.debug rd.immucore.debug` to the end of the `linux` line, then hit `CTRL+x` to boot with your edits. You should see verbose Kairos debug logs and they will be persisted to `out.log`.
Empty file added hack/build/.keep
Empty file.
25 changes: 25 additions & 0 deletions hack/launch-qemu.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#!/bin/bash

# Screenshot capability:
# https://unix.stackexchange.com/a/476617

if [ ! -e disk.img ]; then
qemu-img create -f qcow2 disk.img 60g
fi

# -nic bridge,br=br0,model=virtio-net-pci \
qemu-system-x86_64 \
-enable-kvm \
-cpu "${CPU:=host}" \
-nographic \
-spice port=9000,addr=127.0.0.1,disable-ticketing=yes \
-m ${MEMORY:=10096} \
-smp ${CORES:=5} \
-monitor unix:/tmp/qemu-monitor.sock,server=on,wait=off \
-serial mon:stdio \
-rtc base=utc,clock=rt \
-chardev socket,path=qga.sock,server=on,wait=off,id=qga0 \
-device virtio-serial \
-device virtserialport,chardev=qga0,name=org.qemu.guest_agent.0 \
-drive if=virtio,media=disk,file=disk.img \
-drive if=ide,media=cdrom,file="${1}"
15 changes: 15 additions & 0 deletions overlay/files/opt/spectrocloud/bin/check-disk-size.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#!/bin/bash

set -e

REQUIRED_FREE_DISK=$1

FREE=$(df -h --output=pcent /var/ | tail -n 1 | tr -d '\% ')

if (( $FREE < $REQUIRED_FREE_DISK )); then
echo "Not enough free disk, required: $1. Free: $FREE"
exit 1
fi

echo "Free disk ok, required: $1. Free: $FREE"
exit 0
42 changes: 42 additions & 0 deletions test/env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# govc vars
export GOVC_USERNAME=<YOUR_NAME>@vsphere.local
export GOVC_PASSWORD=<YOUR_VSPHERE_PASSWORD>
export GOVC_URL=10.10.128.10 # IP address of USDC; edit as needed
export GOVC_INSECURE=true
export GOVC_DATACENTER=Datacenter
export GOVC_DATASTORE=vsanDatastore2
export GOVC_NETWORK=VM-NETWORK
export GOVC_RESOURCE_POOL=<YOUR_RESOURCE_POOL>
export GOVC_FOLDER=<YOUR_FOLDER>

# vSphere vars
export HOST_SUFFIX=<YOUR_NAME>-$(git -C ../stylus describe --always) # required to ensure unique edge host IDs
export ISO_FOLDER=<YOUR_FOLDER> e.g. "ISO/01-tyler"
export STYLUS_ISO="${ISO_FOLDER}/stylus-dev-amd64.iso"
export NIC_NAME=ens160

# networking vars
export PROXY= # set any value to use Spectro's basic proxy
export WIFI_NETWORK=
export WIFI_PASSWORD=

# palette vars
export API_KEY=<YOUR_PALETTE_API_KEY>
export PROJECT_UID=<YOUR_PROJECT_ID>
export EDGE_REGISTRATION_TOKEN=<YOUR_REGISTRATION_TOKEN>
export DOMAIN=dev.spectrocloud.com
export PUBLIC_PACK_REPO_UID=<YOUR_PUBLIC_PACK_REPO_UID> # this varies per Palette tenant, identify via Chrome inspector on Tenant Admin -> Pack Registries page
export CLUSTER_NAME=two-node-<YOUR_NAME>-$(git -C ../stylus describe --always)
export CLUSTER_PROFILE_UID= # if left blank, a cluster profile will be created
export CLUSTER_VIP= # choose an unassigned VIP

# image vars
export EARTHLY_BUILDKIT_CACHE_SIZE_MB=500000
export OCI_REGISTRY=${OCI_REGISTRY:-ttl.sh}
export STYLUS_BRANCH=${STYLUS_BRANCH:-2-node}
export PROVIDER_K3S_BRANCH=${PROVIDER_K3S_BRANCH:-two-node}
export K3S_VERSION="1.28.5"
export PE_VERSION="4.3.0-2node"

# two node vars
export TWO_NODE_BACKEND=postgres
Loading