Kubernetes: kubectl - validasi flag pass jika file yaml salah

Dibuat pada 6 Jun 2018  ·  2Komentar  ·  Sumber: kubernetes/kubernetes

/ jenis bug

Saya pikir itu adalah bug

Apa yang terjadi :
kubectl berhasil memvalidasi file yaml yang berisi data tidak valid (lihat di bawah untuk konten file yaml):

$ kubectl --context=minikube  create --dry-run --validate -f invalid.yml 
deployment "test" created (dry run)

Namun saat mengeluarkan perintah tanpa validasi, gagal

$ 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.

Apa yang Anda harapkan terjadi :
kubectl create --dry-run --validate harus melaporkan bahwa ada kesalahan dalam file yaml

Cara memperbanyaknya (seminimal dan setepat mungkin) :
Simpan yaml di bawah ini dalam file yaml dan terapkan sekali dengan
kubectl create --dry-run --validate -f file.yaml

dan kemudian lakukan dengan nyata
kubectl create -f file.yaml

Minikube bisa digunakan.

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: £"+=_+!¹²³€}{{@"}{@~@:>?|\|¬`}

Ada hal lain yang perlu kami ketahui? :

Lingkungan :

  • Versi Kubernetes (gunakan kubectl version ):
    Versi Klien: version.Info {Major: "1", Minor: "9", GitVersion: "v1.9.6", GitCommit: "9f8ebd171479bec0ada837d7ee641dec2f8c6dd1", GitTreeState: "clean", BuildDate: "2018-03-21T15: 21: 50Z ", GoVersion:" go1.9.3 ", Penyusun:" gc ", Platform:" linux / amd64 "}
    Versi Server: version.Info {Mayor: "", Minor: "", GitVersion: "v1.9.4", GitCommit: "bee2d1505c4fe820744d26d41ecd3fdd4a3d6546", GitTreeState: "clean", BuildDate: "2018-03-21T21: 48: 36Z" , GoVersion: "go1.9.1", Penyusun: "gc", Platform: "linux / amd64"}
  • Penyedia cloud atau konfigurasi perangkat keras:
    minikube di linux, juga terjadi di cluster non-minikube lainnya
  • OS (misalnya dari / etc / os-release):
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
  • Kernel (misalnya uname -a ):
    Linux nb 4.13.0-43-generik # 48 ~ 16.04.1-Ubuntu SMP Kam 17 Mei 12:56:46 UTC 2018 x86_64 x86_64 x86_64 GNU / Linux

  • Instal alat:

  • Lainnya:

/ sig cli

kinbug sicli

Komentar yang paling membantu

validasi sisi klien tidak lengkap. ini terutama memastikan nama dan jenis bidang di file yaml valid. validasi penuh selalu dilakukan oleh server, dan selalu dapat memberlakukan batasan / batasan tambahan atas validasi sisi klien.

Semua 2 komentar

validasi sisi klien tidak lengkap. ini terutama memastikan nama dan jenis bidang di file yaml valid. validasi penuh selalu dilakukan oleh server, dan selalu dapat memberlakukan batasan / batasan tambahan atas validasi sisi klien.

/Menutup

Apakah halaman ini membantu?
0 / 5 - 0 peringkat