/ genre bug
Je pense que c'est un bug
Qu'est-il arrivé :
kubectl a réussi à valider un fichier yaml contenant des données non valides (voir ci-dessous pour le contenu du fichier yaml):
$ kubectl --context=minikube create --dry-run --validate -f invalid.yml
deployment "test" created (dry run)
Cependant, lors de l'émission de la commande sans la validation, elle échoue
$ kubectl --context=minikube apply -f invalid.yml
The Deployment "test" is invalid:
* metadata.labels: Invalid value: "£\"+=_+!¹²³€}{{@\"}{@~@:>?|\\|¬`}": a valid label must be an empty string or consist of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyValue', or 'my_value', or '12345', regex used for validation is '(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?')
* spec.replicas: Invalid value: -100: must be greater than or equal to 0
* spec.selector.matchLabels: Invalid value: "£\"+=_+!¹²³€}{{@\"}{@~@:>?|\\|¬`}": a valid label must be an empty string or consist of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyValue', or 'my_value', or '12345', regex used for validation is '(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?')
* spec.selector: Invalid value: v1.LabelSelector{MatchLabels:map[string]string{"app":"£\"+=_+!¹²³€}{{@\"}{@~@:>?|\\|¬`}"}, MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: invalid label selector.
Ce à quoi vous vous attendiez :
kubectl create --dry-run --validate
devrait signaler qu'il y a des erreurs dans le fichier yaml
Comment le reproduire (de la manière la plus minimale et la plus précise possible) :
Enregistrez le yaml ci-dessous dans un fichier yaml et appliquez une fois avec
kubectl create --dry-run --validate -f file.yaml
puis allez pour de vrai avec
kubectl create -f file.yaml
Minikube peut être utilisé.
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: test
labels:
app: £"+=_+!¹²³€}{{@"}{@~@:>?|\|¬`}
namespace: default
spec:
replicas: -100
revisionHistoryLimit: 2
template:
metadata:
labels:
app: £"+=_+!¹²³€}{{@"}{@~@:>?|\|¬`}
spec:
containers:
- image: £"+=_+!¹²³€}{{@"}{@~@:>?|\|¬`}
name: £"+=_+!¹²³€}{{@"}{@~@:>?|\|¬`}
envFrom:
- secretRef:
name: £"+=_+!¹²³€}{{@"}{@~@:>?|\|¬`}
Y a-t-il autre chose que nous devons savoir? :
Environnement :
kubectl version
):NAME="Linux Mint"
VERSION="18.3 (Sylvia)"
ID=linuxmint
ID_LIKE=ubuntu
PRETTY_NAME="Linux Mint 18.3"
VERSION_ID="18.3"
VERSION_CODENAME=sylvia
UBUNTU_CODENAME=xenial
Noyau (par exemple uname -a
):
Linux nb 4.13.0-43-generic # 48 ~ 16.04.1-Ubuntu SMP jeu 17 mai 12:56:46 UTC 2018 x86_64 x86_64 x86_64 GNU / Linux
Installer les outils:
/ sig cli
la validation côté client n'est pas exhaustive. il garantit principalement que les noms et types de champs dans le fichier yaml sont valides. la validation complète est toujours effectuée par le serveur et peut toujours imposer des restrictions / contraintes supplémentaires par rapport à la validation côté client.
/Fermer
Commentaire le plus utile
la validation côté client n'est pas exhaustive. il garantit principalement que les noms et types de champs dans le fichier yaml sont valides. la validation complète est toujours effectuée par le serveur et peut toujours imposer des restrictions / contraintes supplémentaires par rapport à la validation côté client.