Compare commits
4 Commits
83defa740f
...
v1.26
Author | SHA1 | Date | |
---|---|---|---|
aa18ef3224 | |||
2945d21c93 | |||
0ea276592c | |||
35be88ec61 |
1
.gitignore
vendored
1
.gitignore
vendored
@ -3,5 +3,6 @@ cache
|
||||
data
|
||||
dist
|
||||
kubeconfig
|
||||
secrets
|
||||
config.yaml
|
||||
.dls_adm_token
|
||||
|
19
kubeconfig
19
kubeconfig
@ -1,19 +0,0 @@
|
||||
apiVersion: v1
|
||||
clusters:
|
||||
- cluster:
|
||||
server: https://172.17.1.100:6443
|
||||
certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNNakNDQVpPZ0F3SUJBZ0lVZFM5bU5PenhscGJBdXVWcWYyQjIydy96MzdVd0NnWUlLb1pJemowRUF3UXcKTXpFUk1BOEdBMVVFQ2hNSWJtOTJhWFF1YVc4eEhqQWNCZ05WQkFNVEZVUnBjbVZyZEdsc0lFeHZZMkZzSUZObApjblpsY2pBZUZ3MHlNekExTVRneE1UQXpNREJhRncweU9EQTFNVFl4TVRBek1EQmFNRE14RVRBUEJnTlZCQW9UCkNHNXZkbWwwTG1sdk1SNHdIQVlEVlFRREV4VkVhWEpsYTNScGJDQk1iMk5oYkNCVFpYSjJaWEl3Z1pzd0VBWUgKS29aSXpqMENBUVlGSzRFRUFDTURnWVlBQkFBOXdac3h0U2l2RUhUQW50aUx4WFFkUmdxR05sempRMGYwelowQwpyc3hmSGF1K0xrQ1JZNDFoN29ZY21XdVArK09FUlNOL3BGUjhNL3lCZ1dRR0JBbDd2Z0JhZEtpZ01xcHMyalhXCmxUTmt1dnJJbzZhMitESWpjTWNITUhyUUpNUFpzSm8vWGRwOWIyaW5yM2U4dnBiUjFEeEwwRDJMcy9WaWFZL2EKWEE1akR0ZHp2YU5DTUVBd0RnWURWUjBQQVFIL0JBUURBZ0VHTUE4R0ExVWRFd0VCL3dRRk1BTUJBZjh3SFFZRApWUjBPQkJZRUZIdUpKVjVwN0EzdEhWWDkrb2dkQ1IxZkVFbFBNQW9HQ0NxR1NNNDlCQU1FQTRHTUFEQ0JpQUpDCkFQZHZlOU9nRjFmTjE5T2VjTXc0WEhSVFBGcmMvVHp6SFA0WmlRQVRKdUlLMS9hVEozK1k4QUd5b3ByNElXbmsKUWZZeWtVVmpFREJIVTFLN1JWU1h3YjdJQWtJQnd5K2FORVd6N0hxZE5QQTRKZXV2M3ZKUGFXdU9vRElERWxoMwora3o0ZjFpUkR5QVFKbXZta2dxRzA1M214RmRZU2VIU0NpQ2hhN242RG5kUTgveDYwODA9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
|
||||
name: localconfig
|
||||
contexts:
|
||||
- context:
|
||||
cluster: localconfig
|
||||
namespace: kube-system
|
||||
user: admin
|
||||
name: localconfig
|
||||
current-context: localconfig
|
||||
kind: Config
|
||||
preferences: {}
|
||||
users:
|
||||
- name: admin
|
||||
user:
|
||||
token: DU3ITMWLQN2TVGVDTWIURJ42S4
|
52
scripts/.cleanup.sh
Executable file
52
scripts/.cleanup.sh
Executable file
@ -0,0 +1,52 @@
|
||||
#!/bin/bash
|
||||
|
||||
stopdls() {
|
||||
if docker ps &>/dev/null | grep -q " $DLS_CTR_NAME$"; then
|
||||
pinfo "Stopping Direktil Local Server..."
|
||||
docker stop $DLS_CTR_NAME
|
||||
fi
|
||||
}
|
||||
|
||||
destroyvms() {
|
||||
for host in ${!hosts[*]}; do
|
||||
if test -f $ctxdir/data/$host/pid ; then
|
||||
pid=$(cat $ctxdir/data/$host/pid)
|
||||
pinfo "Cleaning VM $host with PID $pid..."
|
||||
kill $pid && sleep 1
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
cleanuppaths() {
|
||||
PATHS="data secrets kubeconfig cache dist"
|
||||
cd $ctxdir
|
||||
for path in $PATHS; do
|
||||
if test -e $path; then
|
||||
pinfo "Removing path $path ..."
|
||||
rm -rf $path
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
cleanupnetwork() {
|
||||
if iptables -L |grep -q $QEMU_BR_NAME; then
|
||||
pinfo "Cleaning iptables rules..."
|
||||
iptables -t nat -D POSTROUTING -j MASQUERADE -s $QEMU_BR_IP/$QEMU_BR_MASK \! -o $QEMU_BR_NAME
|
||||
iptables -D FORWARD -o $QEMU_BR_NAME -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
|
||||
iptables -D FORWARD -j ACCEPT -i $QEMU_BR_NAME
|
||||
fi
|
||||
if ip li show $QEMU_BR_NAME ; then
|
||||
pinfo "Cleaning existing interfaces..."
|
||||
ip li set $QEMU_BR_NAME down
|
||||
ip li del $QEMU_BR_NAME
|
||||
fi
|
||||
}
|
||||
|
||||
source $(dirname $0)/.common
|
||||
check_root
|
||||
prereqs
|
||||
stopdls
|
||||
declare -A hosts
|
||||
get_hosts
|
||||
destroyvms
|
||||
cleanuppaths
|
@ -1,11 +1,26 @@
|
||||
#!/bin/bash
|
||||
|
||||
## Vars
|
||||
# Docker container name for dir2config
|
||||
D2C_CTR_NAME=dir2config
|
||||
# Docker container name for direktil local server
|
||||
DLS_CTR_NAME=dls
|
||||
|
||||
# QEMU local bridge name. If you specificy a custom name, you may have to configure qemu bridge helper to allow it
|
||||
QEMU_BR_NAME=virbr0
|
||||
# QEMU VM default disk size
|
||||
QEMU_DISK_SIZE=30G
|
||||
# Allocated CPUs to QEMU VMs
|
||||
QEMU_VM_CPU=4
|
||||
# Allocated Memory to QEMU VMs
|
||||
QEMU_VM_MEM=8096
|
||||
################
|
||||
|
||||
# Token file for dls
|
||||
tknfile=".dls_adm_token"
|
||||
|
||||
## Helper funcs
|
||||
|
||||
## Helper funcs
|
||||
|
||||
pinfo() {
|
||||
echo -e "\e[32m$@\e[39m"
|
||||
@ -42,7 +57,7 @@ check_root() {
|
||||
}
|
||||
|
||||
prereqs() {
|
||||
set -ex
|
||||
# set -ex
|
||||
cd "$(dirname $0)/.."
|
||||
ctxdir="$PWD"
|
||||
}
|
||||
@ -80,11 +95,13 @@ unlock_store() {
|
||||
|
||||
|
||||
get_hosts() {
|
||||
hosts_files=$(basename $ctxdir/hosts/*.yaml|sed 's/.yaml//')
|
||||
cd $ctxdir/hosts
|
||||
hosts_files=$(ls *.yaml|sed 's/.yaml//')
|
||||
for h in ${hosts_files}; do
|
||||
ip=$(grep ip: $ctxdir/hosts/${h}.yaml|awk '{print $2}')
|
||||
hosts[$h]="$ip"
|
||||
done
|
||||
cd - &>/dev/null
|
||||
}
|
||||
|
||||
get_parts() {
|
||||
@ -100,6 +117,15 @@ get_parts() {
|
||||
done
|
||||
}
|
||||
|
||||
destroyvms() {
|
||||
for host in ${!hosts[*]}; do
|
||||
host=$1
|
||||
if test -f $ctxdir/data/$host/pid ; then
|
||||
pinfo "Detected a pid file, killing process in case VM was already started"
|
||||
kill $(cat $ctxdir/data/$host/pid) && sleep 1
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
create_kubeconfig() {
|
||||
if test -f $ctxdir/kubeconfig; then
|
||||
|
@ -1,7 +1,5 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
D2C_CTR_NAME=dir2config
|
||||
DLS_CTR_NAME=dls
|
||||
# Admin token to unlock the DLS store
|
||||
DLS_UNLOCK_TOKEN=changeme
|
||||
#
|
||||
@ -24,7 +22,7 @@ dir2config() {
|
||||
}
|
||||
|
||||
start_store() {
|
||||
if docker ps|grep " $DLS_CTR_NAME$" ; then
|
||||
if docker ps|grep " $DLS_CTR_NAME$" &>/dev/null; then
|
||||
pinfo "Container $DLS_CTR_NAME seems already running"
|
||||
return
|
||||
fi
|
||||
|
@ -1,18 +1,9 @@
|
||||
#! /bin/sh
|
||||
#! /bin/bash
|
||||
#
|
||||
# This collection of scripts aims to install a NOVIT cluster easily, with help of QEMU
|
||||
#
|
||||
#
|
||||
# QEMU local bridge name. If you specificy a custom name, you may have to configure qemu bridge helper to allow it
|
||||
QEMU_BR_NAME=virbr0
|
||||
#
|
||||
# QEMU VM default disk size
|
||||
QEMU_DISK_SIZE=30G
|
||||
# Allocated CPUs to QEMU VMs
|
||||
QEMU_VM_CPU=4
|
||||
# Allocated Memory to QEMU VMs
|
||||
QEMU_VM_MEM=8096
|
||||
################
|
||||
|
||||
|
||||
## QEMU functions
|
||||
@ -35,9 +26,15 @@ setup_network_qemu() {
|
||||
pinfo "Using detected gateway IP $QEMU_BR_IP for bridge $QEMU_BR_NAME"
|
||||
if ! ip a show dev $QEMU_BR_NAME | grep $QEMU_BR_IP ; then
|
||||
ip a add $QEMU_BR_IP/$QEMU_BR_MASK dev $QEMU_BR_NAME
|
||||
sudo iptables -t nat -I POSTROUTING -j MASQUERADE -s $QEMU_BR_IP/$QEMU_BR_MASK \! -o $QEMU_BR_NAME
|
||||
sudo iptables -I FORWARD -o $QEMU_BR_NAME -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
|
||||
sudo iptables -I FORWARD -j ACCEPT -i $QEMU_BR_NAME
|
||||
iptables -t nat -I POSTROUTING -j MASQUERADE -s $QEMU_BR_IP/$QEMU_BR_MASK \! -o $QEMU_BR_NAME
|
||||
iptables -I FORWARD -o $QEMU_BR_NAME -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
|
||||
iptables -I FORWARD -j ACCEPT -i $QEMU_BR_NAME
|
||||
fi
|
||||
if ! test -d /etc/qemu; then
|
||||
mkdir -p /etc/qemu
|
||||
fi
|
||||
if ! grep -q "allow $QEMU_BR_NAME" /etc/qemu/bridge.conf; then
|
||||
echo "allow $QEMU_BR_NAME" >> /etc/qemu/bridge.conf
|
||||
fi
|
||||
}
|
||||
run_qemu() {
|
||||
@ -45,10 +42,6 @@ run_qemu() {
|
||||
for host in ${!hosts[*]}; do
|
||||
ip route show |grep "${hosts[$host]} dev $QEMU_BR_NAME" ||\
|
||||
ip route add ${hosts[$host]} dev $QEMU_BR_NAME
|
||||
if test -f $ctxdir/data/$host/pid ; then
|
||||
pinfo "Detected a pid file, killing process in case VM was already started"
|
||||
kill $(cat $ctxdir/data/$host/pid) && sleep 1
|
||||
fi
|
||||
pinfo "Starting host $host with ip ${hosts[$host]}"
|
||||
qemu-system-x86_64 -enable-kvm -smp $QEMU_VM_CPU -m $QEMU_VM_MEM \
|
||||
-nic bridge,br=$QEMU_BR_NAME,mac=42:42:42:42:42:0${id} \
|
||||
@ -71,6 +64,7 @@ declare -A hosts
|
||||
setup_network_qemu
|
||||
get_hosts
|
||||
get_parts
|
||||
destroyvms
|
||||
run_qemu
|
||||
#clean
|
||||
|
||||
|
Reference in New Issue
Block a user