mirror of
https://github.com/openoms/bitcoin-tutorials.git
synced 2025-12-19 21:04:20 +01:00
add devenv scripts for packer and coder
This commit is contained in:
144
k8s/devenv.coder.sh
Normal file
144
k8s/devenv.coder.sh
Normal file
@@ -0,0 +1,144 @@
|
||||
#!/bin/bash
|
||||
|
||||
function help() {
|
||||
echo "
|
||||
Script to set up a local enviroment to run https://github.com/GaloyMoney/charts/tree/main/dev
|
||||
Usage:
|
||||
devenv.coder.sh [on|off|clone_all_galoy|start_dev_charts]"
|
||||
exit 1
|
||||
}
|
||||
|
||||
USER=k3d
|
||||
|
||||
function clone_all_galoy() {
|
||||
mkdir GaloyMoney && cd GaloyMoney
|
||||
# clone all repos
|
||||
curl -s https://api.github.com/users/GaloyMoney/repos | grep \"clone_url\" | awk '{print $2}' | sed -e 's/"//g' -e 's/,//g' | xargs -n1 git clone
|
||||
}
|
||||
|
||||
function setup_devenv_k3d() {
|
||||
# dedicated user
|
||||
sudo adduser --disabled-password --gecos "" coder
|
||||
sudo usermod -aG sudo coder
|
||||
|
||||
# tools
|
||||
sudo apt update
|
||||
sudo apt install -y git tmux gnupg unzip curl
|
||||
|
||||
# coder
|
||||
#sudo -u $USER bash -c 'curl -L https://coder.com/install.sh | sh'
|
||||
sudo -u $USER bash -c 'curl -fsSL https://code-server.dev/install.sh | sh'
|
||||
|
||||
|
||||
# fzf
|
||||
sudo -u $USER sh -c 'git clone --depth 1 https://github.com/junegunn/fzf.git /home/coder/.fzf; /home/coder/.fzf/install --all'
|
||||
|
||||
cpu=$(dpkg --print-architecture)
|
||||
|
||||
# kubectl
|
||||
if ! kubectl version; then
|
||||
kubectl_version="1.24.1"
|
||||
curl -LO https://storage.googleapis.com/kubernetes-release/release/v${kubectl_version}/bin/linux/${cpu}/kubectl
|
||||
chmod +x ./kubectl
|
||||
sudo mv ./kubectl /usr/local/bin
|
||||
fi
|
||||
sudo -u $USER mkdir .kube
|
||||
sudo -u $USER touch home/coder/.kube/config
|
||||
|
||||
# terraform
|
||||
if ! terraform version; then
|
||||
if [ "${cpu}" = amd64 ]; then
|
||||
if ! sudo apt install terraform; then
|
||||
sudo apt-get install -y software-properties-common
|
||||
curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
|
||||
sudo apt-add-repository "deb [arch=$(dpkg --print-architecture)] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y terraform
|
||||
fi
|
||||
elif [ "${cpu}" = arm64 ]; then
|
||||
# RPI
|
||||
wget -O terraform_1.2.4_linux_arm64.zip https://releases.hashicorp.com/terraform/1.2.4/terraform_1.2.4_linux_arm64.zip || exit 1
|
||||
wget https://releases.hashicorp.com/terraform/1.2.4/terraform_1.2.4_SHA256SUMS
|
||||
sha256sum -c terraform_1.2.4_SHA256SUMS --ignore-missing || exit 1
|
||||
wget https://releases.hashicorp.com/terraform/1.2.4/terraform_1.2.4_SHA256SUMS.sig || exit 1
|
||||
gpg --verify terraform_1.2.4_SHA256SUMS.sig || exit 1
|
||||
unzip terraform_1.2.4_linux_arm64.zip
|
||||
sudo mv ./terraform /usr/local/bin/
|
||||
fi
|
||||
fi
|
||||
|
||||
# docker
|
||||
if ! docker version; then
|
||||
# look for raspiblitz install script
|
||||
if [ -f /home/admin/config.scripts/blitz.docker.sh ]; then
|
||||
/home/admin/config.scripts/blitz.docker.sh on
|
||||
else
|
||||
# https://docs.docker.com/desktop/linux/install/debian/
|
||||
curl -fsSL https://get.docker.com -o get-docker.sh
|
||||
sh get-docker.sh
|
||||
fi
|
||||
fi
|
||||
sudo groupadd docker
|
||||
sudo usermod -aG docker coder
|
||||
|
||||
# k3d
|
||||
if ! k3d version; then
|
||||
wget -q -O - https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash
|
||||
fi
|
||||
|
||||
# KUBE_CONFIG_PATH
|
||||
echo 'export KUBE_CONFIG_PATH=~/.kube/config' \
|
||||
| sudo -u $USER tee -a /home/coder/.bashrc
|
||||
# aliases
|
||||
echo "\
|
||||
alias egrep='egrep --color=auto'
|
||||
alias fgrep='fgrep --color=auto'
|
||||
alias g='git'
|
||||
alias grep='grep --color=auto'
|
||||
alias gs='git status'
|
||||
alias k='kubectl'
|
||||
alias l='ls -CF'
|
||||
alias la='ls -A'
|
||||
alias ll='ls -alF'
|
||||
alias ls='ls --color=auto'
|
||||
alias tf='terraform'" \
|
||||
| sudo -u $USER tee -a /home/coder/.bash_aliases
|
||||
|
||||
if [ "${cpu}" = arm64 ]; then
|
||||
# https://code.pinske.eu/k3d-raspi.html
|
||||
if ! grep "cgroup_memory=1 cgroup_enable=memory" < /boot/cmdline.txt; then
|
||||
sudo sed -i s/$/ cgroup_memory=1 cgroup_enable=memory/ /boot/cmdline.txt
|
||||
echo "# Will need to reboot to create a cluster successfully"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
function start_dev_charts() {
|
||||
# starting the charts
|
||||
cd /home/coder/
|
||||
sudo -u $USER git clone https://github.com/GaloyMoney/charts
|
||||
cd /home/coder/charts/dev
|
||||
|
||||
sudo -u $USER direnv allow
|
||||
sudo -u $USER make create-cluster
|
||||
sudo -u $USER make init
|
||||
sudo -u $USER bash -c 'export KUBE_CONFIG_PATH=~/.kube/config; make deploy-services'
|
||||
sudo -u $USER bash -c 'export KUBE_CONFIG_PATH=~/.kube/config; make deploy'
|
||||
}
|
||||
|
||||
function delete_cluster() {
|
||||
## REMOVE
|
||||
cd /home/coder/charts/dev
|
||||
sudo -u $USER make delete-cluster
|
||||
# k3d cluster delete && rm terraform.tfstate
|
||||
}
|
||||
|
||||
if [ "$1" = "on" ]; then
|
||||
setup_devenv_k3d
|
||||
elif [ "$1" = "start_dev_charts" ]; then
|
||||
start_dev_charts
|
||||
elif [ "$1" = "off" ]; then
|
||||
delete_cluster
|
||||
else
|
||||
help
|
||||
fi
|
||||
79
packer/devenv.packer.sh
Normal file
79
packer/devenv.packer.sh
Normal file
@@ -0,0 +1,79 @@
|
||||
#!/bin/bash
|
||||
|
||||
function help() {
|
||||
echo "
|
||||
Script to set up a local enviroment to run packer
|
||||
Usage:
|
||||
devenv.packer.sh [on|off]"
|
||||
exit 1
|
||||
}
|
||||
|
||||
USER="packer"
|
||||
|
||||
function setup_devenv_packer() {
|
||||
# dedicated user
|
||||
sudo adduser --disabled-password --gecos "" ${USER}
|
||||
#sudo usermod -aG sudo packer
|
||||
|
||||
# tools
|
||||
sudo apt update
|
||||
sudo apt install -y git tmux gnupg unzip curl
|
||||
|
||||
# fzf
|
||||
sudo -u ${USER} sh -c 'git clone --depth 1 https://github.com/junegunn/fzf.git /home/${USER}/.fzf; /home/${USER}/.fzf/install --all'
|
||||
|
||||
# docker
|
||||
if ! docker version; then
|
||||
# look for raspiblitz install script
|
||||
if [ -f /home/admin/config.scripts/blitz.docker.sh ]; then
|
||||
/home/admin/config.scripts/blitz.docker.sh on
|
||||
else
|
||||
# https://docs.docker.com/desktop/linux/install/debian/
|
||||
curl -fsSL https://get.docker.com -o get-docker.sh
|
||||
sh get-docker.sh
|
||||
fi
|
||||
fi
|
||||
sudo groupadd docker
|
||||
sudo usermod -aG docker packer
|
||||
|
||||
# Install packer
|
||||
if ! packer version; then
|
||||
echo -e "\nInstalling packer..."
|
||||
curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
|
||||
sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
|
||||
sudo apt-get update -y && sudo apt-get install packer -y
|
||||
fi
|
||||
|
||||
export PATH=$PATH:/usr/local/go/bin
|
||||
if ! go version; then
|
||||
echo -e "Installing Go..."
|
||||
wget --progress=bar:force https://go.dev/dl/go1.18.4.linux-amd64.tar.gz
|
||||
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.18.4.linux-amd64.tar.gz
|
||||
sudo rm -rf go1.18.4.linux-amd64.tar.gz
|
||||
fi
|
||||
|
||||
# Install Packer Arm Plugin
|
||||
echo -e "\nInstalling Packer Arm Plugin..."
|
||||
cd /home/${USER}
|
||||
sudo -u ${USER} git clone https://github.com/mkaczanowski/packer-builder-arm
|
||||
cd packer-builder-arm
|
||||
sudo -u ${USER} /usr/local/go/bin/go mod download
|
||||
sudo -u ${USER} /usr/local/go/bin/go build
|
||||
|
||||
echo "\
|
||||
alias egrep='egrep --color=auto'
|
||||
alias fgrep='fgrep --color=auto'
|
||||
alias g='git'
|
||||
alias grep='grep --color=auto'
|
||||
alias gs='git status'
|
||||
" | sudo -u ${USER} tee -a /home/${USER}/.bash_aliases
|
||||
}
|
||||
|
||||
|
||||
if [ "$1" = "on" ]; then
|
||||
setup_devenv_packer
|
||||
elif [ "$1" = "off" ]; then
|
||||
sudo userdel -rf packer
|
||||
else
|
||||
help
|
||||
fi
|
||||
Reference in New Issue
Block a user