-
-
Notifications
You must be signed in to change notification settings - Fork 113
/
cilium.cr
53 lines (43 loc) · 1.5 KB
/
cilium.cr
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
require "../../configuration/loader"
require "../../configuration/main"
require "../../util"
require "../../util/shell"
class Kubernetes::Software::Cilium
include Util
include Util::Shell
getter configuration : Configuration::Loader
getter settings : Configuration::Main { configuration.settings }
def initialize(@configuration, @settings)
end
def install
log_line "Installing Cilium..."
command = <<-BASH
helm repo add cilium https://helm.cilium.io/
helm upgrade --install \
--version #{settings.networking.cni.cilium.chart_version} \
--namespace kube-system \
--set encryption.enabled=#{settings.networking.cni.enabled.to_s} \
--set encryption.type=wireguard \
--set encryption.nodeEncryption=#{settings.networking.cni.enabled.to_s} \
--set routingMode=tunnel \
--set tunnelProtocol=vxlan \
--set ipam.mode="kubernetes" \
--set kubeProxyReplacement=true \
--set hubble.enabled=true \
--set hubble.metrics.enabled="{dns,drop,tcp,flow,port-distribution,icmp,http}" \
--set hubble.relay.enabled=true \
--set hubble.ui.enabled=true \
--set k8sServiceHost=127.0.0.1 \
--set k8sServicePort=6444 \
--set operator.replicas=1 \
cilium cilium/cilium
echo "Waiting for Cilium to be ready..."
kubectl -n kube-system rollout status ds cilium
BASH
run_shell_command(command, configuration.kubeconfig_path, settings.hetzner_token)
log_line "...Cilium installed"
end
private def default_log_prefix
"CNI"
end
end