sort of work but not app3

This commit is contained in:
apommier 2025-02-19 19:47:38 +01:00
parent c9d7b397c2
commit d5cbe8deb0
8 changed files with 153 additions and 21 deletions

31
p2/Vagrantfile vendored
View File

@ -1,5 +1,6 @@
Vagrant.configure(2) do |config| Vagrant.configure(2) do |config|
config.vm.box = "hashicorp/bionic64" config.vm.box = "hashicorp/bionic64"
config.vm.network "forwarded_port", guest: 80, host: 80
config.vm.define "apommierS" do |control| config.vm.define "apommierS" do |control|
control.vm.hostname = "apommierS" control.vm.hostname = "apommierS"
control.vm.network "private_network", ip: "192.168.56.110" control.vm.network "private_network", ip: "192.168.56.110"
@ -9,26 +10,18 @@ Vagrant.configure(2) do |config|
v.cpus = 2 v.cpus = 2
end end
control.vm.provision "shell", path: "./scripts/k3s-master.sh" control.vm.provision "shell", path: "./scripts/k3s-master.sh"
end # Deploy Kubernetes manifests
control.vm.provision "shell", inline: <<-SHELL
echo "Waiting for k3s to be ready..."
# config.vm.provision "shell", inline: "" echo "Setting KUBECONFIG..."
# control.vm.provision "shell", path: REDACTED export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
# end
config.vm.define "apommierSW" do |control| echo "Applying Kubernetes deployments..."
control.vm.hostname = "apommierSW" kubectl apply -f /vagrant/confs/app1.yaml
control.vm.network "private_network", ip: "192.168.56.111" kubectl apply -f /vagrant/confs/app2.yaml
control.vm.provider "virtualbox" do |v| kubectl apply -f /vagrant/confs/app3.yaml
v.name = "apommierSW" kubectl apply -f /vagrant/confs/ingress.yaml
v.memory = "2048" SHELL
v.cpus = 2
end end
control.vm.provision "shell", path: "./scripts/k3s-worker.sh"
end
# config.vm.provision "shell", inline: <<-SHELL
# [..]
# SHELL
# control.vm.provision "shell", path: REDACTED
# end
end end

32
p2/confs/app1.yaml Normal file
View File

@ -0,0 +1,32 @@
# app1.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: app1
spec:
replicas: 1
selector:
matchLabels:
app: app1
template:
metadata:
labels:
app: app1
spec:
containers:
- name: app1
image: containous/whoami
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: app1
spec:
selector:
app: app1
ports:
- protocol: TCP
port: 80
targetPort: 80

32
p2/confs/app2.yaml Normal file
View File

@ -0,0 +1,32 @@
# app2.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: app2
spec:
replicas: 3
selector:
matchLabels:
app: app2
template:
metadata:
labels:
app: app2
spec:
containers:
- name: app2
image: containous/whoami
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: app2
spec:
selector:
app: app2
ports:
- protocol: TCP
port: 80
targetPort: 80

32
p2/confs/app3.yaml Normal file
View File

@ -0,0 +1,32 @@
# app3.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: app3
spec:
replicas: 1
selector:
matchLabels:
app: app3
template:
metadata:
labels:
app: app3
spec:
containers:
- name: app3
image: containous/whoami
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: app3
spec:
selector:
app: app3
ports:
- protocol: TCP
port: 80
targetPort: 80

View File

32
p2/confs/ingress.yaml Normal file
View File

@ -0,0 +1,32 @@
# ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: app-ingress
spec:
defaultBackend:
service:
name: app3
port:
number: 80
rules:
- host: app1.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: app1
port:
number: 80
- host: app2.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: app2
port:
number: 80

0
p2/scripts/deploy.sh Normal file
View File

11
p2/scripts/k3s-master.sh Normal file
View File

@ -0,0 +1,11 @@
#!/bin/bash
NODE_IP="192.168.56.110"
# Install K3s on the master node
curl -sfL https://get.k3s.io | sh -s - --node-ip=$NODE_IP
# Make sure kubectl is set up for the vagrant user
sudo mkdir -p /home/vagrant/.kube
sudo cp /etc/rancher/k3s/k3s.yaml /home/vagrant/.kube/config
sudo chown -R vagrant:vagrant /home/vagrant/.kube/config