Compare commits
4 Commits
0997a2f864
...
319c7b2a6f
| Author | SHA1 | Date | |
|---|---|---|---|
| 319c7b2a6f | |||
| 842c113af4 | |||
| c341b3283a | |||
| 25a0d4882f |
@ -8,3 +8,4 @@
|
||||
[all:vars]
|
||||
ansible_user=ansible
|
||||
ansible_ssh_private_key_file=../terraform/.local/.ssh/id_rsa
|
||||
ansible_python_interpreter=/usr/bin/python3
|
||||
|
||||
@ -123,9 +123,7 @@
|
||||
mode: "0755"
|
||||
|
||||
- name: Download Kubernetes GPG key securely
|
||||
ansible.builtin.shell: |
|
||||
set -o pipefail
|
||||
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.31/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
|
||||
ansible.builtin.shell: curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.31/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
|
||||
|
||||
- name: Add Kubernetes repository
|
||||
ansible.builtin.apt_repository:
|
||||
@ -139,7 +137,7 @@
|
||||
- kubeadm
|
||||
- kubectl
|
||||
state: present
|
||||
update_cache: true
|
||||
update_cache: yes
|
||||
|
||||
- name: Hold kubelet, kubeadm, kubectl packages
|
||||
ansible.builtin.command:
|
||||
@ -213,6 +211,8 @@
|
||||
- name: Initialize Kubernetes control plane
|
||||
ansible.builtin.command:
|
||||
cmd: kubeadm init --pod-network-cidr=10.244.0.0/16
|
||||
creates: /tmp/kubeadm_output
|
||||
register: kubeadm_init_output
|
||||
become: true
|
||||
changed_when: false
|
||||
|
||||
@ -223,15 +223,17 @@
|
||||
owner: ansible
|
||||
mode: "0755"
|
||||
|
||||
- name: Generate join command
|
||||
ansible.builtin.command: kubeadm token create --print-join-command
|
||||
register: join_command
|
||||
|
||||
- name: Copy join command to local file
|
||||
ansible.builtin.copy:
|
||||
content: '"{{ join_command.stdout_lines[0] }}"'
|
||||
dest: '"/tmp/join-command"'
|
||||
- name: Store Kubernetes initialization output to file
|
||||
copy:
|
||||
content: "{{ kubeadm_init_output.stdout }}"
|
||||
dest: /tmp/kubeadm_output
|
||||
become: true
|
||||
delegate_to: localhost
|
||||
|
||||
- name: Generate the Join Command
|
||||
ansible.builtin.shell: cat /tmp/kubeadm_output | tail -n 2 | sed ':a;N;$!ba;s/\\\n\s*/ /g' > /tmp/join-command
|
||||
delegate_to: localhost
|
||||
|
||||
- name: Set permissions for the Join Executable
|
||||
ansible.builtin.file:
|
||||
path: /tmp/join-command
|
||||
|
||||
@ -11,6 +11,10 @@
|
||||
state: present
|
||||
update_cache: true
|
||||
|
||||
- name: Set a hostname
|
||||
ansible.builtin.hostname:
|
||||
name: worker-{{ hostvars[inventory_hostname]['ansible_default_ipv4']['address'] }}
|
||||
|
||||
- name: Install Docker
|
||||
ansible.builtin.apt:
|
||||
name: docker.io
|
||||
|
||||
@ -10,6 +10,10 @@ terraform {
|
||||
source = "hashicorp/template"
|
||||
version = "2.2.0"
|
||||
}
|
||||
null = {
|
||||
source = "hashicorp/null"
|
||||
version = "3.2.3"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -47,6 +51,9 @@ resource libvirt_volume ubuntu2404_resized {
|
||||
count = local.masternodes + local.workernodes
|
||||
}
|
||||
|
||||
data template_file private_key {
|
||||
template = file("${path.module}/.local/.ssh/id_rsa")
|
||||
}
|
||||
|
||||
data template_file public_key {
|
||||
template = file("${path.module}/.local/.ssh/id_rsa.pub")
|
||||
@ -158,3 +165,30 @@ resource libvirt_domain k8s_workers {
|
||||
autoport = true
|
||||
}
|
||||
}
|
||||
|
||||
resource null_resource run_ansible {
|
||||
depends_on = [
|
||||
libvirt_domain.k8s_masters,
|
||||
libvirt_domain.k8s_workers
|
||||
]
|
||||
|
||||
provisioner "local-exec" {
|
||||
command = "ANSIBLE_HOST_KEY_CHECKING=False ansible-playbook -vvv -i ../ansible/inventory.ini ../ansible/k8s.yml -K"
|
||||
}
|
||||
}
|
||||
|
||||
resource null_resource create_namespace {
|
||||
depends_on = [
|
||||
null_resource.run_ansible
|
||||
]
|
||||
provisioner "remote-exec" {
|
||||
inline = ["sudo mkdir ~/.kube", "sudo cp /etc/kubernetes/admin.conf ~/.kube/", "sudo mv ~/.kube/admin.conf ~/.kube/config", "sudo service kubelet restart", "sudo kubectl --kubeconfig ~/.kube/config create namespace kiratech-test"]
|
||||
|
||||
connection {
|
||||
host = libvirt_domain.k8s_masters[0].network_interface[0].addresses[0]
|
||||
type = "ssh"
|
||||
user = "ansible"
|
||||
private_key = data.template_file.private_key.rendered
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user