#!/bin/bash

all_services=(
    coredns
    local-path-provisioner
    metrics-server
    traefik
)

export NUM_SERVERS=2
export NUM_AGENTS=0
export WAIT_SERVICES="${all_services[@]}"
export SERVER_1_ARGS="--cluster-init"

server-post-hook() {
  if [ $1 -eq 1 ]; then
    local url=$(cat $TEST_DIR/servers/1/metadata/url)
    export SERVER_ARGS="${SERVER_ARGS} --server $url"
  fi
}
export -f server-post-hook

export -f server-post-hook
start-test() {
  echo "Cluster is up"
}
export -f start-test

# --- create a basic cluster to test joining managed etcd
LABEL="ETCD-JOIN-BASIC" SERVER_ARGS="" run-test

# --- create a basic cluster to test joining a managed etcd cluster with --agent-token set
LABEL="ETCD-JOIN-AGENTTOKEN" SERVER_ARGS="--agent-token ${RANDOM}${RANDOM}${RANDOM}" run-test

# --- test joining a managed etcd cluster with incompatible configuration
test-post-hook() {
  if [[ $1 -eq 0 ]]; then
    return
  fi
  grep -sqF 'critical configuration value mismatch' $TEST_DIR/servers/2/logs/system.log
}
export -f test-post-hook
LABEL="ETCD-JOIN-MISMATCH" SERVER_2_ARGS="--cluster-cidr 10.0.0.0/16" run-test

cleanup-test-env
