Skip to content

🐛 [BUG] - Cluster.label accepte les majuscules mais casse l'enregistrement du cluster #2712

Description

@Baran-Aksoy

Description

Comportement actuel

Le champ label d'un Cluster est validé avec :

label: z.string()
  .regex(/^[a-z0-9-]+$/i)
  .max(50),

Le flag /i rend la regex insensible à la casse — la Console accepte donc des majuscules dans le nom d'un cluster (ex. Cluster-Tools) sans aucun avertissement, à la création comme à la mise à jour.

Le problème

Ce label est réutilisé tel quel comme nom de ressource Kubernetes plus loin dans la chaîne, dans le chart dso-argocd-zone (templates/cluster-secrets.yaml) :

apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultStaticSecret
metadata:
  name: {{ $cluster }}-cluster-secret

Kubernetes impose que les noms de ressources respectent la RFC 1123 (minuscules uniquement). Résultat : le sync ArgoCD échoue avec une erreur peu explicite pour l'utilisateur final :

VaultStaticSecret.secrets.hashicorp.com "Cluster-Tools-cluster-secret" is invalid:
metadata.name: a lowercase RFC 1123 subdomain must consist of lower case alphanumeric
characters, '-' or '.', ...

Cette erreur apparaît côté ArgoCD, bien après la création du cluster dans la Console — rien n'indique à l'utilisateur, au moment de la saisie, que son nom de cluster va casser l'enregistrement.

Comportement attendu

Le nom du cluster devrait être normalisé (ou rejeté avec un message clair) au moment de la saisie, pas découvert des heures plus tard via un échec de sync ArgoCD sans lien évident avec la cause.

Contexte

Trouvé en creusant pourquoi un cluster enregistré dans la Console n'apparaissait jamais dans ArgoCD (Settings → Clusters), lié à l'issue #1043 sur le Vault Secrets Operator. ( issue sur le socle )

Piste de correction

Ajouter une normalisation dans packages/shared/src/schemas/cluster.ts :

   label: z.string()
     .regex(/^[a-z0-9-]+$/i)
-    .max(50),
+    .max(50)
+    .transform(value => value.toLowerCase()),

Ou tout simplement guider l'utilisateur a utiliser uniquement des minisculte.

Etapes de reproduction

1. Aller à '...'
2. Cliquer sur '....'
3. Scroller jusqu'à '....'
4. Voir l'erreur

Captures d'écran

![DESCRIPTION](LINK.png)

Logs

No response

Navigateurs

No response

OS

No response

Version de la console impactée

No response

Définition du fini

  • Le correctif est terminé
  • Les tests liés à ce correctif ont été ajoutés
  • La communication avec les autres équipes impliquées par ce correctif a été faite

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions