Files
api7-demo/web/docs/argocd-values-guide.md
d.viti 6c4e40400a
All checks were successful
Helm Chart Build / lint-only (push) Has been skipped
Helm Chart Build / build-helm (push) Successful in 9s
Build and Deploy / build-api (push) Successful in 42s
Build and Deploy / build-web (push) Successful in 1m5s
Move all documentation to web/docs for MkDocs integration
Moved all documentation files into web/docs/ directory for proper
MkDocs integration and updated navigation structure.

Changes:
========

1. Documentation Structure:
   - Moved SWAGGER-WEB-UPDATE.md → web/docs/swagger-documentation.md
   - Moved ARGOCD-VALUES-UPDATE.md → web/docs/argocd-values-guide.md
   - Formatted both files with MkDocs frontmatter and structure

2. MkDocs Navigation (web/mkdocs.yml):
   - Updated site_url to https://commandware.it/docs
   - Added new section "API Documentation" with Swagger guide
   - Added "ArgoCD Values Guide" to Configuration section
   - Enhanced markdown extensions:
     * Added mermaid diagram support
     * Added task lists
     * Added emoji support
     * Added code annotations
   - Added navigation features (instant, tabs, sections)
   - Added tags plugin
   - Improved copyright notice

3. Swagger Documentation (web/docs/swagger-documentation.md):
   - Complete guide to Swagger UI, ReDoc, and OpenAPI
   - Access instructions via web interface and direct links
   - API overview with architecture diagram
   - Detailed endpoint documentation for all groups:
     * Root (/)
     * Health (/health, /ready)
     * Items CRUD (/items/*)
     * Users (/users/*)
     * LLM (/llm/*)
   - Interactive testing examples
   - OpenAPI specification download instructions
   - Tools integration (Postman, Insomnia, OpenAPI Generator)
   - Cross-references to other documentation pages

4. ArgoCD Values Guide (web/docs/argocd-values-guide.md):
   - Comprehensive guide for updating values.yaml in ArgoCD
   - All modifications explained (before/after)
   - Step-by-step application instructions
   - Verification commands
   - Security best practices

New MkDocs Navigation:
======================
- Home
- Getting Started
- Architecture
  - Overview
  - Kubernetes Resources
- Configuration
  - API7 Gateway
  - Ingress & Routing
  - Service Discovery
  - Secret Management
  - ArgoCD Values Guide ← NEW
  - CI/CD Pipeline
- API Documentation ← NEW SECTION
  - Swagger & OpenAPI
- Troubleshooting

All documentation is now centralized in web/docs/ and accessible
through MkDocs at https://commandware.it/docs

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-09 17:24:53 +02:00

5.9 KiB
Raw Permalink Blame History

ArgoCD Values Update Guide

Questo documento descrive le modifiche da applicare al values.yaml in ArgoCD.

📋 Modifiche Principali

1. Service Discovery - DISABILITATO

Prima:

api7:
  serviceDiscovery:
    enabled: true

Dopo:

api7:
  serviceDiscovery:
    enabled: false  # Disabled until Service Registry is configured in API7 Dashboard
    namespace: ""

Motivo: Service discovery richiede la configurazione di un Service Registry nel Dashboard API7 Enterprise. Finché non viene configurato, ADC sync fallisce con errore service registry not found.


2. Existing Secret - CONFIGURATO

Prima:

api7:
  gateway:
    existingSecret: ""

Dopo:

api7:
  gateway:
    # Use existing secret for production (recommended)
    # The secret api7-credentials already exists with the correct admin key
    existingSecret: "api7-credentials"
    existingSecretKeys:
      adminUrl: admin-url
      adminKey: admin-key
      group: gateway-group

Motivo: Il Secret api7-credentials esiste già nel namespace api7ee con la chiave admin corretta. Usarlo evita di creare un nuovo Secret vuoto.


3. Gateway Namespace - AGGIUNTO

Prima:

api7:
  gateway:
    gatewayService: gateway-0-1759393614-gateway

Dopo:

api7:
  gateway:
    gatewayService: gateway-0-1759393614-gateway
    gatewayNamespace: api7ee

4. ADC Resources - CONFIGURATE

api7:
  adc:
    resources:
      limits:
        cpu: 500m
        memory: 256Mi
      requests:
        cpu: 100m
        memory: 128Mi

5. Ingress Configuration - AGGIORNATA

Prima:

ingress:
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
  hosts:
    - host: commandware.it
      paths:
        - path: /
          gateway:
            serviceName: gateway-0-1759393614-gateway
            port: 80
        - path: /api
          gateway:
            serviceName: gateway-0-1759393614-gateway
            port: 80
  tls:
    - secretName: api7ee-demo-tls

Dopo:

ingress:
  className: nginx
  annotations:
    cert-manager.io/cluster-issuer: cloudflare-acme-prod
  hosts:
    - host: commandware.it
      paths:
        - path: /
          pathType: Prefix
          gateway:
            serviceName: gateway-0-1759393614-gateway
            port: 80
            namespace: api7ee
  tls:
    - secretName: api7ee-tls
      hosts:
        - commandware.it

Modifiche:

  • Rimossa annotation nginx.ingress.kubernetes.io/rewrite-target: /
  • Aggiunta annotation cert-manager.io/cluster-issuer
  • Un solo path / invece di due path separati (/ e /api)
  • Aggiunto namespace: api7ee al gateway
  • Cambiato secretName da api7ee-demo-tls a api7ee-tls

6. TLS Configuration - COMPLETATA

api7:
  tls:
    enabled: true
    certManager:
      enabled: true
      issuer: cloudflare-acme-prod
      issuerKind: ClusterIssuer
    privateKey:
      rotationPolicy: Always
      algorithm: RSA
      size: 2048
    duration: 2160h  # 90 days
    renewBefore: 720h  # 30 days before expiry

🔄 Come Applicare le Modifiche

Opzione 1: Interfaccia Web ArgoCD

  1. Accedi ad ArgoCD Dashboard
  2. Seleziona l'applicazione api7ee-demo
  3. Clicca su "APP DETAILS" → "PARAMETERS"
  4. Modifica i valori come sopra indicato
  5. Clicca "SAVE"
  6. Clicca "SYNC" per applicare le modifiche

Opzione 2: Via CLI

# Edit application
kubectl edit application -n argocd api7ee-demo

# O usa ArgoCD CLI
argocd app set api7ee-demo --values /path/to/updated-values.yaml
argocd app sync api7ee-demo

Opzione 3: Usa il values.yaml aggiornato

Il file values.yaml nella root del progetto è già stato aggiornato con tutte le modifiche. Puoi copiarlo direttamente nella configurazione ArgoCD.


Verifica Post-Sync

Dopo la sincronizzazione, verifica che tutto funzioni:

1. Check ConfigMap

kubectl get configmap -n api7ee api7ee-demo-api7ee-demo-k8s-adc-config \
  -o jsonpath='{.data.adc-config\.yaml}' | grep "discovery_type"

Risultato atteso: Nessun output (service discovery disabilitato)

2. Check Secret

kubectl get secret -n api7ee api7ee-demo-api7ee-demo-k8s-api7-admin \
  -o jsonpath='{.data.admin-key}' | base64 -d | wc -c

Risultato atteso: 88 (chiave presente)

3. Check ADC Sync Job

kubectl logs -n api7ee job/api7ee-demo-api7ee-demo-k8s-adc-sync --tail=20

Risultato atteso:

[ADC]  ✔  success   Sync configuration
[ADC]  ★  star      All is well, see you next time!

4. Test Routing

# Test web
curl -I https://commandware.it/

# Test API
curl -I https://commandware.it/api/health

Risultato atteso: HTTP 200 o 405 (metodi funzionanti)


📝 Note Importanti

Service Discovery

Per riabilitare service discovery in futuro:

  1. Configura Service Registry nel Dashboard API7:

    • Accedi al Dashboard: https://api7ee3-0-1759339083-dashboard:7443
    • Vai a: Gateway Groups → Service Registries
    • Aggiungi: Kubernetes Service Registry
    • Configura: API Server URL e Token
  2. Abilita nel values.yaml:

    api7:
      serviceDiscovery:
        enabled: true
    
  3. Sync ArgoCD

Secret Management

Il Secret api7-credentials contiene:

  • admin-url: URL del Dashboard API7
  • admin-key: Chiave di autenticazione (88 caratteri)
  • gateway-group: Nome del gateway group (default)

Per ruotare le credenziali:

kubectl patch secret -n api7ee api7-credentials \
  -p '{"data":{"admin-key":"<new-base64-encoded-key>"}}'

🔗 Riferimenti


Data aggiornamento: 2025-10-09 Versione Chart: api7ee-demo-k8s-0.1.0