Aller au contenu

Migration v2.7

L’Ingress Controller nginx est remplace par Envoy Gateway via le standard Kubernetes Gateway API.

Chaque aspect du trafic est gere par une ressource K8s dediee :

ConcernRessource Gateway API
Routage HTTPHTTPRoute
TLS/HTTPSGateway + cert-manager
CORSSecurityPolicy
IP WhitelistSecurityPolicy
Timeout, retry, rate limitBackendTrafficPolicy
GzipClientTrafficPolicy
Redirections regex (Lua)EnvoyExtensionPolicy

Aucune modification du deployer.yaml n’est necessaire pour les fonctionnalites existantes. Le deployer genere automatiquement les bonnes ressources selon la plateforme cible.

Les labels sont maintenant un dictionnaire key: value (au lieu d’un tableau d’objets).

# Avant (v2.6)
labels:
- name: team
value: team-services
# Apres (v2.7)
labels:
team: team-services
cost-center: cc-1234

Les labels sont propages sur :

  • Tous les pods Kubernetes (deployments, workers, cronjobs)
  • Les ressources GCP (Pub/Sub, buckets, etc.) via default_labels

Scrape automatique des metriques Prometheus via GMP (Google Managed Prometheus).

prometheusScrape:
enabled: true
port: 3000 # defaut : port du network principal
path: /metrics # defaut
interval: 30s # defaut

Un PodMonitoring est cree pour les applications Web uniquement.

Les buckets applicatifs supportent maintenant les lifecycle rules GCS :

storage:
app:
- name: uploads
lifecycleRules:
- action: Delete
age: 90
- action: SetStorageClass
age: 30
storageClass: NEARLINE

Les resources CPU/memoire par defaut sont maintenant adaptees a l’environnement :

ParametreProductionStaging / Lab / Preview
CPU request100m10m
Memory request128Mi64Mi

Le VPA ajuste automatiquement en staging. Les projets qui ont besoin de plus peuvent toujours definir resourcesRequests explicitement.

Cloud Functions : cpu, memory, concurrency et runtime par defaut

Section intitulée « Cloud Functions : cpu, memory, concurrency et runtime par defaut »

Les champs cpu et memory de cloudFunctions sont maintenant reellement appliques sur la ressource Terraform (available_cpu et available_memory de Cloud Run v2). Avant, les valeurs etaient ignorees et GCP utilisait ses propres defaults.

Le runtime par defaut passe de nodejs10 (EOL 2021) a nodejs22 (LTS). Impact nul en pratique : les apps qui utilisaient le default avaient deja leur deploiement rejete par GCP.

Nouveau champ max_instance_request_concurrency pour controler le nombre de requetes concurrentes par instance :

cloudFunctions:
- name: my-fn
source: ./fn
cpu: "1"
memory: 1024M
max_instance_request_concurrency: 50

Les enregistrements DNS www.* sont maintenant crees automatiquement quand fromToWWW: true (defaut). Corrige un bug ou seule la redirection HTTP etait configuree sans l’enregistrement DNS correspondant.

Action requise : modifier le format dans deployer.yaml.

labels:
- name: team
value: my-team
labels:
team: my-team

Si vous n’utilisez pas de labels, aucune action necessaire.

Les CPU/memory requests sont plus bas en non-prod (10m/64Mi au lieu de 100m/128Mi). Le VPA compense automatiquement, mais si votre application a besoin d’un minimum garanti au demarrage :

resourcesRequests:
cpu: 100m
memory: 128Mi

Les patterns PCRE avec groupes optionnels (...)? sont maintenant correctement geres. Le deployer genere automatiquement 2 checks Lua (avec et sans le groupe).

Avant : ^/login(\?.*)?$ ne matchait pas /login (seulement /login?...). Apres : /login et /login?foo sont tous les deux rediriges.

Si vos redirections regex fonctionnaient deja, aucune action necessaire. Si elles ne marchaient pas sur certains paths, elles devraient maintenant fonctionner.

Chercher dans votre deployer.yaml :

Fenêtre de terminal
grep -A2 "labels:" deployer.yaml

Si le format est un tableau d’objets, convertir en dictionnaire.

Si votre application crash au demarrage avec les nouveaux defaults (10m CPU), ajouter des resourcesRequests explicites.

Deployer sur une branche de feature pour valider :

Fenêtre de terminal
# Le deployer detecte automatiquement l'environnement preview
git push origin feat/migration-test

Verifier :

  • L’application demarre correctement
  • Les redirections fonctionnent
  • Le CORS est correct (si applicable)
  • Les metriques Prometheus remontent (si prometheusScrape active)

Aucune action specifique — le deployer gere la transition automatiquement.


Voir aussi : Valeurs par defaut | Labels & Monitoring | Gateway API