82
82
config . services . tailscale . enable
83
83
) {
84
84
serviceConfig = {
85
- RemainAfterExit = true ; # Ensures it's remains active after running.
85
+ RemainAfterExit = true ;
86
86
} ;
87
87
} ;
88
88
105
105
services . k3s = {
106
106
enable = lib . mkDefault false ;
107
107
role = "server" ;
108
- package = k3sPkg ;
109
108
extraFlags = lib . strings . concatStringsSep " " (
110
109
map ( service : "--disable=${ service } " ) k3s . disableServices
111
110
++ k3s . serverExtraArgs
@@ -116,25 +115,93 @@ in {
116
115
"--egress-selector-mode=disabled"
117
116
]
118
117
) ;
119
- # manifests = {
120
- # certManager = {
121
- # name = "cert-manager";
122
- # namespace = certManagerNamespace;
123
- # createNamespace = true;
124
- # repository = "https://charts.jetstack.io";
125
- # chart = "cert-manager";
126
- # version = "1.15.2";
127
- # waitForJobs = true;
128
- # atomic = true;
129
- # timeout = 120;
130
-
131
- # values = ''
132
- # crds:
133
- # enabled = true
134
- # '';
135
- # };
136
- # };
118
+ configPath = k3s . defaultK3sConfigPath ;
119
+ manifests = {
120
+ certManager = {
121
+ name = "cert-manager" ;
122
+ namespace = certManagerNamespace ;
123
+ createNamespace = true ;
124
+ repository = "https://charts.jetstack.io" ;
125
+ chart = "cert-manager" ;
126
+ version = cert-manager . version ;
127
+ waitForJobs = true ;
128
+ atomic = true ;
129
+ timeout = 120 ;
130
+
131
+ values = ''
132
+ crds:
133
+ enabled = true
134
+ '' ;
135
+ } ;
136
+ cilium = {
137
+ name = "cilium" ;
138
+ namespace = var . cilium_namespace ;
139
+ repository = "https://helm.cilium.io" ;
140
+ chart = "cilium" ;
141
+ atomic = true ;
142
+ version = cilium . version ;
143
+ values = ''
144
+ l2announcements:
145
+ enabled: true
146
+
147
+ kubeProxyReplacement: true
148
+
149
+ bpf:
150
+ masquerade: true
151
+ lbExternalClusterIP: false
152
+
153
+ gatewayAPI:
154
+ enabled: false
155
+
156
+ routingMode: tunnel
157
+
158
+ tunnelProtocol: vxlan
159
+
160
+ ingressController:
161
+ enabled: true
162
+ default: true
163
+ loadbalancerMode: dedicated
164
+ service:
165
+ name: cilium-ingress-external
166
+ labels:
167
+ k3s-paas/internal: "true"
168
+
169
+ prometheus:
170
+ enabled: true
171
+ serviceMonitor:
172
+ enabled: true
173
+
174
+ operator:
175
+ replicas: 1
176
+ prometheus:
177
+ enabled: true
178
+
179
+ hubble:
180
+ relay:
181
+ enabled: true
182
+ metrics:
183
+ enabled:
184
+ - dns
185
+ - drop
186
+ - tcp
187
+ - flow
188
+ - port-distribution
189
+ - icmp
190
+ - httpV2:exemplars=true;labelsContext=source_ip,source_namespace,source_workload,destination_ip,destination_namespace,destination_workload,traffic_direction
191
+ enableOpenMetrics: true
192
+
193
+ ipam:
194
+ operator:
195
+ clusterPoolIPv4PodCIDRList:
196
+ - "${ k3s . podCIDR } "
197
+ '' + lib . mkIf ( k3s . serviceHost != "" ) ''
198
+ k8sServiceHost: "${ k3s . serviceHost } "
199
+ k8sServicePort: "${ k3s . servicePort } "
200
+ '' ;
201
+ } ;
202
+ } ;
137
203
} ;
204
+
138
205
services . fail2ban . enable = true ;
139
206
140
207
security . pki . certificateFiles = certs ;
0 commit comments