Browse Source
CI: Use Kubevirt VM to run Molecule and Vagrant jobs
CI: Use Kubevirt VM to run Molecule and Vagrant jobs
Cherry-picked-by: Max Gautier <mg@max.gautier.name>pull/11516/head
ant31
5 months ago
committed by
Max Gautier
Failed to extract signature
10 changed files with 173 additions and 31 deletions
Split View
Diff Options
-
2.gitlab-ci.yml
-
42.gitlab-ci/molecule.yml
-
2.gitlab-ci/terraform.yml
-
22.gitlab-ci/vagrant.yml
-
4Vagrantfile
-
5pipeline.Dockerfile
-
3tests/Makefile
-
1tests/files/vagrant_ubuntu20-flannel.rb
-
1tests/files/vagrant_ubuntu20-flannel.yml
-
122tests/scripts/vagrant-install.sh
@ -1,3 +1,4 @@ |
|||
--- |
|||
# Kubespray settings |
|||
kube_network_plugin: flannel |
|||
ansible_ssh_private_key: .vagrant.d/insecure_private_key |
@ -0,0 +1,122 @@ |
|||
#!/bin/bash |
|||
|
|||
# install_vagrant() { |
|||
# sudo apt install vagrant-libvirt vagrant -y |
|||
# sudo vagrant plugin install vagrant-libvirt |
|||
# } |
|||
|
|||
# prep(){ |
|||
# sudo apt-get update -y |
|||
# sudo apt-get install ca-certificates curl libvirt-daemon-system\ |
|||
# libvirt-clients qemu-utils qemu-kvm htop atop -y |
|||
|
|||
# sudo install -m 0755 -d /etc/apt/keyrings |
|||
# } |
|||
# install_docker() { |
|||
# VERSION_STRING=5:26.1.0-1~ubuntu.24.04~noble |
|||
# sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc |
|||
# sudo chmod a+r /etc/apt/keyrings/docker.asc |
|||
|
|||
# # Add the repository to Apt sources: |
|||
# echo \ |
|||
# "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ |
|||
# $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ |
|||
# sudo tee /etc/apt/sources.list.d/docker.list > /dev/null |
|||
# sudo apt-get update -y |
|||
|
|||
# sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y |
|||
# } |
|||
# install_docker_auto () { |
|||
# curl -fsSL https://get.docker.com -o get-docker.sh |
|||
# sudo sh ./get-docker.sh --dry-run |
|||
# } |
|||
|
|||
|
|||
|
|||
VAGRANT_VERSION=2.4.1 |
|||
VAGRANT_DEFAULT_PROVIDER=libvirt |
|||
VAGRANT_ANSIBLE_TAGS=facts |
|||
LANG=C.UTF-8 |
|||
DEBIAN_FRONTEND=noninteractive |
|||
PYTHONDONTWRITEBYTECODE=1 |
|||
KUBE_VERSION=1.29.5 |
|||
pipeline_install() { |
|||
cp /etc/apt/sources.list /etc/apt/sources.list."$(date +"%F")" |
|||
sed -i -e '/^# deb-src.*universe$/s/# //g' /etc/apt/sources.list |
|||
sed -i 's/^Types: deb$/Types: deb deb-src/' /etc/apt/sources.list.d/ubuntu.sources |
|||
|
|||
apt update |
|||
# libssl-dev \ |
|||
# python3-dev \ |
|||
# # jq \ |
|||
# moreutils \ |
|||
# libvirt-dev \ |
|||
# # rsync \ |
|||
# git \ |
|||
# # htop \ |
|||
# gpg \ |
|||
# atop |
|||
|
|||
# gnupg2 \ |
|||
# software-properties-common |
|||
# |
|||
apt install --no-install-recommends -y \ |
|||
git \ |
|||
make \ |
|||
python3-pip \ |
|||
sshpass \ |
|||
apt-transport-https \ |
|||
openssh-client \ |
|||
ca-certificates \ |
|||
curl \ |
|||
libfuse2 \ |
|||
unzip \ |
|||
qemu-utils \ |
|||
libvirt-daemon-system \ |
|||
libvirt-clients \ |
|||
qemu-kvm \ |
|||
ebtables libguestfs-tools \ |
|||
ruby-fog-libvirt \ |
|||
libvirt-dev \ |
|||
gcc \ |
|||
build-essential \ |
|||
ruby-libvirt \ |
|||
libxslt-dev libxml2-dev zlib1g-dev \ |
|||
python3-venv python3-full \ |
|||
dnsmasq |
|||
|
|||
apt-get build-dep -y ruby-libvirt ruby-dev |
|||
### VAGRANT ### |
|||
# apt-get install -y unzip |
|||
curl -LO https://releases.hashicorp.com/vagrant/${VAGRANT_VERSION}/vagrant_${VAGRANT_VERSION}_linux_amd64.zip |
|||
unzip vagrant_${VAGRANT_VERSION}_linux_amd64.zip |
|||
mv vagrant /usr/local/bin/vagrant |
|||
chmod a+x /usr/local/bin/vagrant |
|||
# ls -la /usr/local/bin/vagrant |
|||
/usr/local/bin/vagrant plugin install vagrant-libvirt |
|||
usermod -aG kvm kubespray |
|||
usermod -aG libvirt kubespray |
|||
|
|||
### DOCKER ### |
|||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - |
|||
add-apt-repository -y "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" |
|||
apt update |
|||
apt install --no-install-recommends -y docker-ce |
|||
apt autoremove -y --purge && apt clean && rm -rf /var/lib/apt/lists/* /var/log/* |
|||
|
|||
### KUBECTL ### |
|||
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" |
|||
mv kubectl /usr/local/bin/kubectl |
|||
chmod a+x /usr/local/bin/kubectl |
|||
systemctl restart libvirtd |
|||
# Install Vagrant |
|||
# apt update -y |
|||
# echo apt-get install -y unzip libfuse2 vagrant vagrant-libvirt |
|||
# apt --fix-broken install -y |
|||
# dpkg --configure -a -y |
|||
|
|||
|
|||
} |
|||
# wrapped up in a function so that we have some protection against only getting |
|||
# half the file during "curl | sh" |
|||
pipeline_install |
Write
Preview
Loading…
Cancel
Save