Update README.md
This commit is contained in:
@@ -739,3 +739,148 @@ sudo systemctl reset-failed k3d-lab-ensure.service
|
|||||||
|
|
||||||
sudo LAB_HOST_IP=192.168.68.61 ./deploy-lab.sh install-autostart
|
sudo LAB_HOST_IP=192.168.68.61 ./deploy-lab.sh install-autostart
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
# Corrección v4.4.4: credenciales TLS para Gitea Actions
|
||||||
|
|
||||||
|
El error:
|
||||||
|
|
||||||
|
```text
|
||||||
|
x509: certificate is valid for ... 192.168.68.61 ... not <otro valor>
|
||||||
|
```
|
||||||
|
|
||||||
|
indica que el secret `K8S_TLS_SERVER_NAME` no coincide con el host usado en
|
||||||
|
`K8S_SERVER`.
|
||||||
|
|
||||||
|
La versión agrega:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./deploy-lab.sh postdeploy-secrets
|
||||||
|
```
|
||||||
|
|
||||||
|
Este modo:
|
||||||
|
|
||||||
|
- recrea el ServiceAccount y RBAC de lectura;
|
||||||
|
- regenera token, CA, server y nombre TLS;
|
||||||
|
- guarda un kubeconfig persistente de validación;
|
||||||
|
- comprueba acceso real a Deployments en `ecommerce`.
|
||||||
|
|
||||||
|
Valores esperados para este laboratorio:
|
||||||
|
|
||||||
|
```text
|
||||||
|
K8S_SERVER=https://192.168.68.61:46421
|
||||||
|
K8S_TLS_SERVER_NAME=192.168.68.61
|
||||||
|
```
|
||||||
|
|
||||||
|
También incluye un `build.yaml` robustecido en:
|
||||||
|
|
||||||
|
```text
|
||||||
|
repo-patches/apps-registry/.gitea/workflows/build.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
El workflow normaliza el secret TLS y detiene la ejecución con un mensaje
|
||||||
|
claro cuando no coincide con el host de `K8S_SERVER`.
|
||||||
|
|
||||||
|
|
||||||
|
# Corrección v4.4.5: kubeconfig atómico para Gitea Actions
|
||||||
|
|
||||||
|
El workflow usa primero el secret único:
|
||||||
|
|
||||||
|
```text
|
||||||
|
KUBE_CONFIG_DATA
|
||||||
|
```
|
||||||
|
|
||||||
|
Este secret contiene conjuntamente servidor, CA, `tls-server-name` y token.
|
||||||
|
Así se evita mezclar una CA de un clúster anterior con el servidor o token
|
||||||
|
actuales. Los cuatro secrets `K8S_*` se conservan únicamente como fallback.
|
||||||
|
|
||||||
|
Regeneración:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
LAB_HOST_IP=192.168.68.61 ./deploy-lab.sh postdeploy-secrets
|
||||||
|
```
|
||||||
|
|
||||||
|
Luego actualiza en Gitea `KUBE_CONFIG_DATA` con el contenido de:
|
||||||
|
|
||||||
|
```text
|
||||||
|
/DATA/AppData/k3d-lab/gitea-actions-secrets/KUBE_CONFIG_DATA.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
El workflow muestra únicamente la huella SHA256 pública de la CA, nunca el
|
||||||
|
certificado, token ni contenido del secret.
|
||||||
|
|
||||||
|
|
||||||
|
# Corrección v4.4.6: token persistente para Gitea Actions
|
||||||
|
|
||||||
|
El modo `postdeploy-secrets` ya no utiliza `kubectl create token`, porque
|
||||||
|
ese mecanismo entrega tokens con duración limitada y el API Server puede
|
||||||
|
acortar la duración solicitada.
|
||||||
|
|
||||||
|
La versión crea y administra:
|
||||||
|
|
||||||
|
```text
|
||||||
|
ServiceAccount/ecommerce/gitea-postdeploy-validator
|
||||||
|
Secret/ecommerce/gitea-postdeploy-validator-token
|
||||||
|
```
|
||||||
|
|
||||||
|
El Secret es de tipo:
|
||||||
|
|
||||||
|
```text
|
||||||
|
kubernetes.io/service-account-token
|
||||||
|
```
|
||||||
|
|
||||||
|
El controlador de Kubernetes genera dentro del Secret:
|
||||||
|
|
||||||
|
- `token`;
|
||||||
|
- `ca.crt`;
|
||||||
|
- `namespace`.
|
||||||
|
|
||||||
|
El RBAC continúa siendo de solo lectura sobre Deployments, ReplicaSets y
|
||||||
|
Pods del namespace `ecommerce`.
|
||||||
|
|
||||||
|
Regeneración:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
LAB_HOST_IP=192.168.68.61 ./deploy-lab.sh postdeploy-secrets
|
||||||
|
```
|
||||||
|
|
||||||
|
Después actualiza solamente el secret de Gitea:
|
||||||
|
|
||||||
|
```text
|
||||||
|
KUBE_CONFIG_DATA
|
||||||
|
```
|
||||||
|
|
||||||
|
usando:
|
||||||
|
|
||||||
|
```text
|
||||||
|
/DATA/AppData/k3d-lab/gitea-actions-secrets/KUBE_CONFIG_DATA.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
El workflow valida que el kubeconfig contenga token y muestra únicamente
|
||||||
|
metadatos seguros: ServiceAccount y expiración, sin imprimir el token.
|
||||||
|
|
||||||
|
|
||||||
|
# Corrección v4.4.6.1: indentación de build.yaml
|
||||||
|
|
||||||
|
El bloque Python usado para leer metadatos del token había quedado en la
|
||||||
|
columna 1 del YAML. Eso cerraba prematuramente el bloque:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
run: |
|
||||||
|
```
|
||||||
|
|
||||||
|
La corrección mantiene todo el código Python con la indentación YAML del
|
||||||
|
script. Al procesarse `run: |`, Bash recibe nuevamente el código Python
|
||||||
|
desde la columna 1.
|
||||||
|
|
||||||
|
Archivo corregido:
|
||||||
|
|
||||||
|
```text
|
||||||
|
repo-patches/apps-registry/.gitea/workflows/build.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
También se incluye una copia en la raíz del paquete:
|
||||||
|
|
||||||
|
```text
|
||||||
|
build.yaml
|
||||||
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user