* Add Tigera Operator/Calico CNI option Small tweak to reduce delta from head Set calico option to be disabled by default Add rescue blocks in case updating existing Refactor items and update comments Refactor and consolidate calico.yml into block Refactor to use template for Calico CRs Revert use_calico to false Template blockSize Align default cidr in template with all.yml sample Apply upstream version tags Revert to current ver tags. Upstream's don't work. Update template address detection Add Tigera Operator/Calico CNI option * Add calico-apiserver check * Add eBPF dataplane option * Add kube svc endpoint configmap when ebpf enabled * Add /etc/cni/net.d to reset task * Refactor based on comments * Add molecule scenario * Fix lint --------- Co-authored-by: Techno Tim <timothystewart6@gmail.com>
143 lines
5.6 KiB
YAML
143 lines
5.6 KiB
YAML
---
|
|
k3s_version: v1.29.0+k3s1
|
|
# this is the user that has ssh access to these machines
|
|
ansible_user: ansibleuser
|
|
systemd_dir: /etc/systemd/system
|
|
|
|
# Set your timezone
|
|
system_timezone: "Your/Timezone"
|
|
|
|
# interface which will be used for flannel
|
|
flannel_iface: "eth0"
|
|
|
|
# uncomment calico_iface to use tigera operator/calico cni instead of flannel https://docs.tigera.io/calico/latest/about
|
|
# calico_iface: "eth0"
|
|
calico_ebpf: false # use eBPF dataplane instead of iptables
|
|
calico_cidr: "10.52.0.0/16" # calico cluster pod cidr pool
|
|
calico_tag: "v3.27.0" # calico version tag
|
|
|
|
# apiserver_endpoint is virtual ip-address which will be configured on each master
|
|
apiserver_endpoint: "192.168.30.222"
|
|
|
|
# k3s_token is required masters can talk together securely
|
|
# this token should be alpha numeric only
|
|
k3s_token: "some-SUPER-DEDEUPER-secret-password"
|
|
|
|
# The IP on which the node is reachable in the cluster.
|
|
# Here, a sensible default is provided, you can still override
|
|
# it for each of your hosts, though.
|
|
k3s_node_ip: "{{ ansible_facts[(calico_iface | default(flannel_iface))]['ipv4']['address'] }}"
|
|
|
|
# Disable the taint manually by setting: k3s_master_taint = false
|
|
k3s_master_taint: "{{ true if groups['node'] | default([]) | length >= 1 else false }}"
|
|
|
|
# these arguments are recommended for servers as well as agents:
|
|
extra_args: >-
|
|
{{ '--flannel-iface=' + flannel_iface if calico_iface is not defined else '' }}
|
|
--node-ip={{ k3s_node_ip }}
|
|
|
|
# change these to your liking, the only required are: --disable servicelb, --tls-san {{ apiserver_endpoint }}
|
|
# the contents of the if block is also required if using calico
|
|
extra_server_args: >-
|
|
{{ extra_args }}
|
|
{{ '--node-taint node-role.kubernetes.io/master=true:NoSchedule' if k3s_master_taint else '' }}
|
|
{% if calico_iface is defined %}
|
|
--flannel-backend=none
|
|
--disable-network-policy
|
|
--cluster-cidr={{ calico_cidr | default('10.52.0.0/16') }}
|
|
{% endif %}
|
|
--tls-san {{ apiserver_endpoint }}
|
|
--disable servicelb
|
|
--disable traefik
|
|
|
|
extra_agent_args: >-
|
|
{{ extra_args }}
|
|
|
|
# image tag for kube-vip
|
|
kube_vip_tag_version: "v0.6.4"
|
|
|
|
# metallb type frr or native
|
|
metal_lb_type: "native"
|
|
|
|
# metallb mode layer2 or bgp
|
|
metal_lb_mode: "layer2"
|
|
|
|
# bgp options
|
|
# metal_lb_bgp_my_asn: "64513"
|
|
# metal_lb_bgp_peer_asn: "64512"
|
|
# metal_lb_bgp_peer_address: "192.168.30.1"
|
|
|
|
# image tag for metal lb
|
|
metal_lb_speaker_tag_version: "v0.13.12"
|
|
metal_lb_controller_tag_version: "v0.13.12"
|
|
|
|
# metallb ip range for load balancer
|
|
metal_lb_ip_range: "192.168.30.80-192.168.30.90"
|
|
|
|
# Only enable if your nodes are proxmox LXC nodes, make sure to configure your proxmox nodes
|
|
# in your hosts.ini file.
|
|
# Please read https://gist.github.com/triangletodd/02f595cd4c0dc9aac5f7763ca2264185 before using this.
|
|
# Most notably, your containers must be privileged, and must not have nesting set to true.
|
|
# Please note this script disables most of the security of lxc containers, with the trade off being that lxc
|
|
# containers are significantly more resource efficient compared to full VMs.
|
|
# Mixing and matching VMs and lxc containers is not supported, ymmv if you want to do this.
|
|
# I would only really recommend using this if you have particularly low powered proxmox nodes where the overhead of
|
|
# VMs would use a significant portion of your available resources.
|
|
proxmox_lxc_configure: false
|
|
# the user that you would use to ssh into the host, for example if you run ssh some-user@my-proxmox-host,
|
|
# set this value to some-user
|
|
proxmox_lxc_ssh_user: root
|
|
# the unique proxmox ids for all of the containers in the cluster, both worker and master nodes
|
|
proxmox_lxc_ct_ids:
|
|
- 200
|
|
- 201
|
|
- 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"
|