From 42138d88bfbc55fcf1985edc2848c9271d721c3c Mon Sep 17 00:00:00 2001 From: Andrey Tuzhilin Date: Mon, 15 Mar 2021 14:15:37 +0300 Subject: [PATCH] test: vagrant for integration tests --- .circleci/Makefile | 51 ++++++++++++++++++++++++++++++++++++++++++++++ .gitignore | 3 +++ Vagrantfile | 19 +++++++++++++++++ 3 files changed, 73 insertions(+) create mode 100644 .circleci/Makefile create mode 100644 Vagrantfile diff --git a/.circleci/Makefile b/.circleci/Makefile new file mode 100644 index 00000000..34383640 --- /dev/null +++ b/.circleci/Makefile @@ -0,0 +1,51 @@ +HELM_VERSION ?= v3.5.3 +KUSTOMIZE_VERSION ?= v3.8.8 +K8S_VERSION ?= v1.13.12 +MINIKUBE_VERSION ?= v0.30.0 + +# --- +CHANGE_MINIKUBE_NONE_USER ?= true +MINIKUBE_WANTUPDATENOTIFICATION ?= false +MINIKUBE_WANTREPORTERRORPROMPT ?= false + +tmp := $(shell mktemp -d) +HELM_FILENAME := helm-${HELM_VERSION}-linux-amd64.tar.gz +KUSTOMIZE_FILENAME := kustomize_${KUSTOMIZE_VERSION}_linux_amd64.tar.gz + + +all: helm kustomize minikube/destroy minikube + +helm: + curl -sSLo $(tmp)/${HELM_FILENAME} "https://get.helm.sh/${HELM_FILENAME}" + tar zxf $(tmp)/${HELM_FILENAME} --directory ${tmp} linux-amd64/helm + chmod +x ${tmp}/linux-amd64/helm + sudo mv ${tmp}/linux-amd64/helm /usr/local/bin/ +.PHONY: helm + +kustomize: + curl -sSLo $(tmp)/${KUSTOMIZE_FILENAME} "https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize%2F${KUSTOMIZE_VERSION}/${KUSTOMIZE_FILENAME}" + tar zxf $(tmp)/${KUSTOMIZE_FILENAME} --directory ${tmp} kustomize + chmod +x ${tmp}/kustomize + sudo mv ${tmp}/kustomize /usr/local/bin/ +.PHONY: kustomize + +minikube/destroy: + sudo -E minikube delete || true + sudo -E rm -rf /etc/kubernetes || true + sudo -E rm -rf $$HOME/.minikube/* || true +.PHONY: minikube/destroy +.EXPORT_ALL_VARIABLES: minikube/destroy + +minikube: + curl -sSLo ${tmp}/kubectl https://storage.googleapis.com/kubernetes-release/release/${K8S_VERSION}/bin/linux/amd64/kubectl + chmod +x ${tmp}/kubectl && sudo mv ${tmp}/kubectl /usr/local/bin/ + curl -sSLo ${tmp}/minikube https://storage.googleapis.com/minikube/releases/${MINIKUBE_VERSION}/minikube-linux-amd64 + chmod +x ${tmp}/minikube && sudo mv ${tmp}/minikube /usr/local/bin/ + sudo -E minikube delete || true + sudo -E rm -rf /etc/kubernetes || true + sudo -E rm -rf $$HOME/.minikube/* || true + sudo -E minikube start --vm-driver=none --kubernetes-version=${K8S_VERSION} + sudo -E minikube update-context + kubectl wait node/minikube --for=condition=Ready +.PHONY: minikube +.EXPORT_ALL_VARIABLES: minikube diff --git a/.gitignore b/.gitignore index 583077f4..95c56475 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,8 @@ dist/ .idea/ helmfile helmfile.lock +diff-yamls test/integration/tmp vendor/ +*.log +.vagrant/ diff --git a/Vagrantfile b/Vagrantfile new file mode 100644 index 00000000..69368c69 --- /dev/null +++ b/Vagrantfile @@ -0,0 +1,19 @@ +Vagrant.configure("2") do |config| + config.vm.box = "ubuntu/xenial64" + config.vm.hostname = "minikube.box" + config.vm.provision :shell, privileged: false, + inline: <<-EOS + set -e + sudo apt-get update + sudo apt-get install -y make docker.io=18.09.7-* + sudo systemctl start docker + sudo usermod -G docker $USER + cd /vagrant/.circleci + make all + EOS + + config.vm.provider "virtualbox" do |v| + v.memory = 2048 + v.cpus = 2 + end +end