This commit is contained in:
parent
4ee8043bb8
commit
4da3293569
@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
- name: Copy K3s service file
|
||||||
|
template:
|
||||||
|
src: "k3s.service.j2"
|
||||||
|
dest: "{{ systemd_dir }}/k3s-node.service"
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0755
|
||||||
|
|
||||||
|
- name: Enable and check K3s service
|
||||||
|
systemd:
|
||||||
|
name: k3s-node
|
||||||
|
daemon_reload: yes
|
||||||
|
state: restarted
|
||||||
|
enabled: yes
|
@ -0,0 +1,24 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Lightweight Kubernetes
|
||||||
|
Documentation=https://k3s.io
|
||||||
|
After=network-online.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=notify
|
||||||
|
ExecStartPre=-/sbin/modprobe br_netfilter
|
||||||
|
ExecStartPre=-/sbin/modprobe overlay
|
||||||
|
ExecStart=/usr/local/bin/k3s agent --server https://{{ master_ip }}:6443 --token {{ hostvars[groups['serverctl_master_hosts'][0]]['token'] }} {{ extra_agent_args | default("") }}
|
||||||
|
KillMode=process
|
||||||
|
Delegate=yes
|
||||||
|
# Having non-zero Limit*s causes performance problems due to accounting overhead
|
||||||
|
# in the kernel. We recommend using cgroups to do container-local accounting.
|
||||||
|
LimitNOFILE=1048576
|
||||||
|
LimitNPROC=infinity
|
||||||
|
LimitCORE=infinity
|
||||||
|
TasksMax=infinity
|
||||||
|
TimeoutStartSec=0
|
||||||
|
Restart=always
|
||||||
|
RestartSec=5s
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
@ -1,11 +1,17 @@
|
|||||||
|
|
||||||
|
variable "serverctl_master_count" {
|
||||||
|
default = 2
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "serverctl_node_count" {
|
||||||
|
default = 2
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
resource "hcloud_placement_group" "serverctl_master" {
|
resource "hcloud_placement_group" "serverctl_master" {
|
||||||
name = "serverctl_master_group"
|
name = "serverctl_master_group"
|
||||||
type = "spread"
|
type = "spread"
|
||||||
}
|
}
|
||||||
variable "serverctl_master_count" {
|
|
||||||
default = 1
|
|
||||||
}
|
|
||||||
|
|
||||||
resource "hcloud_server" "serverctl_master" {
|
resource "hcloud_server" "serverctl_master" {
|
||||||
count = var.serverctl_master_count
|
count = var.serverctl_master_count
|
||||||
@ -34,10 +40,43 @@ resource "hcloud_server" "serverctl_master" {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
resource "hcloud_placement_group" "serverctl_node" {
|
||||||
|
name = "serverctl_node_group"
|
||||||
|
type = "spread"
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "hcloud_server" "serverctl_node" {
|
||||||
|
count = var.serverctl_node_count
|
||||||
|
name = "serverctl-node-${count.index}"
|
||||||
|
image = "debian-11"
|
||||||
|
server_type = "cx11"
|
||||||
|
ssh_keys = [
|
||||||
|
var.hcloud_serverctl_ssh_key_id
|
||||||
|
]
|
||||||
|
placement_group_id = hcloud_placement_group.serverctl_node.id
|
||||||
|
|
||||||
|
|
||||||
|
lifecycle {
|
||||||
|
create_before_destroy = true
|
||||||
|
}
|
||||||
|
|
||||||
|
provisioner "remote-exec" {
|
||||||
|
inline = ["sudo apt update", "sudo apt install python3 -y", "echo Done!"]
|
||||||
|
|
||||||
|
connection {
|
||||||
|
host = self.ipv4_address
|
||||||
|
type = "ssh"
|
||||||
|
user = "root"
|
||||||
|
private_key = file(var.pvt_key)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
resource "local_file" "hosts_cfg" {
|
resource "local_file" "hosts_cfg" {
|
||||||
content = templatefile("${path.module}/templates/hosts.tpl",
|
content = templatefile("${path.module}/templates/hosts.tpl",
|
||||||
{
|
{
|
||||||
serverctl_masters = hcloud_server.serverctl_master.*.ipv4_address
|
serverctl_masters = hcloud_server.serverctl_master.*.ipv4_address
|
||||||
|
serverctl_nodes = hcloud_server.serverctl_node.*.ipv4_address
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
filename = "ansible/inventory/hosts.cfg"
|
filename = "ansible/inventory/hosts.cfg"
|
||||||
|
@ -4,7 +4,10 @@ ${ip}
|
|||||||
%{ endfor ~}
|
%{ endfor ~}
|
||||||
|
|
||||||
[serverctl_node_hosts]
|
[serverctl_node_hosts]
|
||||||
|
%{ for ip in serverctl_nodes ~}
|
||||||
|
${ip}
|
||||||
|
%{ endfor ~}
|
||||||
|
|
||||||
[serverctl_cluster:children]
|
[serverctl_cluster:children]
|
||||||
serverctl_master_hosts
|
serverctl_master_hosts
|
||||||
serverctl_node_hosts
|
serverctl_node_hosts
|
||||||
|
Loading…
Reference in New Issue
Block a user