From eb2748170a5183007e781b771ba86462b458893a Mon Sep 17 00:00:00 2001 From: emelinda Date: Wed, 22 Jul 2026 14:25:29 +0300 Subject: [PATCH] Add external `K3S_API_HOST` and Gitea service to `docker-compose.yaml` --- .env.example | 4 ++++ docker-compose.yaml | 31 ++++++++++++++++++++++++++++--- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/.env.example b/.env.example index 099788d..53852d8 100644 --- a/.env.example +++ b/.env.example @@ -1 +1,5 @@ K3S_TOKEN=gVadzB0OtWGDAM9rmlZvHiwfITsP8bxo + +# Внешний адрес (IP или домен), по которому к kube-apiserver обращаются извне. +# Попадёт в TLS-сертификат (--tls-san). Без него внешний kubectl упадёт на x509. +K3S_API_HOST=10.0.0.10 diff --git a/docker-compose.yaml b/docker-compose.yaml index 9c4d213..3a721b0 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -6,20 +6,22 @@ services: - server - --tls-san=127.0.0.1 - --tls-san=k3s-server + - --tls-san=${K3S_API_HOST:-127.0.0.1} # внешний IP/домен для доступа к apiserver извне - --disable=traefik privileged: true + cgroup: host # kubelet в cgroup v2 (Ubuntu 22.04+/RedOS) restart: unless-stopped environment: K3S_TOKEN: ${K3S_TOKEN:-supersecrettoken} K3S_KUBECONFIG_OUTPUT: /output/kubeconfig.yaml K3S_KUBECONFIG_MODE: "644" ports: - - "6443:6443" # kube-apiserver - - "80:80" # ingress http + - "6443:6443" # kube-apiserver — доступен извне; ОБЯЗАТЕЛЬНО ограничь фаерволом до доверенных IP + - "80:80" # ingress http — задействуются после установки ingress-контроллера - "443:443" # ingress https volumes: - k3s-server-data:/var/lib/rancher/k3s # etcd/state, образы, манифесты — только named volume - - ./k3s:/output # отсюда забираем контекст k8s + - ./k3s:/output:z # отсюда забираем контекст k8s (:z — SELinux label для RedOS) tmpfs: - /run - /var/run @@ -41,6 +43,7 @@ services: command: - agent privileged: true + cgroup: host # kubelet в cgroup v2 (Ubuntu 22.04+/RedOS) restart: unless-stopped depends_on: k3s-server: @@ -59,6 +62,28 @@ services: soft: 65535 hard: 65535 + gitea: + image: gitea/gitea:1.22 + container_name: gitea + restart: unless-stopped + environment: + USER_UID: 1000 + USER_GID: 1000 + GITEA__server__ROOT_URL: ${GITEA_ROOT_URL:-http://localhost:3000/} + GITEA__server__SSH_PORT: ${GITEA_SSH_PORT:-2222} + ports: + - "3000:3000" # web UI (80/443 заняты k3s) + - "${GITEA_SSH_PORT:-2222}:22" # git over ssh + volumes: + - ./gitea-data:/data:z # :z — SELinux label для RedOS + healthcheck: + test: ["CMD", "curl", "-fsS", "http://localhost:3000/api/healthz"] + interval: 10s + timeout: 5s + retries: 12 + start_period: 20s + volumes: k3s-server-data: k3s-worker-data: + gitea-data: