Vagrant.configure(2) do |config|
    config.vm.box = "hashicorp/bionic64"
    # config.vm.network "forwarded_port", guest: 80, host: 80
    config.vm.define "apommierS" do |control|
        control.vm.hostname = "apommierS"
        control.vm.network "private_network", ip: "192.168.56.110"
        control.vm.provider "virtualbox" do |v|
            v.name = "apommierS"
            v.memory = "2048"
            v.cpus = 2
        end
        control.vm.provision "shell", path: "./scripts/k3s-master.sh"
        # Deploy Kubernetes manifests
        control.vm.provision "shell", inline: <<-SHELL
            echo "Waiting for k3s to be ready..."

            echo "Setting KUBECONFIG..."
            export KUBECONFIG=/etc/rancher/k3s/k3s.yaml

            echo "Applying Kubernetes deployments..."
            kubectl apply -f /vagrant/confs/app1.yaml
            kubectl apply -f /vagrant/confs/app2.yaml
            kubectl apply -f /vagrant/confs/app3.yaml
            kubectl apply -f /vagrant/confs/ingress.yaml
        SHELL
    end
end