Compare commits

..

6 Commits

Author SHA1 Message Date
Timothy Stewart
462f357856 feat(k3s): Updated to v1.27.4+k3s1 2023-08-17 22:42:39 -05:00
Timothy Stewart
9e244cd1be Merge branch 'k3s-1-27' of github.com:techno-tim/k3s-ansible into k3s-1-27 2023-08-17 22:41:02 -05:00
Techno Tim
07b4bbe839 Merge branch 'master' into k3s-1-27 2023-08-14 11:54:51 -05:00
Techno Tim
724d849fce Merge branch 'master' into k3s-1-27 2023-07-23 15:03:39 -05:00
Timothy Stewart
e8c28ab9d2 feat(k3s): Updated to v1.27.1+k3s1 2023-07-20 21:35:01 -05:00
Timothy Stewart
9f040fd10a feat(k3s): Updated to v1.27.1+k3s1 2023-04-28 18:30:18 -05:00
19 changed files with 7 additions and 159 deletions

View File

@@ -4,7 +4,7 @@
This playbook will build an HA Kubernetes cluster with `k3s`, `kube-vip` and MetalLB via `ansible`.
This is based on the work from [this fork](https://github.com/212850a/k3s-ansible) which is based on the work from [k3s-io/k3s-ansible](https://github.com/k3s-io/k3s-ansible). It uses [kube-vip](https://kube-vip.io/) to create a load balancer for control plane, and [metal-lb](https://metallb.universe.tf/installation/) for its service `LoadBalancer`.
This is based on the work from [this fork](https://github.com/212850a/k3s-ansible) which is based on the work from [k3s-io/k3s-ansible](https://github.com/k3s-io/k3s-ansible). It uses [kube-vip](https://kube-vip.chipzoller.dev/) to create a load balancer for control plane, and [metal-lb](https://metallb.universe.tf/installation/) for its service `LoadBalancer`.
If you want more context on how this works, see:

View File

@@ -1,5 +1,5 @@
---
k3s_version: v1.25.12+k3s1
k3s_version: v1.27.4+k3s1
# this is the user that has ssh access to these machines
ansible_user: ansibleuser
systemd_dir: /etc/systemd/system
@@ -81,49 +81,3 @@ proxmox_lxc_ct_ids:
- 202
- 203
- 204
# Only enable this if you have set up your own container registry to act as a mirror / pull-through cache
# (harbor / nexus / docker's official registry / etc).
# Can be beneficial for larger dev/test environments (for example if you're getting rate limited by docker hub),
# or air-gapped environments where your nodes don't have internet access after the initial setup
# (which is still needed for downloading the k3s binary and such).
# k3s's documentation about private registries here: https://docs.k3s.io/installation/private-registry
custom_registries: false
# The registries can be authenticated or anonymous, depending on your registry server configuration.
# If they allow anonymous access, simply remove the following bit from custom_registries_yaml
# configs:
# "registry.domain.com":
# auth:
# username: yourusername
# password: yourpassword
# The following is an example that pulls all images used in this playbook through your private registries.
# It also allows you to pull your own images from your private registry, without having to use imagePullSecrets
# in your deployments.
# If all you need is your own images and you don't care about caching the docker/quay/ghcr.io images,
# you can just remove those from the mirrors: section.
custom_registries_yaml: |
mirrors:
docker.io:
endpoint:
- "https://registry.domain.com/v2/dockerhub"
quay.io:
endpoint:
- "https://registry.domain.com/v2/quayio"
ghcr.io:
endpoint:
- "https://registry.domain.com/v2/ghcrio"
registry.domain.com:
endpoint:
- "https://registry.domain.com"
configs:
"registry.domain.com":
auth:
username: yourusername
password: yourpassword
# Only enable and configure these if you access the internet through a proxy
# proxy_env:
# HTTP_PROXY: "http://proxy.domain.local:3128"
# HTTPS_PROXY: "http://proxy.domain.local:3128"
# NO_PROXY: "*.domain.local,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16"

View File

@@ -6,7 +6,7 @@
#
ansible-compat==3.0.1
# via molecule
ansible-core==2.15.5
ansible-core==2.15.2
# via
# -r requirements.in
# ansible-compat
@@ -86,7 +86,7 @@ molecule==4.0.4
# molecule-vagrant
molecule-vagrant==1.0.0
# via -r requirements.in
netaddr==0.9.0
netaddr==0.8.0
# via -r requirements.in
nodeenv==1.7.0
# via pre-commit
@@ -103,7 +103,7 @@ pluggy==1.0.0
# via molecule
pre-commit==2.21.0
# via -r requirements.in
pre-commit-hooks==4.5.0
pre-commit-hooks==4.4.0
# via -r requirements.in
pyasn1==0.4.8
# via

View File

@@ -1,18 +0,0 @@
---
- name: Create k3s.service.d directory
file:
path: '{{ systemd_dir }}/k3s.service.d'
state: directory
owner: root
group: root
mode: '0755'
- name: Copy K3s http_proxy conf file
template:
src: "http_proxy.conf.j2"
dest: "{{ systemd_dir }}/k3s.service.d/http_proxy.conf"
owner: root
group: root
mode: '0755'

View File

@@ -1,9 +1,5 @@
---
- name: Deploy K3s http_proxy conf
include_tasks: http_proxy.yml
when: proxy_env is defined
- name: Copy K3s service file
template:
src: "k3s.service.j2"

View File

@@ -1,4 +0,0 @@
[Service]
Environment=HTTP_PROXY={{ proxy_env.HTTP_PROXY }}
Environment=HTTPS_PROXY={{ proxy_env.HTTPS_PROXY }}
Environment=NO_PROXY={{ proxy_env.NO_PROXY }}

View File

@@ -1,6 +0,0 @@
---
# Indicates whether custom registries for k3s should be configured
# Possible values:
# - present
# - absent
state: present

View File

@@ -1,17 +0,0 @@
---
- name: Create directory /etc/rancher/k3s
file:
path: "/etc/{{ item }}"
state: directory
mode: '0755'
loop:
- rancher
- rancher/k3s
- name: Insert registries into /etc/rancher/k3s/registries.yaml
blockinfile:
path: /etc/rancher/k3s/registries.yaml
block: "{{ custom_registries_yaml }}"
mode: '0600'
create: true

View File

@@ -1,18 +0,0 @@
---
- name: Create k3s.service.d directory
file:
path: '{{ systemd_dir }}/k3s.service.d'
state: directory
owner: root
group: root
mode: '0755'
- name: Copy K3s http_proxy conf file
template:
src: "http_proxy.conf.j2"
dest: "{{ systemd_dir }}/k3s.service.d/http_proxy.conf"
owner: root
group: root
mode: '0755'

View File

@@ -12,16 +12,11 @@
failed_when: false
changed_when: false
- name: Deploy K3s http_proxy conf
include_tasks: http_proxy.yml
when: proxy_env is defined
- name: Deploy vip manifest
include_tasks: vip.yml
- name: Deploy metallb manifest
include_tasks: metallb.yml
tags: metallb
- name: Init cluster inside the transient k3s-init service
command:

View File

@@ -1,4 +0,0 @@
[Service]
Environment=HTTP_PROXY={{ proxy_env.HTTP_PROXY }}
Environment=HTTPS_PROXY={{ proxy_env.HTTPS_PROXY }}
Environment=NO_PROXY={{ proxy_env.NO_PROXY }}

View File

@@ -1,7 +1,6 @@
---
- name: Deploy metallb pool
include_tasks: metallb.yml
tags: metallb
- name: Remove tmp directory used for manifests
file:

View File

@@ -2,4 +2,3 @@
- name: Reboot server
become: true
reboot:
listen: reboot server

View File

@@ -1,4 +0,0 @@
---
secure_path:
RedHat: '/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin'
Suse: '/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/bin'

View File

@@ -15,7 +15,6 @@
value: "1"
state: present
reload: yes
tags: sysctl
- name: Enable IPv6 forwarding
ansible.posix.sysctl:
@@ -23,7 +22,6 @@
value: "1"
state: present
reload: yes
tags: sysctl
- name: Enable IPv6 router advertisements
ansible.posix.sysctl:
@@ -31,7 +29,6 @@
value: "2"
state: present
reload: yes
tags: sysctl
- name: Add br_netfilter to /etc/modules-load.d/
copy:
@@ -56,14 +53,13 @@
loop:
- net.bridge.bridge-nf-call-iptables
- net.bridge.bridge-nf-call-ip6tables
tags: sysctl
- name: Add /usr/local/bin to sudo secure_path
lineinfile:
line: 'Defaults secure_path = {{ secure_path[ansible_os_family] }}'
line: 'Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin'
regexp: "Defaults(\\s)*secure_path(\\s)*="
state: present
insertafter: EOF
path: /etc/sudoers
validate: 'visudo -cf %s'
when: ansible_os_family in [ "RedHat", "Suse" ]
when: ansible_os_family == "RedHat"

View File

@@ -5,9 +5,7 @@
set_fact:
proxmox_lxc_filtered_ids: >-
{{ proxmox_lxc_filtered_files | map("split", "/") | map("last") | map("split", ".") | map("first") }}
listen: reboot containers
- name: Reboot container
command: "pct reboot {{ item }}"
loop: "{{ proxmox_lxc_filtered_ids }}"
changed_when: true
listen: reboot containers

View File

@@ -1,4 +1,3 @@
---
- name: Reboot
reboot:
listen: reboot

View File

@@ -46,15 +46,6 @@
- /var/lib/rancher/
- /var/lib/cni/
- name: Remove K3s http_proxy files
file:
name: "{{ item }}"
state: absent
with_items:
- "{{ systemd_dir }}/k3s.service.d"
- "{{ systemd_dir }}/k3s-node.service.d"
when: proxy_env is defined
- name: Reload daemon_reload
systemd:
daemon_reload: yes

View File

@@ -3,7 +3,6 @@
hosts: proxmox
gather_facts: true
become: yes
environment: "{{ proxy_env | default({}) }}"
roles:
- role: proxmox_lxc
when: proxmox_lxc_configure
@@ -11,7 +10,6 @@
- name: Prepare k3s nodes
hosts: k3s_cluster
gather_facts: yes
environment: "{{ proxy_env | default({}) }}"
roles:
- role: lxc
become: true
@@ -22,27 +20,21 @@
become: true
- role: raspberrypi
become: true
- role: k3s_custom_registries
become: true
when: custom_registries
- name: Setup k3s servers
hosts: master
environment: "{{ proxy_env | default({}) }}"
roles:
- role: k3s_server
become: true
- name: Setup k3s agents
hosts: node
environment: "{{ proxy_env | default({}) }}"
roles:
- role: k3s_agent
become: true
- name: Configure k3s cluster
hosts: master
environment: "{{ proxy_env | default({}) }}"
roles:
- role: k3s_server_post
become: true