From 415af7efcd69086ad65443895ad2715e295859b0 Mon Sep 17 00:00:00 2001 From: u1 Date: Fri, 6 Feb 2026 23:14:53 +0100 Subject: [PATCH] feat(k3s): expose gitea ssh via traefik tcp 2222 --- doc/etap-003-gitea-ssh-expose-k3s.md | 26 +++++++++++++++++++ k3s/gitea-ssh/ingressroutetcp-gitea-ssh.yaml | 13 ++++++++++ .../traefik-helmchartconfig-gitssh.yaml | 14 ++++++++++ 3 files changed, 53 insertions(+) create mode 100644 doc/etap-003-gitea-ssh-expose-k3s.md create mode 100644 k3s/gitea-ssh/ingressroutetcp-gitea-ssh.yaml create mode 100644 k3s/gitea-ssh/traefik-helmchartconfig-gitssh.yaml diff --git a/doc/etap-003-gitea-ssh-expose-k3s.md b/doc/etap-003-gitea-ssh-expose-k3s.md new file mode 100644 index 0000000..d2614eb --- /dev/null +++ b/doc/etap-003-gitea-ssh-expose-k3s.md @@ -0,0 +1,26 @@ +# Etap 003: Wystawienie SSH Gitei z k3s + +Cel etapu: udostępnić SSH Gitei na publicznym porcie, żeby `git@gitea.mpabi.pl` trafiało do serwisu `gitea-ssh` w klastrze. + +## Zakres + +1. Dodać `HelmChartConfig` dla Traefika z entrypointem TCP `gitssh` na porcie `2222`. +2. Dodać `IngressRouteTCP` w namespace `gitea`, który kieruje ruch z `gitssh` do `service/gitea-ssh:22`. +3. Wdrożyć manifesty do klastra i zweryfikować: + - Traefik ma port `2222`, + - `IngressRouteTCP` jest aktywny, + - `ssh -p 2222 git@gitea.mpabi.pl` odpowiada Giteą. + +## Decyzja techniczna + +- Nie ruszamy hostowego `:22` (zostaje dla SSH systemu). +- Git SSH dla Gitei idzie przez `:2222`. +- Klienci Git powinni używać: + - `ssh://git@gitea.mpabi.pl:2222/trade/trade-iac.git` + - albo aliasu SSH z `Port 2222`. + +## Kryteria akceptacji + +- `kubectl -n kube-system get svc traefik` pokazuje port `2222/TCP`. +- `kubectl -n gitea get ingressroutetcp gitea-ssh` istnieje. +- Push/pull repo przez SSH na porcie `2222` działa. diff --git a/k3s/gitea-ssh/ingressroutetcp-gitea-ssh.yaml b/k3s/gitea-ssh/ingressroutetcp-gitea-ssh.yaml new file mode 100644 index 0000000..08cca7b --- /dev/null +++ b/k3s/gitea-ssh/ingressroutetcp-gitea-ssh.yaml @@ -0,0 +1,13 @@ +apiVersion: traefik.io/v1alpha1 +kind: IngressRouteTCP +metadata: + name: gitea-ssh + namespace: gitea +spec: + entryPoints: + - gitssh + routes: + - match: HostSNI(`*`) + services: + - name: gitea-ssh + port: 22 diff --git a/k3s/gitea-ssh/traefik-helmchartconfig-gitssh.yaml b/k3s/gitea-ssh/traefik-helmchartconfig-gitssh.yaml new file mode 100644 index 0000000..39fb234 --- /dev/null +++ b/k3s/gitea-ssh/traefik-helmchartconfig-gitssh.yaml @@ -0,0 +1,14 @@ +apiVersion: helm.cattle.io/v1 +kind: HelmChartConfig +metadata: + name: traefik + namespace: kube-system +spec: + valuesContent: |- + ports: + gitssh: + port: 2222 + expose: + default: true + exposedPort: 2222 + protocol: TCP