talm

Форк
0
/
presets.go 
373 строки · 9.8 Кб
1
package generated
2

3
var PresetFiles = map[string]string{
4
	"cozystack/Chart.yaml": `apiVersion: v2
5
name: %s
6
type: application
7
version: %s
8
globalOptions:
9
  talosconfig: "talosconfig"
10
templateOptions:
11
  offline: false
12
  valueFiles: []
13
  values: []
14
  stringValues: []
15
  fileValues: []
16
  jsonValues: []
17
  literalValues: []
18
  talosVersion: "v1.7"
19
  withSecrets: "secrets.yaml"
20
  kubernetesVersion: ""
21
  full: false
22
applyOptions:
23
  preserve: false
24
  timeout: "1m"
25
  certFingerprints: []
26
upgradeOptions:
27
  preserve: false
28
  stage: false
29
  force: false
30
`,
31
	"cozystack/templates/_helpers.tpl": `{{- define "talos.config" }}
32
machine:
33
  type: {{ .MachineType }}
34
  kubelet:
35
    nodeIP:
36
      validSubnets:
37
        {{- toYaml .Values.advertisedSubnets | nindent 8 }}
38
    extraConfig:
39
      maxPods: 512
40
  kernel:
41
    modules:
42
    - name: openvswitch
43
    - name: drbd
44
      parameters:
45
        - usermode_helper=disabled
46
    - name: zfs
47
    - name: spl
48
  files:
49
  - content: |
50
      [plugins]
51
        [plugins."io.containerd.grpc.v1.cri"]
52
          device_ownership_from_security_context = true      
53
    path: /etc/cri/conf.d/20-customization.part
54
    op: create
55
  install:
56
    {{- with .Values.image }}
57
    image: {{ . }}
58
    {{- end }}
59
    {{- (include "talm.discovered.disks_info" .) | nindent 4 }}
60
    disk: {{ include "talm.discovered.system_disk_name" . | quote }}
61
  network:
62
    hostname: {{ include "talm.discovered.hostname" . | quote }}
63
    nameservers: {{ include "talm.discovered.default_resolvers" . }}
64
    {{- (include "talm.discovered.physical_links_info" .) | nindent 4 }}
65
    interfaces:
66
    - deviceSelector:
67
        {{- include "talm.discovered.default_link_selector_by_gateway" . | nindent 8 }}
68
      addresses: {{ include "talm.discovered.default_addresses_by_gateway" . }}
69
      routes:
70
        - network: 0.0.0.0/0
71
          gateway: {{ include "talm.discovered.default_gateway" . }}
72
      {{- if eq .MachineType "controlplane" }}{{ with .Values.floatingIP }}
73
      vip:
74
        ip: {{ . }}
75
      {{- end }}{{ end }}
76

77

78
cluster:
79
  network:
80
    cni:
81
      name: none
82
    dnsDomain: {{ .Values.clusterDomain }}
83
    podSubnets:
84
      {{- toYaml .Values.podSubnets | nindent 6 }}
85
    serviceSubnets:
86
      {{- toYaml .Values.serviceSubnets | nindent 6 }}
87
  clusterName: "{{ .Chart.Name }}"
88
  controlPlane:
89
    endpoint: "{{ .Values.endpoint }}"
90
  {{- if eq .MachineType "controlplane" }}
91
  allowSchedulingOnControlPlanes: true
92
  controllerManager:
93
    extraArgs:
94
      bind-address: 0.0.0.0
95
  scheduler:
96
    extraArgs:
97
      bind-address: 0.0.0.0
98
  apiServer:
99
    certSANs:
100
    - 127.0.0.1
101
  proxy:
102
    disabled: true
103
  discovery:
104
    enabled: false
105
  etcd:
106
    advertisedSubnets:
107
      {{- toYaml .Values.advertisedSubnets | nindent 6 }}
108
  {{- end }}
109
{{- end }}
110
`,
111
	"cozystack/templates/controlplane.yaml": `{{- $_ := set . "MachineType" "controlplane" -}}
112
{{- include "talos.config" . }}
113
`,
114
	"cozystack/templates/worker.yaml": `{{- $_ := set . "MachineType" "worker" -}}
115
{{- include "talos.config" . }}
116
`,
117
	"cozystack/values.yaml": `endpoint: "https://192.168.100.10:6443"
118
clusterDomain: cozy.local
119
floatingIP: 192.168.100.10
120
image: "ghcr.io/aenix-io/cozystack/talos:v1.7.1"
121
podSubnets:
122
- 10.244.0.0/16
123
serviceSubnets:
124
- 10.96.0.0/16
125
advertisedSubnets:
126
- 192.168.100.0/24
127
`,
128
	"generic/Chart.yaml": `apiVersion: v2
129
name: %s
130
type: application
131
version: %s
132
globalOptions:
133
  talosconfig: "talosconfig"
134
templateOptions:
135
  offline: false
136
  valueFiles: []
137
  values: []
138
  stringValues: []
139
  fileValues: []
140
  jsonValues: []
141
  literalValues: []
142
  talosVersion: ""
143
  withSecrets: "secrets.yaml"
144
  kubernetesVersion: ""
145
  full: false
146
applyOptions:
147
  preserve: false
148
  timeout: "1m"
149
  certFingerprints: []
150
upgradeOptions:
151
  preserve: false
152
  stage: false
153
  force: false
154
`,
155
	"generic/templates/_helpers.tpl": `{{- define "talos.config" }}
156
machine:
157
  type: {{ .MachineType }}
158
  kubelet:
159
    nodeIP:
160
      validSubnets:
161
        {{- toYaml .Values.advertisedSubnets | nindent 8 }}
162
  install:
163
    {{- (include "talm.discovered.disks_info" .) | nindent 4 }}
164
    disk: {{ include "talm.discovered.system_disk_name" . | quote }}
165
  network:
166
    hostname: {{ include "talm.discovered.hostname" . | quote }}
167
    nameservers: {{ include "talm.discovered.default_resolvers" . }}
168
    {{- (include "talm.discovered.physical_links_info" .) | nindent 4 }}
169
    interfaces:
170
    - deviceSelector:
171
        {{- include "talm.discovered.default_link_selector_by_gateway" . | nindent 8 }}
172
      addresses: {{ include "talm.discovered.default_addresses_by_gateway" . }}
173
      routes:
174
        - network: 0.0.0.0/0
175
          gateway: {{ include "talm.discovered.default_gateway" . }}
176
      {{- with .Values.floatingIP }}
177
      vip:
178
        ip: {{ . }}
179
      {{- end }}
180

181
cluster:
182
  network:
183
    podSubnets:
184
      {{- toYaml .Values.podSubnets | nindent 6 }}
185
    serviceSubnets:
186
      {{- toYaml .Values.serviceSubnets | nindent 6 }}
187
  clusterName: "{{ .Chart.Name }}"
188
  controlPlane:
189
    endpoint: "{{ .Values.endpoint }}"
190
  {{- if eq .MachineType "controlplane" }}
191
  etcd:
192
    advertisedSubnets:
193
      {{- toYaml .Values.advertisedSubnets | nindent 6 }}
194
  {{- end }}
195
{{- end }}
196
`,
197
	"generic/templates/controlplane.yaml": `{{- $_ := set . "MachineType" "controlplane" -}}
198
{{- include "talos.config" . }}
199
`,
200
	"generic/templates/worker.yaml": `{{- $_ := set . "MachineType" "worker" -}}
201
{{- include "talos.config" . }}
202
`,
203
	"generic/values.yaml": `endpoint: "https://192.168.100.10:6443"
204
podSubnets:
205
- 10.244.0.0/16
206
serviceSubnets:
207
- 10.96.0.0/16
208
advertisedSubnets:
209
- 192.168.100.0/24
210
`,
211
	"talm/Chart.yaml": `apiVersion: v2
212
type: library
213
name: %s
214
version: %s
215
description: A library Talm chart for Talos Linux
216
`,
217
	"talm/templates/_helpers.tpl": `{{- define "talm.discovered.system_disk_name" }}
218
{{- $disk := "" }}
219
{{- range .Disks }}
220
{{- if eq $disk "" }}
221
{{- $disk = .device_name }}
222
{{- end }}
223
{{- if .system_disk }}
224
{{- $disk = .device_name }}
225
{{- end }}
226
{{- end }}
227
{{- $disk }}
228
{{- end }}
229

230
{{- define "talm.discovered.machinetype" }}
231
{{- (lookup "machinetype" "" "machine-type").spec }}
232
{{- end }}
233

234
{{- define "talm.discovered.hostname" }}
235
{{- with (lookup "hostname" "" "hostname") }}
236
{{- .spec.hostname }}
237
{{- end }}
238
{{- end }}
239

240
{{- define "talm.discovered.disks_info" }}
241
# -- Discovered disks:
242
{{- range .Disks }}
243
{{- if not (regexMatch "^/dev/(zd)" .device_name) }}
244
# {{ .device_name }}:
245
#    model: {{ .model }}
246
#    serial: {{ .serial }}
247
#    wwid: {{ .wwid }}
248
#    size: {{ include "talm.human_size" .size }}
249
{{- end }}
250
{{- end }}
251
{{- end }}
252

253
{{- define "talm.human_size" }}
254
  {{- $bytes := int64 . }}
255
  {{- if lt $bytes 1048576 }}
256
    {{- printf "%.2f MB" (divf $bytes 1048576.0) }}
257
  {{- else if lt $bytes 1073741824 }}
258
    {{- printf "%.2f GB" (divf $bytes 1073741824.0) }}
259
  {{- else }}
260
    {{- printf "%.2f TB" (divf $bytes 1099511627776.0) }}
261
  {{- end }}
262
{{- end }}
263

264
{{- define "talm.discovered.default_addresses" }}
265
{{- with (lookup "nodeaddress" "" "default") }}
266
{{- toJson .spec.addresses }}
267
{{- end }}
268
{{- end }}
269

270
{{- define "talm.discovered.default_addresses_by_gateway" }}
271
{{- $linkName := "" }}
272
{{- $family := "" }}
273
{{- range (lookup "routes" "" "").items }}
274
{{- if and (eq .spec.dst "") (not (eq .spec.gateway "")) }}
275
{{- $linkName = .spec.outLinkName }}
276
{{- $family = .spec.family }}
277
{{- end }}
278
{{- end }}
279
{{- $addresses := list }}
280
{{- range (lookup "addresses" "" "").items }}
281
{{- if and (eq .spec.linkName $linkName) (eq .spec.family $family) (not (eq .spec.scope "host")) }}
282
{{- if not (hasPrefix (printf "%s/" $.Values.floatingIP) .spec.address) }}
283
{{- $addresses = append $addresses .spec.address }}
284
{{- end }}
285
{{- end }}
286
{{- end }}
287
{{- toJson $addresses }}
288
{{- end }}
289

290
{{- define "talm.discovered.physical_links_info" }}
291
# -- Discovered interfaces:
292
{{- range (lookup "links" "" "").items }}
293
{{- if and .spec.busPath (regexMatch "^(eno|eth|enp|enx|ens)" .metadata.id) }}
294
# enx{{ .spec.hardwareAddr | replace ":" "" }}:
295
#   id: {{ .metadata.id }}
296
#   hardwareAddr:{{ .spec.hardwareAddr }}
297
#   busPath: {{ .spec.busPath }}
298
#   driver: {{ .spec.driver }}
299
#   vendor: {{ .spec.vendor }}
300
#   product: {{ .spec.product }})
301
{{- end }}
302
{{- end }}
303
{{- end }}
304

305
{{- define "talm.discovered.default_link_name" }}
306
{{- range (lookup "addresses" "" "").items }}
307
{{- if has .spec.address (fromJsonArray (include "talm.discovered.default_addresses" .)) }}
308
{{- .spec.linkName }}
309
{{- end }}
310
{{- end }}
311
{{- end }}
312

313
{{- define "talm.discovered.default_link_name_by_gateway" }}
314
{{- range (lookup "routes" "" "").items }}
315
{{- if and (eq .spec.dst "") (not (eq .spec.gateway "")) }}
316
{{- .spec.outLinkName }}
317
{{- end }}
318
{{- end }}
319
{{- end }}
320

321
{{- define "talm.discovered.default_link_address_by_gateway" }}
322
{{- range (lookup "routes" "" "").items }}
323
{{- if and (eq .spec.dst "") (not (eq .spec.gateway "")) }}
324
{{- (lookup "links" "" .spec.outLinkName).spec.hardwareAddr }}
325
{{- end }}
326
{{- end }}
327
{{- end }}
328

329
{{- define "talm.discovered.default_link_bus_by_gateway" }}
330
{{- range (lookup "routes" "" "").items }}
331
{{- if and (eq .spec.dst "") (not (eq .spec.gateway "")) }}
332
{{- (lookup "links" "" .spec.outLinkName).spec.hardwareAddr }}
333
{{- end }}
334
{{- end }}
335
{{- end }}
336

337
{{- define "talm.discovered.default_link_selector_by_gateway" }}
338
{{- range (lookup "routes" "" "").items }}
339
{{- if and (eq .spec.dst "") (not (eq .spec.gateway "")) }}
340
{{- with (lookup "links" "" .spec.outLinkName) }}
341
hardwareAddr: {{ .spec.hardwareAddr }}
342
driver: {{ .spec.driver }}
343
{{- break }}
344
{{- end }}
345
{{- end }}
346
{{- end }}
347
{{- end }}
348

349
{{- define "talm.predictable_link_name" -}}
350
{{ printf "enx%s" (lookup "links" "" . | dig "spec" "hardwareAddr" . | replace ":" "") }}
351
{{- end }}
352

353
{{- define "talm.discovered.default_gateway" }}
354
{{- range (lookup "routes" "" "").items }}
355
{{- if and (eq .spec.dst "") (not (eq .spec.gateway "")) (eq .spec.table "main") }}
356
{{- .spec.gateway }}
357
{{- break }}
358
{{- end }}
359
{{- end }}
360
{{- end }}
361

362
{{- define "talm.discovered.default_resolvers" }}
363
{{- with (lookup "resolvers" "" "resolvers") }}
364
{{- toJson .spec.dnsServers }}
365
{{- end }}
366
{{- end }}
367
`,
368
}
369

370
var AvailablePresets = []string{
371
	"generic",
372
	"cozystack",
373
}
374

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.