Skip to content

Commit

Permalink
Merge pull request #1 from CRASH-Tech/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
CRASH-Tech authored Nov 6, 2023
2 parents 087a529 + 9b4fbad commit 821c893
Show file tree
Hide file tree
Showing 34 changed files with 3,609 additions and 1 deletion.
37 changes: 37 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Publish Docker image

on:
release:
types: [published]

env:
REGISTRY: "crashntech/${{ github.event.repository.name }}"

jobs:
build_and_push:
name: Push Docker image to Docker Hub
runs-on: ubuntu-latest
steps:
- name: Check out the repo
uses: actions/checkout@v4

- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_TOKEN }}

- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}

- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: .
file: ./Dockerfile
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
_out
3 changes: 3 additions & 0 deletions .helm/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
apiVersion: v2
name: talos-operator
version: 0.0.1
5 changes: 5 additions & 0 deletions .helm/templates/_machinesecrets.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{{- define "machinesecrets" -}}
ca: {{ .cluster.secrets.talosconfig.ca }}
crt: {{ .cluster.secrets.talosconfig.crt }}
key: {{ .cluster.secrets.talosconfig.key }}
{{- end -}}
10 changes: 10 additions & 0 deletions .helm/templates/_talosconfig.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{{- define "talosconfig" -}}
context: {{ .cluster.name }}
contexts:
{{ .cluster.name }}:
endpoints:
- 127.0.0.1
ca: {{ .cluster.secrets.talosconfig.ca }}
crt: {{ .cluster.secrets.talosconfig.crt }}
key: {{ .cluster.secrets.talosconfig.key }}
{{- end -}}
15 changes: 15 additions & 0 deletions .helm/templates/machine.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{{- range $machine, $machineData := $.Values.machines }}
apiVersion: talos.xfix.org/v1alpha1
kind: Machine
metadata:
name: {{ printf "%s-%s" $.Values.cluster.name $machine }}
finalizers:
- resources-finalizer.talos-operator.xfix.org
spec:
host: {{ $machineData.host }}
config: {{ printf "talos-%s-%s" $.Values.cluster.name $machineData.template }}
bootstrap: {{ $machineData.bootstrap | default false }}
params: {{ $machineData.params | toYaml | nindent 2 }}
protected: {{ $machineData.protected | default false }}
---
{{- end }}
16 changes: 16 additions & 0 deletions .helm/templates/machineConfig.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{{- range $template, $templateData := $.Values.cluster.templates }}
kind: Secret
apiVersion: v1
metadata:
name: {{ printf "talos-%s-%s" $.Values.cluster.name $template }}
labels:
talos/secret-type: machineconfig
immutable: false
type: Opaque
data:
kubeconfig: "dsds"
talosconfig: {{ include "talosconfig" $.Values | b64enc }}
machinesecrets: {{ include "machinesecrets" $.Values | b64enc }}
machineconfig: {{ tpl (index $.Values.templates $templateData.template) (dict "Values" $.Values "Template" $.Template "cluster" $.Values.cluster "template" $templateData) | b64enc }}
---
{{- end }}
14 changes: 14 additions & 0 deletions .helm/templates/machineSelector.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{{- range $machineSelector, $machineSelectorData := $.Values.machineSelectors }}
apiVersion: talos.xfix.org/v1alpha1
kind: MachineSelector
metadata:
name: {{ $machineSelector }}
spec:
config: {{ printf "talos-%s-%s" $.Values.cluster.name $machineSelectorData.template }}
params:
{{- range $k, $v := $machineSelectorData.params }}
- key: {{ $v.key }}
value: '{{ $v.value }}'
{{- end }}
---
{{- end }}
130 changes: 130 additions & 0 deletions .helm/values.dev.k-test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
cluster:
name: k-test
endpoint: https://10.171.123.150:6443
certSANs:
- 10.171.123.150
disablePodSecurityPolicy: true
allowSchedulingOnControlPlanes: true
network:
cni: flannel
dnsDomain: cluster.local
podSubnets:
- 10.244.0.0/16
serviceSubnets:
- 10.96.0.0/12
nameservers:
- 8.8.8.8
- 1.1.1.1

secrets:
cluster:
id: N6FnxDfasycS7h4wEF80GDLNYAbZpx5Tid9-DwjIDOw=
secret: A/oTnyR8Gm8z6Y27/nmegKN8OpyUIRzJmUZevr/kVNo=
secrets:
bootstraptoken: xa0fyr.v8t2s4wb8b1l13cn
secretboxencryptionsecret: 9K05gZZFgfpI3bO8vzNn22sgHIBbx84sL5uKr+LMxY8=
trustdinfo:
token: ig4sa2.ddxkaxjhmicjpeid
certs:
etcd:
crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJmekNDQVNTZ0F3SUJBZ0lSQU1xU3JrMkdacGlzNkZvU2RtaGhWOVV3Q2dZSUtvWkl6ajBFQXdJd0R6RU4KTUFzR0ExVUVDaE1FWlhSalpEQWVGdzB5TXpBNU1USXlNVEF5TWpKYUZ3MHpNekE1TURreU1UQXlNakphTUE4eApEVEFMQmdOVkJBb1RCR1YwWTJRd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFSTFFxcmtDbDdjCnFKQXA1NkdlbENOMXlSMmJHVXRneUF1bXdXd0szZmRTL3F3OEo1dm4weXR4NEdoNWtKeUl3cTh5eHlxSDJBV3kKeUErRjJYZnR6WkRqbzJFd1h6QU9CZ05WSFE4QkFmOEVCQU1DQW9Rd0hRWURWUjBsQkJZd0ZBWUlLd1lCQlFVSApBd0VHQ0NzR0FRVUZCd01DTUE4R0ExVWRFd0VCL3dRRk1BTUJBZjh3SFFZRFZSME9CQllFRkh0YUNRUFJiMkhjCnlhQlRtSHNlUGZlM2xIV0JNQW9HQ0NxR1NNNDlCQU1DQTBrQU1FWUNJUURGdWRDSTBnRkxWRHJWYmVwaDlqekEKbTBDSGl3THRCZktEYmMvRDFaL3lad0loQU1hbW5ZbjBIVEk1RzZsbzhvMURONXlCTEh2bTgva1ZqWkY5K0JRZQoxS3JpCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
key: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSU5NNW1va2RmUEdjdXlxS3B6SExYMDVCOEhjZ3ZsNUQvQkF1OTE4eDl1SHJvQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFUzBLcTVBcGUzS2lRS2VlaG5wUWpkY2tkbXhsTFlNZ0xwc0ZzQ3QzM1V2NnNQQ2ViNTlNcgpjZUJvZVpDY2lNS3ZNc2NxaDlnRnNzZ1BoZGwzN2MyUTR3PT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=
k8s:
crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJpakNDQVRDZ0F3SUJBZ0lSQU1lVWo0KzRmNVpxWU9CUm9MWmF3RTR3Q2dZSUtvWkl6ajBFQXdJd0ZURVQKTUJFR0ExVUVDaE1LYTNWaVpYSnVaWFJsY3pBZUZ3MHlNekE1TVRJeU1UQXlNakphRncwek16QTVNRGt5TVRBeQpNakphTUJVeEV6QVJCZ05WQkFvVENtdDFZbVZ5Ym1WMFpYTXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CCkJ3TkNBQVNLdlJKZ0JudXdlNURxelpkYnRFQkYweGxQc2o5RzZ6QkhDSXB3Q3YvVjlrQU45cThTbmp0clpjdXAKVVBScFBVWC9UWDlGaFhCNGNUTFQ2VmtRVk5qa28yRXdYekFPQmdOVkhROEJBZjhFQkFNQ0FvUXdIUVlEVlIwbApCQll3RkFZSUt3WUJCUVVIQXdFR0NDc0dBUVVGQndNQ01BOEdBMVVkRXdFQi93UUZNQU1CQWY4d0hRWURWUjBPCkJCWUVGTUVYSThSZTRvUXJUVDkwNFJob21qNlNldzRqTUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDSUNlQ1RRMUcKQjMxeWhvbnN1Q0VsczVNV09qelBpQ3NhckRlclJFK3dwRzNFQWlFQThVQTdvSS9nNzhzbm5kNDBaK3lmL2tRNQpHeXVKN0g0NXhQa1Z5T1I2YkFJPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
key: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUNOZzNjT1dzMnZpY3VoVXFDUHZvalgzNjBXekJOTzQxc05MaHBmNTlFRXZvQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFaXIwU1lBWjdzSHVRNnMyWFc3UkFSZE1aVDdJL1J1c3dSd2lLY0FyLzFmWkFEZmF2RXA0NwphMlhMcVZEMGFUMUYvMDEvUllWd2VIRXkwK2xaRUZUWTVBPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=
k8saggregator:
crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJZRENDQVFhZ0F3SUJBZ0lSQUt5RXI1R2dPcDBNN244QkZBNTJIeUl3Q2dZSUtvWkl6ajBFQXdJd0FEQWUKRncweU16QTVNVEl5TVRBeU1qSmFGdzB6TXpBNU1Ea3lNVEF5TWpKYU1BQXdXVEFUQmdjcWhrak9QUUlCQmdncQpoa2pPUFFNQkJ3TkNBQVFpODVERWlLbEFqWEtRMXdYNGVjQTNkWGVpbi9IVURnRUxHQ2FMOEI1YVJXTEdYTDc3ClBNeE1hYktZMHNOcXVyR1RyOG9ia2xFUStmNjRmeTlpeFQ2RG8yRXdYekFPQmdOVkhROEJBZjhFQkFNQ0FvUXcKSFFZRFZSMGxCQll3RkFZSUt3WUJCUVVIQXdFR0NDc0dBUVVGQndNQ01BOEdBMVVkRXdFQi93UUZNQU1CQWY4dwpIUVlEVlIwT0JCWUVGR25zNytPbVVhOGF3OWlWWGtwbTkxRkUrR0JwTUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDCklRRHZlUUxabStXakZxWEtQK2paQ3RkYW9WdXJZcFdDQVdtWTBIWC8zRlFLMndJZ1pxcEVTdXVIM2p4UmgybzUKYUFvNmxKdUJuT3FUSFI5aXNQNUZmTlBySVdJPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
key: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUM5bUtnSlM2bUIyN1g5dVVyd2QwaEIyUldndjc5RHVjWmZOWTFEYk12SFNvQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFSXZPUXhJaXBRSTF5a05jRitIbkFOM1Yzb3AveDFBNEJDeGdtaS9BZVdrVml4bHkrK3p6TQpUR215bU5MRGFycXhrNi9LRzVKUkVQbit1SDh2WXNVK2d3PT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=
k8sserviceaccount:
key: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUxFY1o0S1Jmbm9FakFuZjhBdzVrKytaZ3FuUGVlT3ZtRi9qeStTb0UwUm5vQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFQUE4SGg0Y1dBT1orc00wRzFnSkZuS091Zy9aVHJ5MlZMaEJ1QUJXWTJsdGFKWnRMRnZQWQptT1lQMzNPTGpLNVpTLzZwNEVsWDUvbms3cW4xd0V6S3R3PT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=
os:
crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJQakNCOGFBREFnRUNBaEFZeEhKUDdlSlJRN2lqZUFSdWhLTlpNQVVHQXl0bGNEQVFNUTR3REFZRFZRUUsKRXdWMFlXeHZjekFlRncweU16QTVNVEl5TVRBeU1qSmFGdzB6TXpBNU1Ea3lNVEF5TWpKYU1CQXhEakFNQmdOVgpCQW9UQlhSaGJHOXpNQ293QlFZREsyVndBeUVBNE1CTW81d2JVZjcwYnRjRm84R3Y0b01QelFicXZsOUQ4Tk8vCkRSOHZ6SkdqWVRCZk1BNEdBMVVkRHdFQi93UUVBd0lDaERBZEJnTlZIU1VFRmpBVUJnZ3JCZ0VGQlFjREFRWUkKS3dZQkJRVUhBd0l3RHdZRFZSMFRBUUgvQkFVd0F3RUIvekFkQmdOVkhRNEVGZ1FVVkhBVTFRaTNQM2x1Q2JqZgp4SG5QaEpiKzBhWXdCUVlESzJWd0EwRUFsdk1GOUs3VUVSeDZlNTRJbUk2UVRaem83Mzc5Zzdnd0VsajBqTWpDClJoL2NmT2M4YzhUTkpSM2RDWU5oS1ZDUy9FYzV4U1JXRWVDR3J1NTBxbG81RGc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
key: LS0tLS1CRUdJTiBFRDI1NTE5IFBSSVZBVEUgS0VZLS0tLS0KTUM0Q0FRQXdCUVlESzJWd0JDSUVJT0lIOXZobFIvY3JzamtNOUwwUG5CekhqS0R2eVBhbXhQbHJtTnJ2NDdJZgotLS0tLUVORCBFRDI1NTE5IFBSSVZBVEUgS0VZLS0tLS0K

talosconfig:
ca: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJQakNCOGFBREFnRUNBaEFZeEhKUDdlSlJRN2lqZUFSdWhLTlpNQVVHQXl0bGNEQVFNUTR3REFZRFZRUUsKRXdWMFlXeHZjekFlRncweU16QTVNVEl5TVRBeU1qSmFGdzB6TXpBNU1Ea3lNVEF5TWpKYU1CQXhEakFNQmdOVgpCQW9UQlhSaGJHOXpNQ293QlFZREsyVndBeUVBNE1CTW81d2JVZjcwYnRjRm84R3Y0b01QelFicXZsOUQ4Tk8vCkRSOHZ6SkdqWVRCZk1BNEdBMVVkRHdFQi93UUVBd0lDaERBZEJnTlZIU1VFRmpBVUJnZ3JCZ0VGQlFjREFRWUkKS3dZQkJRVUhBd0l3RHdZRFZSMFRBUUgvQkFVd0F3RUIvekFkQmdOVkhRNEVGZ1FVVkhBVTFRaTNQM2x1Q2JqZgp4SG5QaEpiKzBhWXdCUVlESzJWd0EwRUFsdk1GOUs3VUVSeDZlNTRJbUk2UVRaem83Mzc5Zzdnd0VsajBqTWpDClJoL2NmT2M4YzhUTkpSM2RDWU5oS1ZDUy9FYzV4U1JXRWVDR3J1NTBxbG81RGc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJLVENCM0tBREFnRUNBaEVBLzZ3cmtxODVPQnVTRzBhb0s0WXNFekFGQmdNclpYQXdFREVPTUF3R0ExVUUKQ2hNRmRHRnNiM013SGhjTk1qTXdPVEV5TWpFd09ESTVXaGNOTXpNd09UQTVNakV3T0RJNVdqQVRNUkV3RHdZRApWUVFLRXdodmN6cGhaRzFwYmpBcU1BVUdBeXRsY0FNaEFLbDlEYjlybmEycXcyWnV5RDl5ZHYzYTJ2TFFYWTg3CnRYUm1IblVtTmxJaW8wZ3dSakFPQmdOVkhROEJBZjhFQkFNQ0I0QXdFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUgKQXdJd0h3WURWUjBqQkJnd0ZvQVVWSEFVMVFpM1AzbHVDYmpmeEhuUGhKYiswYVl3QlFZREsyVndBMEVBUFUrMApLeWRGYmhNK3F6YUtXdStRTXNWSnd2T2YrbU1QQmpSOGovSXVJdmI1QmdTRzdlQjhlUGtRbjNYTW1rbEtwUVZECkZRVWlRRklUOXJjak42TTJBQT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
key: LS0tLS1CRUdJTiBFRDI1NTE5IFBSSVZBVEUgS0VZLS0tLS0KTUM0Q0FRQXdCUVlESzJWd0JDSUVJQmtKR3JmT3FubWtzcExlRUdvNUdXTnhtS3V2QUtQVFgwYUxEY0pLMTFlUQotLS0tLUVORCBFRDI1NTE5IFBSSVZBVEUgS0VZLS0tLS0K

images:
installer: ghcr.io/siderolabs/installer:v1.5.2
kubelet: ghcr.io/siderolabs/kubelet:v1.27.2
api-server: registry.k8s.io/kube-apiserver:v1.27.2
kube-controller-manager: registry.k8s.io/kube-controller-manager:v1.27.2
kube-proxy: registry.k8s.io/kube-proxy:v1.27.2
kube-scheduler: registry.k8s.io/kube-scheduler:v1.27.2

templates:
# m1:
# template: talos-1.4.5-cp-static
# hostname: k-test-m1
# ip: 10.171.120.151/24
# gateway: 10.171.120.254
# vip: 10.171.120.150
# m2:
# template: talos-1.4.5-cp-static
# hostname: k-test-m2
# ip: 10.171.120.152/24
# gateway: 10.171.120.254
# vip: 10.171.120.150
# m3:
# template: talos-1.4.5-cp-static
# hostname: k-test-m3
# ip: 10.171.120.153/24
# gateway: 10.171.120.254
# vip: 10.171.120.150
cp:
template: talos-1.5.2-cp-dhcp
vip: 10.171.123.150
workers:
template: talos-1.5.2-worker-dhcp

machines:
# m1:
# host: 10.171.120.151
# template: m1
# bootstrap: true
# protected: false
# params:
# - key: p1
# value: v1
# m2:
# host: 10.171.120.152
# template: m2
# protected: false
# params:
# - key: p1
# value: v1
# m3:
# host: 10.171.120.153
# template: m3
# protected: false
# params:
# - key: p1
# value: v1
# w1:
# host: 10.171.120.154
# template: workers
# params:
# - key: p1
# value: v1

machineSelectors:
k-test-cp:
template: cp
params:
- key: token
value: "^welcome123$"
- key: role
value: "^cp$"
- key: host
value: '^10\.171\.123\.\d{1,3}$'
k-test-workers:
template: workers
params:
- key: token
value: "^welcome123$"
- key: role
value: "^worker$"
- key: host
value: '^10\.171\.123\.\d{1,3}$'
Loading

0 comments on commit 821c893

Please sign in to comment.