test: vagrant for integration tests
This commit is contained in:
parent
2ef09d45ee
commit
42138d88bf
|
|
@ -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
|
||||||
|
|
@ -2,5 +2,8 @@ dist/
|
||||||
.idea/
|
.idea/
|
||||||
helmfile
|
helmfile
|
||||||
helmfile.lock
|
helmfile.lock
|
||||||
|
diff-yamls
|
||||||
test/integration/tmp
|
test/integration/tmp
|
||||||
vendor/
|
vendor/
|
||||||
|
*.log
|
||||||
|
.vagrant/
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
Loading…
Reference in New Issue