Skip to content

Commit ef47e12

Browse files
committed
Support enabling feature gates within kubeadm
1 parent 5f9353d commit ef47e12

File tree

3 files changed

+14
-0
lines changed

3 files changed

+14
-0
lines changed

manifests/config/kubeadm.pp

+1
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@
6363
Integer $conntrack_min = $kubernetes::conntrack_min,
6464
String $conntrack_tcp_wait_timeout = $kubernetes::conntrack_tcp_wait_timeout,
6565
String $conntrack_tcp_stablished_timeout = $kubernetes::conntrack_tcp_stablished_timeout,
66+
Hash[String[1], Boolean] $feature_gates = $kubernetes::feature_gates,
6667
) {
6768
if !($proxy_mode in ['', 'userspace', 'iptables', 'ipvs', 'kernelspace']) {
6869
fail('Invalid kube-proxy mode! Must be one of "", userspace, iptables, ipvs, kernelspace.')

manifests/init.pp

+7
Original file line numberDiff line numberDiff line change
@@ -527,6 +527,12 @@
527527
# Only works with Kubernetes 1.22+
528528
# Default: no phases skipped
529529
#
530+
# [*feature_gates*]
531+
# Feature gate hash to be added to kubeadm configuration
532+
# Example:
533+
# {'RootlessControlPlane' => true}
534+
# Default: undefined, no feature gates
535+
#
530536
# Authors
531537
# -------
532538
#
@@ -684,6 +690,7 @@
684690
String $tmp_directory = '/var/tmp/puppetlabs-kubernetes',
685691
Integer $wait_for_default_sa_tries = 5,
686692
Integer $wait_for_default_sa_try_sleep = 6,
693+
Hash[String[1], Boolean] $feature_gates = {},
687694
) {
688695
if !$facts['os']['family'] in ['Debian', 'RedHat'] {
689696
notify { "The OS family ${facts['os']['family']} is not supported by this module": }

templates/v1beta3/config_kubeadm.yaml.erb

+6
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,12 @@ etcd:
101101
<% end -%>
102102
keyFile: /etc/kubernetes/pki/etcd/client.key
103103
imageRepository: <%= @image_repository %>
104+
<% unless @feature_gates.empty? -%>
105+
featureGates:
106+
<% @feature_gates.each_pair do |key,value| -%>
107+
<%= key %>: <%= value %>
108+
<% end -%>
109+
<% end -%>
104110
kind: ClusterConfiguration
105111
kubernetesVersion: v<%= @kubernetes_version %>
106112
networking:

0 commit comments

Comments
 (0)