localflux #1

Merged
schreibe72 merged 9 commits from localflux into main 2022-02-17 22:36:28 +00:00
37 changed files with 7208 additions and 0 deletions
Showing only changes of commit fb28ba64bd - Show all commits
+4
View File
@@ -0,0 +1,4 @@
creation_rules:
- path_regex: .*\/k3d-develop\/.*.yaml
encrypted_regex: ^(data|stringData)$
age: age13hzmc9qhn82epztchgdfu5zvxkeecun4v5yxl2ma2a4kndqace7qgje450
@@ -0,0 +1,17 @@
---
apiVersion: kustomize.toolkit.fluxcd.io/v1beta1
kind: Kustomization
metadata:
name: kustomization
namespace: default
spec:
decryption:
provider: sops
interval: 5m0s
path: ./flux/clusters/eks-cluster-name
prune: true
serviceAccountName: deploy
sourceRef:
kind: GitRepository
name: source
validation: client
@@ -0,0 +1,12 @@
---
apiVersion: v1
kind: LimitRange
metadata:
name: default-memory-limit
spec:
limits:
- default:
memory: 256Mi
defaultRequest:
memory: 256Mi
type: Container
+13
View File
@@ -0,0 +1,13 @@
---
apiVersion: source.toolkit.fluxcd.io/v1beta1
kind: GitRepository
metadata:
name: source
namespace: default
spec:
interval: 1m0s
ref:
branch: main
url: ssh://git@github.com/sueddeutsche/demo-flux-echoserver.git
secretRef:
name: GITHUB-SSH-TOKEN
@@ -0,0 +1,14 @@
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: deploy-rolebinding
namespace: default
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: edit
subjects:
- kind: ServiceAccount
name: deploy
namespace: default
@@ -0,0 +1,6 @@
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: deploy
namespace: default
+10
View File
@@ -0,0 +1,10 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- default-kustomization.yaml
- default-memory-limit.yaml
- default-source.yaml
- deploy-serviceaccount.yaml
- deploy-rolebinding.yaml
- namespace.yaml
+5
View File
@@ -0,0 +1,5 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: default
+2
View File
@@ -0,0 +1,2 @@
export KUBECONFIG=$(cd ../../../kubeconfigs; pwd -P)/k3d-develop.yaml
export SOPS_AGE_KEY_FILE=$(pwd)/../../../local-k8s/keys/age.agekey
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,37 @@
---
apiVersion: source.toolkit.fluxcd.io/v1beta1
kind: GitRepository
metadata:
name: flux-system
namespace: flux-system
spec:
interval: 1m0s
ref:
branch: add_local_development_env
secretRef:
name: local-git-secret
timeout: 20s
url: ssh://git@local-git.local-git.svc.cluster.local:2222/srv/git/local-flux.git
---
apiVersion: kustomize.toolkit.fluxcd.io/v1beta2
kind: Kustomization
metadata:
name: flux-system
namespace: flux-system
spec:
decryption:
provider: sops
secretRef:
name: age-key-secret
interval: 1m0s
path: ./flux/clusters/k3d-develop
prune: true
sourceRef:
kind: GitRepository
name: flux-system
postBuild:
substitute:
eks_cluster_name: "k3d-develop"
aws_account_id: "000000000000"
environment: "local"
zone: "local"
+15
View File
@@ -0,0 +1,15 @@
#!/bin/bash
export WORKDIR=$(dirname $0)
cd $WORKDIR
kubectl apply -n flux-system -f flux-components.yaml
sops exec-file local-git-secret.yaml "kubectl apply -n flux-system -f {}"
kubectl create secret -n flux-system generic age-key-secret --from-file age.agekey=../../../../local-k8s/keys/age.agekey --dry-run=client -o yaml | kubectl apply -f-
kubectl apply -n flux-system -f flux-sync.yaml
flux reconcile source git -n flux-system flux-system
cd -
@@ -0,0 +1,11 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
# we need dedicated 'flux-components.yaml' in each cluster - otherwise a flux-system update in one cluster
# would be populated to all clusters
- flux-components.yaml
- flux-sync.yaml
- local-git-secret.yaml
namespace: flux-system
@@ -0,0 +1,28 @@
apiVersion: v1
data:
identity: ENC[AES256_GCM,data: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,iv:LveWuvKKB2aGyYnSCyGi8eQTgCS4KQnC7ikKbMBgtcA=,tag:Iuf7weGuGmoZIWQbRQp41A==,type:str]
identity.pub: ENC[AES256_GCM,data:O8z9eT/y9ZP5SAEzma6bWHJ7+9NCzr3g0slfEAHXJHqrzZzYZuiFyXVtJ2V+P25f9noB2fgwI0YdY4mYRP0iaJIhxLRtwmCpBcntzTsiI29INq1i/uzgKO/q5BXe+B9IkUr92BrhiEEMeHGuYwgmvGMyO1GOnTTARorlyuT9TZ9X86iIU7FomvjjJSQ4Px3IkrLiQDdLMugC/j+edEzcLv2bnxAUJa9Tu4lWrRhtqwvn6y8WhhKNbkhg3cJxwnhwG+GwU1a3dD25onEW5tyQoiwZUt1L6ZipPUcXkgZSdWdl8XQEDcNPmrXs3eOrVuJbXcoEOb2fjXhGMDDS+ayIxrF9RgAutbE25d4U1Rl0c2wgwZQiPSU3k63vhuSsJW1hBe3Fqe+nItZBiMZD3sBPKIjzvwXLSFzecBSFsfTsz1Ec4/YZvvLJsovBuQpE5YRotrAXJvN/BLF1rQ9RZkVAAGEgKMC4F62phg/aLfZTkNGg0Lmb2LywRZjTTSw+Z2eIx1vstMc30iPmSW/ZON8cVMdSuLk5QW1UbVG1d+Afq9lxWYj+8+JYmoQ3GnIgWEvueJrhvu3XJbb1ecDEnz256dRSHFeveaez3wvaa9gorC15zajsHjGXmBUExvlWOmgx/j67+axxAXxS35kXNz+WxopIEPZ9+vP02YDZGEGuIp73gfKvcgERkhMfVdNBgs8pQQOoQvmPrbZqgTblJEyl1PqUmpMTYLQnYVpDIFIHdnPI3wqSZf71J3fRdZnhkdz979VwtN6dsfV83CS+swubOUmay7jnDXeZkvpYSA3LXGp2dhQhOqV1XSwX/AarrsTBi4hsYjVvcmmMx8LOg/fuZ6b25VIHLENuyMXKRio0YDzYio4glpMx4wDNjzV6jG5dKdZaJvN8qlssADesCJijhLNFVfddXEL3pRspzF796oNsaRCUCfkYyNuUXuqWHckDsV18be9GUYgcfQQW5q1biDvkHN7ibEFIsgFc4SP7Y1RGC0Vti1TMLA==,iv:SOhYWsn/xpBr4rHPCxkw1tAJkbvzcKOHcXzqKhz8naQ=,tag:qKzpeJnpvFOjFDDWVFf9jw==,type:str]
known_hosts: ENC[AES256_GCM,data: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,iv:4INynJi4WzhOkH6HRXLksfKx7DiGlgxTAxOXG2PAE8w=,tag:/rkaPHyvl8jmsbl8WliU+g==,type:str]
kind: Secret
metadata:
name: local-git-secret
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age13hzmc9qhn82epztchgdfu5zvxkeecun4v5yxl2ma2a4kndqace7qgje450
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnUjJqM2RUYUJjTUZKdDZS
ZERxMkora1NELzI2dFB5RklNL0s5akV1TW5ZCi9OamVrWmpXbkUrWDlTeEc1emha
d1FKbVAyUU1BTFpEaFY0OUpFVDBjQUkKLS0tIG1yTms1cDFyTW9oWFVDSTdOVEhy
djRHY1VyNjdhUmtZcDlVeCtBWlRYMXMKSK7RaZaSBRBfw398JvCHzD+IuQymF2u5
HfP4ZQQ2yCm3Io0HkuluCfdbRG48C6caL3hSipD/rsaPdapy7qVfhA==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2022-02-16T23:06:34Z"
mac: ENC[AES256_GCM,data:3Co3XJ/4hfGzdxniq3wycxO3CGLmGFvBPdxEkg3DjsIMpife9XkWPBLIGlgDZBkhdXGw4WYA/ZEiQh+PN5/wm9R3Ii7b1n6W3/wsXbqmKke6VpZsZTLcM2uxuxGaU50VK4WwkF0KRBKbWiSOlSH76LUKz2RNkrPsO4YZ9i6OxgM=,iv:6kqVrwAzuoK2uYLMMEExlM0Zq3vcQJLxitmSx+7uuVY=,tag:hm5og5i58u35YPoXWcUkqQ==,type:str]
pgp: []
encrypted_regex: ^(data|stringData)$
version: 3.7.1
+20
View File
@@ -0,0 +1,20 @@
---
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJkekNDQVIyZ0F3SUJBZ0lCQURBS0JnZ3Foa2pPUFFRREFqQWpNU0V3SHdZRFZRUUREQmhyTTNNdGMyVnkKZG1WeUxXTmhRREUyTkRVeE16QTFNREF3SGhjTk1qSXdNakUzTWpBME1UUXdXaGNOTXpJd01qRTFNakEwTVRRdwpXakFqTVNFd0h3WURWUVFEREJock0zTXRjMlZ5ZG1WeUxXTmhRREUyTkRVeE16QTFNREF3V1RBVEJnY3Foa2pPClBRSUJCZ2dxaGtqT1BRTUJCd05DQUFUL1JqRDlodGdsN25NT3ZkRVhKdnpkbTJUZUE3cmhOZjhpUjVGL00wT3IKTngwa1FlSUNoVUJqdXQ0bTJwQ2JpRnFhdU1Fak1pZzdNS0dPUWZobFVTeUNvMEl3UURBT0JnTlZIUThCQWY4RQpCQU1DQXFRd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBZEJnTlZIUTRFRmdRVU1sOGxGVHhhbEVlbEtNRHdqM1pTCkx6MEpqU3N3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQUlsTDhnMHRsbit1eGd4SnZsK254T0pDVVo3RDM2ZWYKcmpFbWdEZEVocGc4QWlCTytvb3dXalJGNkVrZElNTUN2ME5HeVg0TXBzb3N3cnJ4WHluc2RlOHBpZz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
server: https://0.0.0.0:56008
name: k3d-develop
contexts:
- context:
cluster: k3d-develop
user: admin@k3d-develop
name: k3d-develop
current-context: k3d-develop
kind: Config
preferences: {}
users:
- name: admin@k3d-develop
user:
client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJrVENDQVRlZ0F3SUJBZ0lJQXdhc2R4OWFBQWN3Q2dZSUtvWkl6ajBFQXdJd0l6RWhNQjhHQTFVRUF3d1kKYXpOekxXTnNhV1Z1ZEMxallVQXhOalExTVRNd05UQXdNQjRYRFRJeU1ESXhOekl3TkRFME1Gb1hEVEl6TURJeApOekl3TkRFME1Gb3dNREVYTUJVR0ExVUVDaE1PYzNsemRHVnRPbTFoYzNSbGNuTXhGVEFUQmdOVkJBTVRESE41CmMzUmxiVHBoWkcxcGJqQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJNUzNaMlRLZGVPNUozSGoKS25XQUZwOUpreUVvQVRjWDJ3M1BDbXc4WGgrdHR6dXc4aEtQYUcxbHpNSkNSSzRDdHlBaG01T2VsZkFXL3IyeAo4V0R1S08yalNEQkdNQTRHQTFVZER3RUIvd1FFQXdJRm9EQVRCZ05WSFNVRUREQUtCZ2dyQmdFRkJRY0RBakFmCkJnTlZIU01FR0RBV2dCUUljZmhUTXdNUVpMa2JYTzhrNzErL3FMbWdJekFLQmdncWhrak9QUVFEQWdOSUFEQkYKQWlFQTVrbWRWcDRHcVpYYkNIdTJHQ0o5b2FkY1BkUGlZZEQyVDRYbGdXSEdjVndDSUV1ZEQ4b1VHWjEwSmxLbwpwQmh3QUlOUTdjTkVzUEZaYnN5SndHOWl1aHlCCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJkakNDQVIyZ0F3SUJBZ0lCQURBS0JnZ3Foa2pPUFFRREFqQWpNU0V3SHdZRFZRUUREQmhyTTNNdFkyeHAKWlc1MExXTmhRREUyTkRVeE16QTFNREF3SGhjTk1qSXdNakUzTWpBME1UUXdXaGNOTXpJd01qRTFNakEwTVRRdwpXakFqTVNFd0h3WURWUVFEREJock0zTXRZMnhwWlc1MExXTmhRREUyTkRVeE16QTFNREF3V1RBVEJnY3Foa2pPClBRSUJCZ2dxaGtqT1BRTUJCd05DQUFRRTBsQklIeS9FNnQrYzhNM3N4QU8vcmh1T2VJNVJjbVI4VVI1SmpKNjIKQVY2N2NaRkJrQjdsckJMTUlkNndzTmwrOXpaMEpQTzJiNndrMEsyMUhDdDdvMEl3UURBT0JnTlZIUThCQWY4RQpCQU1DQXFRd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBZEJnTlZIUTRFRmdRVUNISDRVek1ERUdTNUcxenZKTzlmCnY2aTVvQ013Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnWDRCdTI1S1dMWDBYeXV5R3NldE9VNjNmc0RCcWphVmsKYjZpQ2pkeDNNOXNDSUFJSlFEQnRXd0ZVdTNKN282dDNoK0plMlA3SGVwRkN5ajkvMUhhSUxkSmkKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
client-key-data: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUM3Q0hJOFJjVHdNSHFHenRGcndHZGFMYkZEVDZVVTFkMXhSdGR0NEZvT3RvQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFeExkblpNcDE0N2tuY2VNcWRZQVduMG1USVNnQk54ZmJEYzhLYkR4ZUg2MjNPN0R5RW85bwpiV1hNd2tKRXJnSzNJQ0diazU2VjhCYit2Ykh4WU80bzdRPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=
+16
View File
@@ -0,0 +1,16 @@
apiVersion: k3d.io/v1alpha3
kind: Simple
name: develop
ports:
- port: 8080:80
nodeFilters:
- loadbalancer
- port: 2222:2222
nodeFilters:
- loadbalancer
options:
k3s:
extraArgs:
- arg: --no-deploy=traefik
nodeFilters:
- server:*
+3
View File
@@ -0,0 +1,3 @@
# created: 2022-02-17T00:06:34+01:00
# public key: age13hzmc9qhn82epztchgdfu5zvxkeecun4v5yxl2ma2a4kndqace7qgje450
AGE-SECRET-KEY-1WTT2LNRAF6H0C8PY6WDK2CENUVW9SVAUC3LLCSM46XPK3F40XZJSJGDXUV
+38
View File
@@ -0,0 +1,38 @@
-----BEGIN OPENSSH PRIVATE KEY-----
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
-----END OPENSSH PRIVATE KEY-----
+1
View File
@@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCdOoYmIa0ym9Gqu2T7ThOhf+cZ+45Xb5wEk7IbeNh+Fb/6NcHHlKZOb/9Obl3/3A6PpHLRIC/E5RdUfNgCEgjhoxIB6tgH7l9hk+pWtWB/ETB0xbqzddCG2rnLRSHviJuItUYOaStH2iAGaur0gZMLtjnT6+lAaRsR2bFw0gJeuOJtHZWCrvdnYcvFseLCG6ZIs2sLEY2DgyLBerjNtEZrI/4W3i/1sxwFl8co6HYI6l/dwhzwzSAPbDQUdZpYvElm3lEvKR27wzpQBQOU447x47jcEaACdTPArZAaIehh+SDEasjgg69lxl89S+TC8e/Bl2VJa8vPZkylAgu60hUsxHvFqWI3zsznBmQAOe4ePyeCoSJ8bQnObZI5S6ucUmMn/YwKoHbtOKa1aaXz+AlXdI2E2gcaHd64uuZEzWNS8TyK7qYCdR7KLmkm0JxK1Vb2iJKPkhC9673YwTqZvAtj2Xy1tXidD3zmb779Ip2ejKDA5NUk8cckEkB54zngcMU= development@key
+4
View File
@@ -0,0 +1,4 @@
[local-git.local-git.svc.cluster.local]:2222 ssh-dss AAAAB3NzaC1kc3MAAACBALsXz3kkVkhjVjmfZGzGufMNn4tHk6QLxuOfkZquRaSFC5cQiZ07rBLQo3v1f0c/82i7WJ8GeXC1IlR8NCacpiLFZ8HHWEFi3RH5XxBDJ/BKdq09eUNiqNwGNHanlT4MgYTjvOW4pWvxbYVxy4igOyOH5XwgFx2hUYersqKB0awTAAAAFQCXyqTDEXvvHYLGz3JT48CiFj/xUwAAAIEAm5LLEw0URe5FOgA6yxfbZ+YcR/vrwzLWfVWrFDVM01eVkvowQoFGpbMoxfBpwI6fYclG8qUG/zYstaaWzNcfeLaAlHfzHKvYndw+w2d7PkAUxRBw+aqbDw6rRE6mAyVSialIPIMuNm56WqMtnaMLCGqWw6CPRmF/tRGjztwNP1UAAACAZYv0I1u9fH+EYetvCe07wrzcTSpNF/Smn805/aZlyuiCl4cyjBo/k3LHoP2nx860LSN9nawEGVWO2YjqXU6b/jfu1jZ/lN9lUC05oqVp+fZRIM2dgrhBbTO2aenINykPW1dPIf3vGMqRhp5lVgEoL6gMhOiSQB/2Q5yNNl4Y06Q=
[local-git.local-git.svc.cluster.local]:2222 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC8pTwwGSERWAeStBH5CLRE7rF+kRjM/Qmk3e5tqLr0PEDD06nClABL0ZGlnI3TTILT0uTNquK9Ei0hfXhpiVcPVb8zqZ85MbiHYM027W+/09ZkpQmNF7yh+L46WRBR3J5G+k6g84FwyM3L+wgqELchhiiCR2liSdSExIBId43oNraxCsfyOGjLGzVhXLxt2ZWu6sc/CKyqMjpKrO3zpBuSnji1hGfk9+udpQAJxxK3Hv1diH/NtuxjPelWclIwB54vsnCiUX1DgKZY/u2i8WuusIihJhLt6RB00oYY1IDCVcGgiPg3mEmh4u5Kiv5KFYBTIOv7pkxOMVkxtbFSO9+B
[local-git.local-git.svc.cluster.local]:2222 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIVvv1GwrkC/rxOQWKuPyiXWsPjvahWWTicwkfNE+6I2wBO9PMI285FO7TlRdFqYtub/cjonOLG0qT8oUHcAIk8=
[local-git.local-git.svc.cluster.local]:2222 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID79FCNdT1ppKiNXCabO3lIESDjsI2aic550ibcxooJ1
+8
View File
@@ -0,0 +1,8 @@
apiVersion: v1
data:
identity: LS0tLS1CRUdJTiBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0KYjNCbGJuTnphQzFyWlhrdGRqRUFBQUFBQkc1dmJtVUFBQUFFYm05dVpRQUFBQUFBQUFBQkFBQUJsd0FBQUFkemMyZ3RjbgpOaEFBQUFBd0VBQVFBQUFZRUFuVHFHSmlHdE1wdlJxcnRrKzA0VG9YL25HZnVPVjIrY0JKT3lHM2pZZmhXLytqWEJ4NVNtClRtLy9UbTVkLzl3T2o2UnkwU0F2eE9VWFZIellBaElJNGFNU0FlcllCKzVmWVpQcVZyVmdmeEV3ZE1XNnMzWFFodHE1eTAKVWg3NGliaUxWR0Rta3JSOW9nQm1ycTlJR1RDN1k1MCt2cFFHa2JFZG14Y05JQ1hyamliUjJWZ3E3M1oySEx4Ykhpd2h1bQpTTE5yQ3hHTmc0TWl3WHE0emJSR2F5UCtGdDR2OWJNY0JaZkhLT2gyQ09wZjNjSWM4TTBnRDJ3MEZIV2FXTHhKWnQ1Ukx5CmtkdThNNlVBVURsT09POGVPNDNCR2dBblV6d0syUUdpSG9ZZmtneEdySTRJT3ZaY1pmUFV2a3d2SHZ3WmRsU1d2THoyWk0KcFFJTHV0SVZMTVI3eGFsaU44N001d1prQURudUhqOG5ncUVpZkcwSnptMlNPVXVybkZKakovMk1DcUIyN1RpbXRXbWw4LwpnSlYzU05oTm9IR2gzZXVMcm1STTFqVXZFOGl1Nm1BblVleWk1cEp0Q2NTdFZXOW9pU2o1SVF2ZXU5Mk1FNm1id0xZOWw4CnRiVjRuUTk4NW0rKy9TS2Rub3lnd09UVkpQSEhKQkpBZWVNNTRIREZBQUFGaUNxdEVXY3FyUkZuQUFBQUIzTnphQzF5YzIKRUFBQUdCQUowNmhpWWhyVEtiMGFxN1pQdE9FNkYvNXhuN2psZHZuQVNUc2h0NDJINFZ2L28xd2NlVXBrNXYvMDV1WGYvYwpEbytrY3RFZ0w4VGxGMVI4MkFJU0NPR2pFZ0hxMkFmdVgyR1Q2bGExWUg4Uk1IVEZ1ck4xMEliYXVjdEZJZStJbTRpMVJnCjVwSzBmYUlBWnE2dlNCa3d1Mk9kUHI2VUJwR3hIWnNYRFNBbDY0NG0wZGxZS3U5MmRoeThXeDRzSWJwa2l6YXdzUmpZT0QKSXNGNnVNMjBSbXNqL2hiZUwvV3pIQVdYeHlqb2RnanFYOTNDSFBETklBOXNOQlIxbWxpOFNXYmVVUzhwSGJ2RE9sQUZBNQpUamp2SGp1TndSb0FKMU04Q3RrQm9oNkdINUlNUnF5T0NEcjJYR1h6MUw1TUx4NzhHWFpVbHJ5ODltVEtVQ0M3clNGU3pFCmU4V3BZamZPek9jR1pBQTU3aDQvSjRLaElueHRDYzV0a2psTHE1eFNZeWY5akFxZ2R1MDRwclZwcGZQNENWZDBqWVRhQngKb2Qzcmk2NWtUTlkxTHhQSXJ1cGdKMUhzb3VhU2JRbkVyVlZ2YUlrbytTRUwzcnZkakJPcG04QzJQWmZMVzFlSjBQZk9adgp2djBpblo2TW9NRGsxU1R4eHlRU1FIbmpPZUJ3eFFBQUFBTUJBQUVBQUFHQkFJNm9zMStWM3RpMG1TRVl0eDl1VUZHUkE5CmVIY0RmVmhQS0NNSERNeldKWnliNzFWOFlIRW43SkVCWFIvbWhRK3NWS3FRTW0rVERseksxVU9ZcG5ZcmVZaHBaR3g0MHEKdEZDTkxXdFBWeWIwS2N0S1BZVG51VFVpOE1HSEVLdU9mOUVpNlZYYUJ2TkM3eHZqbHh3VEZhRGl6c1dDb0RsWkpMNmxqMgpLV3FwL1hrVnNBSk5CV2dSVEVuMmZaWjY1SCtEQ3Uyc2xJTythLzdhRXdBTTVrYkNCNm4rbVA0R1JIQjMzcm9VRjA2dVJjCkJHL3AyT2lFdGpwSUsxa0UrKzdYcHpYMVZRb1RzM2ZmSFlodmJvMTRnNDJOSGNmTElCbGRtaGNmbnMxN0pVUStpZmI4a3kKWjg5bzlKUWpHYTZ2THljNWdhSTNYTmxaL0xlWEZjYkJLU3R3YnQ5cFF2QVdrbmUxaWllMEorTFI3b0tvUzhsVXE0NjA5VAo2TXlFRmU4Y0g4d29TNWFoRDJwUmd3V0pmSjgzTVV5dlBvS01BbFA2dXZ5c2hpQVFqaUhFMkkyVnRpb0F2TGJDamhKMDQzCkZ5a0xMSzBvc2FsT0dhOUFNQnJLLzNHeEJnS0c0L1Y4MlN2TTNYZFdpS1B3ZEdaSFdoMG1sOTY0ZkpXRjducDVmeEFRQUEKQU1CY1hIRzM0WDJ5VFZrR0xRbHU2TyttakREcGJHSHlUUkpMTzdRbHNjV2d5YVdIQ2lud0U1YnVRbkY1UzZoK05LZXpuUApGNmhlK1JLdHdDM3ArcHE4T0I0ZDFZeFl5OGdNOWdRMDNnaStLL1Y4K2l2NHd2ZG4vTlFFUXU5WGhpMDhOeDMzSDF5YWFMCnZGSFA3blVadHQxMXNFVkd3L2RlVVU1SklNOVp2QXZrZTgyU1drRUtCUy9EcnpqcXc1cUJRd21XQ0ROZkJ2NXdMWmRJcE0KQ1ZENC9BSEt1NGk2TkoyckhwSFEzcU5FMUI1NmJGY0E3M3B4d20vbmhJaGVMU2Z0UUFBQURCQU04V3Q2ajVhSUJmOWlObgpPbUd5ZldvRlhjSEYzRGh1R2FBNFl3UVkrSkFNdkZVRlVkd3lEL2xJSjRBSUVpVGZtNkwvQXZneWt6OWdKZ1Vqc1Vka0VECmFrcmR0WjJyQUlRblRqeFl2MzZKTEh1TkFyWStKcmxzbC9CQW1Ia056TXZHdXZWVStoS2NOVERYVnk1SGx0REs5d0VaMnkKYkh2dTNIZENCbG4wc1U0NTJsT1pwUGJldU1kUmZ6UlF1Ym5Mems3dEhzNUNrbzMxbWg3dDU1cEZBNzRGK3RSRi8vanMwQwp1ei9vaGcxejFBdld1b2dkRFlicVVremk3UmR1UUxqUUFBQU1FQXdsMFlYM2l5OFlqOWlhZVNVSGgxMU02UlNxNkI4L3lkCit5YVhOaGRTUVVvTGpiWHh3RjNDT2JGK2VBUTVtdkxiRlRQZXJ4cnV1M3ZkYXFISVcwSGt3SU0yT2xQWVN6bHplU0xYNFYKeGU1YmF4eEYrRmQ0bTAxY0JFSXZlbThaY203SHp6aW1wYVBKZ20rb3U4LzVKMVd2aDhHaFVFNy9XUXowU1V5Q0szaE52SApIaW5EdFFIdHg2Q24zaXFuRDBXb2w4aWRwUEdKdFFIL1hXNGpTa0Vtcm13dVRKVVcxNHVBdnVxM0gyRVJBZFpLVkNRVUx4CkxRa1NrSFdsT2VqSkFaQUFBQUQyUmxkbVZzYjNCdFpXNTBRR3RsZVFFQ0F3PT0KLS0tLS1FTkQgT1BFTlNTSCBQUklWQVRFIEtFWS0tLS0tCg==
identity.pub: c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFCZ1FDZE9vWW1JYTB5bTlHcXUyVDdUaE9oZitjWis0NVhiNXdFazdJYmVOaCtGYi82TmNISGxLWk9iLzlPYmwzLzNBNlBwSExSSUMvRTVSZFVmTmdDRWdqaG94SUI2dGdIN2w5aGsrcFd0V0IvRVRCMHhicXpkZENHMnJuTFJTSHZpSnVJdFVZT2FTdEgyaUFHYXVyMGdaTUx0am5UNitsQWFSc1IyYkZ3MGdKZXVPSnRIWldDcnZkblljdkZzZUxDRzZaSXMyc0xFWTJEZ3lMQmVyak50RVpySS80VzNpLzFzeHdGbDhjbzZIWUk2bC9kd2h6d3pTQVBiRFFVZFpwWXZFbG0zbEV2S1IyN3d6cFFCUU9VNDQ3eDQ3amNFYUFDZFRQQXJaQWFJZWhoK1NERWFzamdnNjlseGw4OVMrVEM4ZS9CbDJWSmE4dlBaa3lsQWd1NjBoVXN4SHZGcVdJM3pzem5CbVFBT2U0ZVB5ZUNvU0o4YlFuT2JaSTVTNnVjVW1Nbi9Zd0tvSGJ0T0thMWFhWHorQWxYZEkyRTJnY2FIZDY0dXVaRXpXTlM4VHlLN3FZQ2RSN0tMbWttMEp4SzFWYjJpSktQa2hDOTY3M1l3VHFadkF0ajJYeTF0WGlkRDN6bWI3NzlJcDJlaktEQTVOVWs4Y2NrRWtCNTR6bmdjTVU9IGRldmVsb3BtZW50QGtleQo=
known_hosts: W2xvY2FsLWdpdC5sb2NhbC1naXQuc3ZjLmNsdXN0ZXIubG9jYWxdOjIyMjIgc3NoLWRzcyBBQUFBQjNOemFDMWtjM01BQUFDQkFMc1h6M2trVmtoalZqbWZaR3pHdWZNTm40dEhrNlFMeHVPZmtacXVSYVNGQzVjUWlaMDdyQkxRbzN2MWYwYy84Mmk3V0o4R2VYQzFJbFI4TkNhY3BpTEZaOEhIV0VGaTNSSDVYeEJESi9CS2RxMDllVU5pcU53R05IYW5sVDRNZ1lUanZPVzRwV3Z4YllWeHk0aWdPeU9INVh3Z0Z4MmhVWWVyc3FLQjBhd1RBQUFBRlFDWHlxVERFWHZ2SFlMR3ozSlQ0OENpRmoveFV3QUFBSUVBbTVMTEV3MFVSZTVGT2dBNnl4ZmJaK1ljUi92cnd6TFdmVldyRkRWTTAxZVZrdm93UW9GR3BiTW94ZkJwd0k2ZlljbEc4cVVHL3pZc3RhYVd6TmNmZUxhQWxIZnpIS3ZZbmR3K3cyZDdQa0FVeFJCdythcWJEdzZyUkU2bUF5VlNpYWxJUElNdU5tNTZXcU10bmFNTENHcVd3NkNQUm1GL3RSR2p6dHdOUDFVQUFBQ0FaWXYwSTF1OWZIK0VZZXR2Q2UwN3dyemNUU3BORi9TbW44MDUvYVpseXVpQ2w0Y3lqQm8vazNMSG9QMm54ODYwTFNOOW5hd0VHVldPMllqcVhVNmIvamZ1MWpaL2xOOWxVQzA1b3FWcCtmWlJJTTJkZ3JoQmJUTzJhZW5JTnlrUFcxZFBJZjN2R01xUmhwNWxWZ0VvTDZnTWhPaVNRQi8yUTV5Tk5sNFkwNlE9Cltsb2NhbC1naXQubG9jYWwtZ2l0LnN2Yy5jbHVzdGVyLmxvY2FsXToyMjIyIHNzaC1yc2EgQUFBQUIzTnphQzF5YzJFQUFBQURBUUFCQUFBQkFRQzhwVHd3R1NFUldBZVN0Qkg1Q0xSRTdyRitrUmpNL1FtazNlNXRxTHIwUEVERDA2bkNsQUJMMFpHbG5JM1RUSUxUMHVUTnF1SzlFaTBoZlhocGlWY1BWYjh6cVo4NU1iaUhZTTAyN1crLzA5WmtwUW1ORjd5aCtMNDZXUkJSM0o1RytrNmc4NEZ3eU0zTCt3Z3FFTGNoaGlpQ1IybGlTZFNFeElCSWQ0M29OcmF4Q3NmeU9HakxHelZoWEx4dDJaV3U2c2MvQ0t5cU1qcEtyTzN6cEJ1U25qaTFoR2ZrOSt1ZHBRQUp4eEszSHYxZGlIL050dXhqUGVsV2NsSXdCNTR2c25DaVVYMURnS1pZL3UyaThXdXVzSWloSmhMdDZSQjAwb1lZMUlEQ1ZjR2dpUGczbUVtaDR1NUtpdjVLRllCVElPdjdwa3hPTVZreHRiRlNPOStCCltsb2NhbC1naXQubG9jYWwtZ2l0LnN2Yy5jbHVzdGVyLmxvY2FsXToyMjIyIGVjZHNhLXNoYTItbmlzdHAyNTYgQUFBQUUyVmpaSE5oTFhOb1lUSXRibWx6ZEhBeU5UWUFBQUFJYm1semRIQXlOVFlBQUFCQkJJVnZ2MUd3cmtDL3J4T1FXS3VQeWlYV3NQanZhaFdXVGljd2tmTkUrNkkyd0JPOVBNSTI4NUZPN1RsUmRGcVl0dWIvY2pvbk9MRzBxVDhvVUhjQUlrOD0KW2xvY2FsLWdpdC5sb2NhbC1naXQuc3ZjLmNsdXN0ZXIubG9jYWxdOjIyMjIgc3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUQ3OUZDTmRUMXBwS2lOWENhYk8zbElFU0Rqc0kyYWljNTUwaWJjeG9vSjEK
kind: Secret
metadata:
name: local-git-secret
+14
View File
@@ -0,0 +1,14 @@
#!/bin/bash
GITREPOS=("flux")
apk update
apk add git
rm /etc/motd
mkdir -p /srv/git
for repo in ${GITREPOS[@]}; do
mkdir -p /srv/git/${repo}.git
cd /srv/git/${repo}.git
git init --bare
done
chown -R git:git /srv/git
+42
View File
@@ -0,0 +1,42 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: local-git
name: local-git
spec:
replicas: 1
selector:
matchLabels:
app: local-git
template:
metadata:
labels:
app: local-git
spec:
containers:
- image: lscr.io/linuxserver/openssh-server:latest
name: local-git
envFrom:
- configMapRef:
name: ssh
ports:
- containerPort: 2222
resources:
limits:
memory: 100Mi
requests:
memory: 100Mi
volumeMounts:
- name: custom-cont-initd
mountPath: /config/custom-cont-init.d
- name: ssh-host-keys
mountPath: /config/ssh_host_keys
volumes:
- name: custom-cont-initd
configMap:
name: custom-cont-initd
- name: ssh-host-keys
configMap:
name: ssh-host-keys
+29
View File
@@ -0,0 +1,29 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: local-git
resources:
- namespace.yaml
- deployment.yaml
- service.yaml
configMapGenerator:
- name: ssh-host-keys
files:
- ssh_host_keys/ssh_host_dsa_key
- ssh_host_keys/ssh_host_ecdsa_key
- ssh_host_keys/ssh_host_ed25519_key
- ssh_host_keys/ssh_host_rsa_key
- ssh_host_keys/sshd_config
- ssh_host_keys/ssh_host_dsa_key.pub
- ssh_host_keys/ssh_host_ecdsa_key.pub
- ssh_host_keys/ssh_host_ed25519_key.pub
- ssh_host_keys/ssh_host_rsa_key.pub
- name: custom-cont-initd
files:
- custom-cont-init.d/init-git.sh
- name: ssh
literals:
- USER_NAME=git
- PUBLIC_KEY="ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDJRtmmvw07NlSNoNsIAaeBsBqrsULoZXo6JlTqOLPcJV9JDwVV3SzVUeNUGwHTNjdrI0Nx3Rzdd6BzXl0T48nrEpCFffjl3oWnhLOpPGWhyCw9n5VSA/Oin1Ah9wilhyjwlrIxsolT0+l6zLwdHdhKHu4tFQM+wzXb0T3Mcq1IqyS1IrNdRQP2WZL8bgi27onLVdxlYVJ/uIKg7qdJh2cCxDmFFaoK5zukNXj7ryL14P/W5Q8LzEgIzQQHokpkbluDGVQNGSi+dT4nqnQfu/iuZHqLvnbQZDaV5xjcgQLD2BGk83iNiuf82i1WxJA7qc83tN4/XE+px2FIT8CH+LqybG5BSGxK0h5kZZlPOQnwiWSEOphLwSB08hx26QJynLwzABWkuFVP/KPhwgAGpvOQzvMLxYR3LwHNcn17jL8qm+C8Vs2V+uEcSmxZVPxVx/38qerJ0m181N6HbYAzp0zdJnf/HFvF8RLplBrD+wpNWUS6SuMJ8qJOzsl9qovW6YU= develop-git"
+5
View File
@@ -0,0 +1,5 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: default
+12
View File
@@ -0,0 +1,12 @@
kind: Service
apiVersion: v1
metadata:
name: local-git
spec:
selector:
app: local-git
ports:
- protocol: TCP
port: 2222
targetPort: 2222
type: LoadBalancer
@@ -0,0 +1,21 @@
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABsgAAAAdzc2gtZH
NzAAAAgQC7F895JFZIY1Y5n2RsxrnzDZ+LR5OkC8bjn5GarkWkhQuXEImdO6wS0KN79X9H
P/Nou1ifBnlwtSJUfDQmnKYixWfBx1hBYt0R+V8QQyfwSnatPXlDYqjcBjR2p5U+DIGE47
zluKVr8W2FccuIoDsjh+V8IBcdoVGHq7KigdGsEwAAABUAl8qkwxF77x2Cxs9yU+PAohY/
8VMAAACBAJuSyxMNFEXuRToAOssX22fmHEf768My1n1VqxQ1TNNXlZL6MEKBRqWzKMXwac
COn2HJRvKlBv82LLWmlszXH3i2gJR38xyr2J3cPsNnez5AFMUQcPmqmw8Oq0ROpgMlUomp
SDyDLjZuelqjLZ2jCwhqlsOgj0Zhf7URo87cDT9VAAAAgGWL9CNbvXx/hGHrbwntO8K83E
0qTRf0pp/NOf2mZcrogpeHMowaP5Nyx6D9p8fOtC0jfZ2sBBlVjtmI6l1Om/437tY2f5Tf
ZVAtOaKlafn2USDNnYK4QW0ztmnpyDcpD1tXTyH97xjKkYaeZVYBKC+oDITokkAf9kOcjT
ZeGNOkAAAB8MfWTQ7H1k0OAAAAB3NzaC1kc3MAAACBALsXz3kkVkhjVjmfZGzGufMNn4tH
k6QLxuOfkZquRaSFC5cQiZ07rBLQo3v1f0c/82i7WJ8GeXC1IlR8NCacpiLFZ8HHWEFi3R
H5XxBDJ/BKdq09eUNiqNwGNHanlT4MgYTjvOW4pWvxbYVxy4igOyOH5XwgFx2hUYersqKB
0awTAAAAFQCXyqTDEXvvHYLGz3JT48CiFj/xUwAAAIEAm5LLEw0URe5FOgA6yxfbZ+YcR/
vrwzLWfVWrFDVM01eVkvowQoFGpbMoxfBpwI6fYclG8qUG/zYstaaWzNcfeLaAlHfzHKvY
ndw+w2d7PkAUxRBw+aqbDw6rRE6mAyVSialIPIMuNm56WqMtnaMLCGqWw6CPRmF/tRGjzt
wNP1UAAACAZYv0I1u9fH+EYetvCe07wrzcTSpNF/Smn805/aZlyuiCl4cyjBo/k3LHoP2n
x860LSN9nawEGVWO2YjqXU6b/jfu1jZ/lN9lUC05oqVp+fZRIM2dgrhBbTO2aenINykPW1
dPIf3vGMqRhp5lVgEoL6gMhOiSQB/2Q5yNNl4Y06QAAAAUTp9atwucnczOY50dtDITspvc
MhwAAAATcm9vdEBvcGVuc3NoLXNlcnZlcgECAwQFBgc=
-----END OPENSSH PRIVATE KEY-----
@@ -0,0 +1 @@
ssh-dss AAAAB3NzaC1kc3MAAACBALsXz3kkVkhjVjmfZGzGufMNn4tHk6QLxuOfkZquRaSFC5cQiZ07rBLQo3v1f0c/82i7WJ8GeXC1IlR8NCacpiLFZ8HHWEFi3RH5XxBDJ/BKdq09eUNiqNwGNHanlT4MgYTjvOW4pWvxbYVxy4igOyOH5XwgFx2hUYersqKB0awTAAAAFQCXyqTDEXvvHYLGz3JT48CiFj/xUwAAAIEAm5LLEw0URe5FOgA6yxfbZ+YcR/vrwzLWfVWrFDVM01eVkvowQoFGpbMoxfBpwI6fYclG8qUG/zYstaaWzNcfeLaAlHfzHKvYndw+w2d7PkAUxRBw+aqbDw6rRE6mAyVSialIPIMuNm56WqMtnaMLCGqWw6CPRmF/tRGjztwNP1UAAACAZYv0I1u9fH+EYetvCe07wrzcTSpNF/Smn805/aZlyuiCl4cyjBo/k3LHoP2nx860LSN9nawEGVWO2YjqXU6b/jfu1jZ/lN9lUC05oqVp+fZRIM2dgrhBbTO2aenINykPW1dPIf3vGMqRhp5lVgEoL6gMhOiSQB/2Q5yNNl4Y06Q= root@openssh-server
@@ -0,0 +1,9 @@
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAaAAAABNlY2RzYS
1zaGEyLW5pc3RwMjU2AAAACG5pc3RwMjU2AAAAQQSFb79RsK5Av68TkFirj8ol1rD472oV
lk4nMJHzRPuiNsATvTzCNvORTu05UXRamLbm/3I6JzixtKk/KFB3ACJPAAAAsNB/B/LQfw
fyAAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIVvv1GwrkC/rxOQ
WKuPyiXWsPjvahWWTicwkfNE+6I2wBO9PMI285FO7TlRdFqYtub/cjonOLG0qT8oUHcAIk
8AAAAgeio5xlPhUaHFf4X18Z2byRuEhHUAnOWiFRnPINruQ/wAAAATcm9vdEBvcGVuc3No
LXNlcnZlcgECAwQF
-----END OPENSSH PRIVATE KEY-----
@@ -0,0 +1 @@
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIVvv1GwrkC/rxOQWKuPyiXWsPjvahWWTicwkfNE+6I2wBO9PMI285FO7TlRdFqYtub/cjonOLG0qT8oUHcAIk8= root@openssh-server
@@ -0,0 +1,7 @@
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
QyNTUxOQAAACA+/RQjXU9aaSojVwmmzt5SBEg47CNmonOedIm3MaKCdQAAAJiFV4a0hVeG
tAAAAAtzc2gtZWQyNTUxOQAAACA+/RQjXU9aaSojVwmmzt5SBEg47CNmonOedIm3MaKCdQ
AAAECir/zsA1snWhqhpkE2pK18PwQTlI8yVgiISKgbqeUDzT79FCNdT1ppKiNXCabO3lIE
SDjsI2aic550ibcxooJ1AAAAE3Jvb3RAb3BlbnNzaC1zZXJ2ZXIBAg==
-----END OPENSSH PRIVATE KEY-----
@@ -0,0 +1 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID79FCNdT1ppKiNXCabO3lIESDjsI2aic550ibcxooJ1 root@openssh-server
@@ -0,0 +1,27 @@
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn
NhAAAAAwEAAQAAAQEAvKU8MBkhEVgHkrQR+Qi0RO6xfpEYzP0JpN3ubai69DxAw9OpwpQA
S9GRpZyN00yC09LkzarivRItIX14aYlXD1W/M6mfOTG4h2DNNu1vv9PWZKUJjRe8ofi+Ol
kQUdyeRvpOoPOBcMjNy/sIKhC3IYYogkdpYknUhMSASHeN6Da2sQrH8jhoyxs1YVy8bdmV
rurHPwisqjI6Sqzt86Qbkp44tYRn5PfrnaUACccStx79XYh/zbbsYz3pVnJSMAeeL7Jwol
F9Q4CmWP7tovFrrrCIoSYS7ekQdNKGGNSAwlXBoIj4N5hJoeLuSor+ShWAUyDr+6ZMTjFZ
MbWxUjvfgQAAA9AZCHZtGQh2bQAAAAdzc2gtcnNhAAABAQC8pTwwGSERWAeStBH5CLRE7r
F+kRjM/Qmk3e5tqLr0PEDD06nClABL0ZGlnI3TTILT0uTNquK9Ei0hfXhpiVcPVb8zqZ85
MbiHYM027W+/09ZkpQmNF7yh+L46WRBR3J5G+k6g84FwyM3L+wgqELchhiiCR2liSdSExI
BId43oNraxCsfyOGjLGzVhXLxt2ZWu6sc/CKyqMjpKrO3zpBuSnji1hGfk9+udpQAJxxK3
Hv1diH/NtuxjPelWclIwB54vsnCiUX1DgKZY/u2i8WuusIihJhLt6RB00oYY1IDCVcGgiP
g3mEmh4u5Kiv5KFYBTIOv7pkxOMVkxtbFSO9+BAAAAAwEAAQAAAQEArdJG8j7FZHjLiZbY
lLI7gOS7sda6lm91ym8gOfTmRxOZzZcj7gF3gGUbIhFt8UunpMzHPOb/w52S7i/xmrUM/j
lRU6Yw639v+3XrwXfop0XnX5dehJ5hlpFfnt3gFr4FLXuIpe+ZzrWIQzMM483BIGfAvcJV
TVagNrHlTmCy5kqmIAYs9jXChQ4Zku2nDvKA0ghMRLYMb5iDS4nE8t+5+42wQAtsVJUWoJ
VPT5j/D4nnUAqebtY+yvNvDJ3Jdt7EK05+3ZKEmfdGfPrIQ2kGTVh/unJrwh/y8G0Ri8Yq
7DcL9kRqhmsNZgIqdzP9mekxSHU+E6L6XY+teyD/0ibDfQAAAIAf/loFd5FANToz99KwLp
GnYQondYE0A9Zj5fokabRjzgdK0KiOBOV1AuzC8BeA8OEYAev+vR7Sh5bRfm2Sf79qybdM
VlkJiklgURQ2WrCWCgZlFvd+cwllK775TuMbFJVWyISKWUO1DbTY9z7yjGaBo6Z/sqs+LL
arWxIxLcqaEgAAAIEA6jRba6y8aWILOKnW3sqqgPw5LXr0oChj4iaaKM2FIQNk0XLxkVQX
MR9U6yKTUGgTEe+HLQ/xt84EFMHw6vfAnsgSBkU1rEs1ddneDH5O42vfLt0LlVuYCdEynq
OmRhipvAnhfLw/pZe7Sk5I4VTLqx6ZoKnPCWaAo+VdKHF8q0sAAACBAM4zfNG8uILM7xzg
U0/Ys/aifH9jigL6gzLSaksJZqY74WrDSyU2vVVfzXxKyWzvXX01IXWiGxqom2yBJ1akK9
69kU5JUEo2ZWUfWj2fhNhzUhpSD5Gzp+GDiYMcAN6jX1lDTrqQS2bzZVEEGnJUfvnl5Byn
WzOofGuSrsIr9nTjAAAAE3Jvb3RAb3BlbnNzaC1zZXJ2ZXIBAgMEBQYH
-----END OPENSSH PRIVATE KEY-----
@@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC8pTwwGSERWAeStBH5CLRE7rF+kRjM/Qmk3e5tqLr0PEDD06nClABL0ZGlnI3TTILT0uTNquK9Ei0hfXhpiVcPVb8zqZ85MbiHYM027W+/09ZkpQmNF7yh+L46WRBR3J5G+k6g84FwyM3L+wgqELchhiiCR2liSdSExIBId43oNraxCsfyOGjLGzVhXLxt2ZWu6sc/CKyqMjpKrO3zpBuSnji1hGfk9+udpQAJxxK3Hv1diH/NtuxjPelWclIwB54vsnCiUX1DgKZY/u2i8WuusIihJhLt6RB00oYY1IDCVcGgiPg3mEmh4u5Kiv5KFYBTIOv7pkxOMVkxtbFSO9+B root@openssh-server
@@ -0,0 +1,117 @@
# $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $
# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.
# This sshd was compiled with PATH=/bin:/usr/bin:/sbin:/usr/sbin
# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options override the
# default value.
#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key
# Ciphers and keying
#RekeyLimit default none
# Logging
#SyslogFacility AUTH
#LogLevel INFO
# Authentication:
#LoginGraceTime 2m
#PermitRootLogin prohibit-password
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
#PubkeyAuthentication yes
# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys
#AuthorizedPrincipalsFile none
#AuthorizedKeysCommand none
#AuthorizedKeysCommandUser nobody
# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
#PermitEmptyPasswords no
# Change to no to disable s/key passwords
#ChallengeResponseAuthentication yes
# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no
# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
#UsePAM no
#AllowAgentForwarding yes
# Feel free to re-enable these if your use case requires them.
AllowTcpForwarding no
GatewayPorts no
X11Forwarding no
#X11DisplayOffset 10
#X11UseLocalhost yes
#PermitTTY yes
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS no
PidFile /config/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel no
#ChrootDirectory none
#VersionAddendum none
# no default banner path
#Banner none
# override default of no subsystems
Subsystem sftp /usr/lib/ssh/sftp-server -u 022
# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# PermitTTY no
# ForceCommand cvs server
+147
View File
@@ -0,0 +1,147 @@
#!/bin/bash
get_workdir() {
DIRPATH=$1
cd $DIRPATH
pwd
cd - > /dev/null
}
export WORKDIR=$(get_workdir $(dirname $0))
wait_until_ready() {
NAMESPACE=$1
LABEL=$2
while [[ $(kubectl get pods -n ${NAMESPACE} -l app=${LABEL} -o 'jsonpath={..status.conditions[?(@.type=="Ready")].status}') != "True" ]]; do
echo "waiting for pod" && sleep 1
done
}
generate_host_keys() {
HOSTKEYDIR=$WORKDIR/local-git/ssh_host_keys
if [ ! -e $HOSTKEYDIR/ssh_host_dsa_key ]; then
ssh-keygen -q -N "" -C "root@openssh-server" -t dsa -f $HOSTKEYDIR/ssh_host_dsa_key
fi
if [ ! -e $HOSTKEYDIR/ssh_host_rsa_key ]; then
ssh-keygen -q -N "" -C "root@openssh-server" -t rsa -b 2048 -f $HOSTKEYDIR/ssh_host_rsa_key
fi
if [ ! -e $HOSTKEYDIR/ssh_host_ecdsa_key ]; then
ssh-keygen -q -N "" -C "root@openssh-server" -t ecdsa -f $HOSTKEYDIR/ssh_host_ecdsa_key
fi
if [ ! -e $HOSTKEYDIR/ssh_host_ed25519_key ]; then
ssh-keygen -q -N "" -C "root@openssh-server" -t ed25519 -f $HOSTKEYDIR/ssh_host_ed25519_key
fi
}
generate_keys() {
KEYDIR=$WORKDIR/keys
HOSTKEYDIR=$WORKDIR/local-git/ssh_host_keys
HOSTKEYS=("ssh_host_dsa_key" "ssh_host_rsa_key" "ssh_host_ecdsa_key" "ssh_host_ed25519_key")
if [ ! -e $KEYDIR ]; then
mkdir -p $KEYDIR
fi
if [ ! -e $KEYDIR/known_hosts ]; then
for key in "${HOSTKEYS[@]}"; do
echo "[local-git.local-git.svc.cluster.local]:2222 $(cat $HOSTKEYDIR/$key.pub | awk '{print $1" "$2}')" >> $KEYDIR/known_hosts
done
fi
if [ ! -e $KEYDIR/identity ]; then
ssh-keygen -q -N "" -C "development@key" -f $KEYDIR/identity
fi
kubectl create secret generic local-git-secret \
--from-file=$KEYDIR/identity \
--from-file=$KEYDIR/identity.pub \
--from-file=$KEYDIR/known_hosts --dry-run=client -o yaml | \
kubectl patch --local -f- --type=json \
-p='[{"op": "remove", "path": "/metadata/creationTimestamp"}]' -o yaml > $KEYDIR/local-git-secret.yaml
if [ ! -e $KEYDIR/age.agekey ];then
age-keygen -o $KEYDIR/age.agekey
fi
}
prepare_flux_dir() {
KEYDIR=$WORKDIR/keys
FLUXDIR=$WORKDIR/../flux
CLUSTERDIR=$FLUXDIR/clusters/k3d-develop
PUBAGEKEY=$(cat $KEYDIR/age.agekey | grep public\ key | awk -F:\ '{print $2}')
if [ ! -e $FLUXDIR/.sops.yaml ]; then
cat > $FLUXDIR/.sops.yaml <<EOF
creation_rules:
- path_regex: .*\/k3d-develop\/.*.yaml
encrypted_regex: ^(data|stringData)$
age: ${PUBAGEKEY}
EOF
fi
if [ ! -e $CLUSTERDIR/flux-system/local-git-secret.yaml ]; then
sops -e --age $PUBAGEKEY -encrypted-regex "^(data|stringData)$" $KEYDIR/local-git-secret.yaml > $CLUSTERDIR/flux-system/local-git-secret.yaml
fi
}
clean() {
KEYDIR=$WORKDIR/keys
FLUXDIR=$WORKDIR/../flux
CLUSTERDIR=$FLUXDIR/clusters/k3d-develop
HOSTKEYDIR=$WORKDIR/local-git/ssh_host_keys
rm $HOSTKEYDIR/ssh_host_*
rm $KEYDIR/*
rmdir $KEYDIR
rm $FLUXDIR/.sops.yaml
rm $CLUSTERDIR/flux-system/local-git-secret.yaml
}
start() {
#k3d cluster create -c $WORKDIR/k3d-develop-config.yaml
#mkdir -p $WORKDIR/../kubeconfigs
#k3d kubeconfig get develop > $WORKDIR/../kubeconfigs/k3d-develop.yaml
export KUBECONFIG="$WORKDIR/../kubeconfigs/k3d-develop.yaml"
kubectl apply -k $WORKDIR/local-git
git remote add develop ssh://git@localhost:2222/srv/git/local-flux.git 2>&1 >/dev/null || git remote set-url develop ssh://git@localhost:2222/srv/git/local-flux.git
git remote get-url develop
chmod 600 $WORKDIR/keys/identity
ssh-add $WORKDIR/keys/identity
echo
echo "Wait until git server is ready"
echo
wait_until_ready local-git local-git
echo "Wait 15 sec"
sleep 15
echo
git push develop --all
}
delete() {
k3d cluster delete develop
}
case $1 in
start)
start
;;
delete)
delete
;;
generate)
generate_host_keys
generate_keys
prepare_flux_dir
;;
clean)
clean
;;
*)
echo "$0 start | delete | generate | clean"
;;
esac
+107
View File
@@ -0,0 +1,107 @@
# Lokale Entwicklungsumgebung für fluxcd
Hier kann ein lokaler Kubernetes Cluster hochgefahren werden. Zudem wird ein schlanker git server (openssh-server) als Pod gestartet.
## Vorraussetzung
Docker wird als gegeben vorrausgesetzt.
* [k3d](https://k3d.io)
Mit Hilfe von k3d kann ein lokaler Kubernetes gestartet werden. Dies funktioniert sowohl unter MacOS als auch Linux (Windows mit WSL).
## Benutzung
Starten der Entwicklungsumgebung:
```
./local-k8s.sh start
```
Entfernen des Kubernetes Clusters:
```
./local-k8s.sh delete
```
## Git Server
Es wird ein Git Server (openssh server) als POD gestartet. Dieser ist dann unter ssh://git@localhost:2222/srv/git/local-git.git erreichbar.
Auf dem HOST System:
```
ssh://git@localhost:2222/srv/git/local-git.git
```
Von Kubernetes aus ist der Git Server unter folgender Adresse erreichbar:
```
ssh://git@local-git.local-git.svc.cluster.local:2222/srv/git/local-flux.git
```
### Hinzufügen von Code in Flux
Das `local-k8s.sh` Script fügt im Repo ein weiteres git-remote Target hinzu:
```
git remote add develop ssh://git@localhost:2222/srv/git/local-flux.git
```
Damit können nun Änderungen an dem k3d-develop cluster Teil (flux/cluster/k3d-develop) durchgeführt werden. Zudem muss in
`flux/cluster/k3d-develop/flux-sync.yaml` der Branch angepasst werden. Sobald dies erfolgt ist, können die Änderungen auf
den Git Server hinzugefügt werden:
```
git push develop
```
### Hinzufügen weiterer Repos
Die Repos werden über ein Init Script angelegt:
__/local-git/custom-cont-init.d/init-git.sh:__
```
#!/bin/bash
GITREPOS=("local-flux" "test")
apk update
apk add git
rm /etc/motd
mkdir -p /srv/git
for repo in ${GITREPOS[@]}; do
mkdir -p /srv/git/${repo}.git
cd /srv/git/${repo}.git
git init --bare
done
chown -R git:git /srv/git
```
Das Array GITREPOS steuert die Anlage der Repos. Diese werden nur beim Aufsetzen der Umgebung angelegt. Im laufenden Betrieb ist das
nicht möglich.
## Test mit weiterer NodeGroup
Möchte man etwas mit einer weiteren NodeGroup testen (wie z.b. nginx Ingress oder varnish), so kann man tatsächlich mit k3d einen weiteren Node simulieren:
```
k3d node create -c develop --k3s-node-label node=ingress ingress
# -c develop - ist der Clustername, hier sollte develop schon richtig sein
# --k3s-node-label node=ingress - der node wird mit dem Label node=ingess makiert und kann später damit explzit gewählt werden
# ingress - so heißt diese Node Gruppe
```
Damit der Scheduler den neuen Node nicht verwendet, muss dieser noch getainted werden:
```
kubectl taint nodes k3d-ingress-0 node=ingress:NoSchedule
# Der interne Node Name wird anscheinend wie folgt zusammengebaut: k3d-NODEGROUPNAME-COUNTER
# node=ingress:NoSchedule ist der taint
```
Hier gibt es weiterführende Infos:
* [Taint and Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/)