diff --git a/go.mod b/go.mod index 46b963919..6810f1a34 100644 --- a/go.mod +++ b/go.mod @@ -23,8 +23,8 @@ require ( github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.9.0 github.com/zeebo/xxh3 v1.0.2 - go.bytebuilders.dev/catalog v0.0.9 - go.bytebuilders.dev/catalog-manager v0.1.0 + go.bytebuilders.dev/catalog v0.0.11-0.20241125004308-e689253557ef + go.bytebuilders.dev/catalog-manager v0.1.1 go.bytebuilders.dev/license-verifier v0.14.3 go.openviz.dev/apimachinery v0.0.7 golang.org/x/sync v0.8.0 @@ -42,9 +42,9 @@ require ( k8s.io/client-go v0.30.3 k8s.io/component-base v0.30.3 k8s.io/klog/v2 v2.130.1 - k8s.io/kube-openapi v0.0.0-20240709000822-3c01b740850f + k8s.io/kube-openapi v0.0.0-20240726031636-6f6746feab9c k8s.io/kube-state-metrics/v2 v2.12.0 - k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0 + k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 kmodules.xyz/apiversion v0.2.0 kmodules.xyz/authorizer v0.29.1 kmodules.xyz/client-go v0.30.40 @@ -52,7 +52,7 @@ require ( kmodules.xyz/go-containerregistry v0.0.12 kmodules.xyz/monitoring-agent-api v0.30.4 kmodules.xyz/offshoot-api v0.30.1 - kmodules.xyz/resource-metadata v0.23.1-0.20241128043209-0b8d0f0a14dd + kmodules.xyz/resource-metadata v0.23.1-0.20241210123000-0a8f4eed44a9 kmodules.xyz/resource-metrics v0.30.5 kmodules.xyz/resource-metrics/utils v0.30.4 kmodules.xyz/sets v0.29.0 @@ -99,7 +99,7 @@ require ( github.com/cyphar/filepath-securejoin v0.2.5 // indirect github.com/dapr/go-sdk v1.8.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/docker/cli v27.0.3+incompatible // indirect + github.com/docker/cli v27.1.1+incompatible // indirect github.com/docker/distribution v2.8.3+incompatible // indirect github.com/docker/docker-credential-helpers v0.8.2 // indirect github.com/dominikbraun/graph v0.23.0 // indirect @@ -224,7 +224,7 @@ require ( golang.org/x/text v0.18.0 // indirect golang.org/x/time v0.6.0 // indirect gomodules.xyz/atomic-writer v0.0.2 // indirect - gomodules.xyz/bits v0.0.0-20241102235928-e74aa78b5d38 // indirect + gomodules.xyz/bits v0.0.0-20241124114357-b668409c1b67 // indirect gomodules.xyz/clock v0.0.0-20200817085942-06523dba733f // indirect gomodules.xyz/encoding v0.0.8 // indirect gomodules.xyz/flags v0.1.3 // indirect @@ -246,7 +246,7 @@ require ( k8s.io/cli-runtime v0.30.2 // indirect k8s.io/component-helpers v0.30.2 // indirect k8s.io/kms v0.30.3 // indirect - kubedb.dev/apimachinery v0.49.0-rc.0 // indirect + kubedb.dev/apimachinery v0.49.0 // indirect kubeops.dev/external-dns-operator v0.0.9 // indirect kubeops.dev/petset v0.0.7 // indirect kubevault.dev/apimachinery v0.19.0 // indirect @@ -256,7 +256,7 @@ require ( sigs.k8s.io/kustomize/api v0.17.2 // indirect sigs.k8s.io/kustomize/kyaml v0.17.1 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect - voyagermesh.dev/gateway-api v0.0.2-0.20241104190244-f81d0ba1a554 // indirect + voyagermesh.dev/gateway-api v0.0.2-0.20241124132233-ced3a99a7eae // indirect voyagermesh.dev/installer v0.0.0-20241102060616-ff1e91bfcef8 // indirect ) diff --git a/go.sum b/go.sum index 415a3c872..89fa19cae 100644 --- a/go.sum +++ b/go.sum @@ -120,8 +120,8 @@ github.com/dgraph-io/ristretto v0.1.1/go.mod h1:S1GPSBCYCIhmVNfcth17y2zZtQT6wzkz github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/trifles v0.0.0-20200323201526-dd97f9abfb48 h1:fRzb/w+pyskVMQ+UbP35JkH8yB7MYb4q/qhBarqZE6g= github.com/dgryski/trifles v0.0.0-20200323201526-dd97f9abfb48/go.mod h1:if7Fbed8SFyPtHLHbg49SI7NAdJiC5WIA09pe59rfAA= -github.com/docker/cli v27.0.3+incompatible h1:usGs0/BoBW8MWxGeEtqPMkzOY56jZ6kYlSN5BLDioCQ= -github.com/docker/cli v27.0.3+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/cli v27.1.1+incompatible h1:goaZxOqs4QKxznZjjBWKONQci/MywhtRv2oNn0GkeZE= +github.com/docker/cli v27.1.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk= github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/docker-credential-helpers v0.8.2 h1:bX3YxiGzFP5sOXWc3bTPEXdEaZSeVMrFgOr3T+zrFAo= @@ -206,8 +206,8 @@ github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5x github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= -github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo= +github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.2.1 h1:OptwRhECazUx5ix5TTWC3EZhsZEHWcYWY4FQHTIubm4= github.com/golang/glog v1.2.1/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= @@ -558,10 +558,10 @@ github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= -go.bytebuilders.dev/catalog v0.0.9 h1:Ot4HOwTTadY9AA8N/weU+mcgbJZiHPDbBYV1y+dW1rs= -go.bytebuilders.dev/catalog v0.0.9/go.mod h1:xzfRUZPNBMwmw+en9Y5o6xAq8EOfx8VXJP57oLLllBM= -go.bytebuilders.dev/catalog-manager v0.1.0 h1:/Vpl0Gq1xhQuYHUw+r6enVmTwZVSUESRcaplNTE/gOU= -go.bytebuilders.dev/catalog-manager v0.1.0/go.mod h1:AB+8YZhID2M0YzUIeVQgUy0j0/MxOG1biZnPqkxSwqw= +go.bytebuilders.dev/catalog v0.0.11-0.20241125004308-e689253557ef h1:p0/sjTEk9NGBeJxkMHXITamqX+Dwp+KwNKtQtjGoTk4= +go.bytebuilders.dev/catalog v0.0.11-0.20241125004308-e689253557ef/go.mod h1:bgVJYI6YYhklFEhtetWKM7iyle61cC6UpXV64GhIXLk= +go.bytebuilders.dev/catalog-manager v0.1.1 h1:+v2QYZkwD7ZgDojfOys3ilt6s50vEysce76whfF7UQk= +go.bytebuilders.dev/catalog-manager v0.1.1/go.mod h1:IwN9qBECmr9jY2zCcT2mS6EEhtKUzuUK4eYFMnN66hg= go.bytebuilders.dev/license-verifier v0.14.3 h1:5BTwmFEgCjSlAs2Nzh3/7+u//VoF93xjqywrJiqmZsg= go.bytebuilders.dev/license-verifier v0.14.3/go.mod h1:bNNaVbry3TZbu54pf57LkhjsFX94T6O62w0roiy1yiE= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= @@ -778,8 +778,8 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gomodules.xyz/atomic-writer v0.0.2 h1:UXzHZylq5bsrmsScJAx923+3NBcX3yPfqFtj6ypn9JA= gomodules.xyz/atomic-writer v0.0.2/go.mod h1:FO58qUk5UoXwTWbrErUkFVjQARn/BqjdMCuWXkjsQy8= -gomodules.xyz/bits v0.0.0-20241102235928-e74aa78b5d38 h1:+xvJJoocHCqGoA606lMEV7/HodH78U2ecxnyxm7dG+c= -gomodules.xyz/bits v0.0.0-20241102235928-e74aa78b5d38/go.mod h1:FM4xtOoKdT4YgM9lUUCdy2J5yGlSobWjUtBG7JOhRpo= +gomodules.xyz/bits v0.0.0-20241124114357-b668409c1b67 h1:YM4Q9086GbgnTSv/roiwHlqkqOHHaItzzteY0eKpvHs= +gomodules.xyz/bits v0.0.0-20241124114357-b668409c1b67/go.mod h1:FM4xtOoKdT4YgM9lUUCdy2J5yGlSobWjUtBG7JOhRpo= gomodules.xyz/clock v0.0.0-20200817085942-06523dba733f h1:hTyhR4r+tj1Uq7/PpFxLTzbeA0LhMVp7bEYfhkzFjdY= gomodules.xyz/clock v0.0.0-20200817085942-06523dba733f/go.mod h1:K3m7N+nBOlf91/tpv8REUGwsAgaKFwElQCuiLhm12AQ= gomodules.xyz/encoding v0.0.8 h1:r2Koq0BJ4HQCCjPTHuti0ItJDXqWJoLRHcm14Ayyp10= @@ -917,12 +917,12 @@ k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/kms v0.30.3 h1:NLg+oN45S2Y3U0WiLRzbS61AY/XrS5JBMZp531Z+Pho= k8s.io/kms v0.30.3/go.mod h1:GrMurD0qk3G4yNgGcsCEmepqf9KyyIrTXYR2lyUOJC4= -k8s.io/kube-openapi v0.0.0-20240709000822-3c01b740850f h1:2sXuKesAYbRHxL3aE2PN6zX/gcJr22cjrsej+W784Tc= -k8s.io/kube-openapi v0.0.0-20240709000822-3c01b740850f/go.mod h1:UxDHUPsUwTOOxSU+oXURfFBcAS6JwiRXTYqYwfuGowc= +k8s.io/kube-openapi v0.0.0-20240726031636-6f6746feab9c h1:CHL3IcTrTI3csK36iwYJy36uQRic+IpSoRMNH+0I8SE= +k8s.io/kube-openapi v0.0.0-20240726031636-6f6746feab9c/go.mod h1:0CVn9SVo8PeW5/JgsBZZIFmmTk5noOM8WXf2e1tCihE= k8s.io/kube-state-metrics/v2 v2.12.0 h1:is2KqFjpkF+tLqhNfr1sWCEvucb//S50wxzzEhXRzHI= k8s.io/kube-state-metrics/v2 v2.12.0/go.mod h1:s1Iq7mNhtbb4fnwMw39uUOrpdIaeoyDQDWA7OZoOqhc= -k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0 h1:jgGTlFYnhF1PM1Ax/lAlxUPE+KfCIXHaathvJg1C3ak= -k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A= +k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= kmodules.xyz/apiversion v0.2.0 h1:vAQYqZFm4xu4pbB1cAdHbFEPES6EQkcR4wc06xdTOWk= kmodules.xyz/apiversion v0.2.0/go.mod h1:oPX8g8LvlPdPX3Yc5YvCzJHQnw3YF/X4/jdW0b1am80= kmodules.xyz/authorizer v0.29.1 h1:uByGGoryKbZcfiEAhjcK/Y345I9mygNQP7DVpkMbNQQ= @@ -939,8 +939,8 @@ kmodules.xyz/monitoring-agent-api v0.30.4 h1:6CTKxYJKpWDsDYb0WRBHGFoW3xQof05d+W8 kmodules.xyz/monitoring-agent-api v0.30.4/go.mod h1:ZuTQ5uGi6H80QLsOTuuC7m58dfXDGUv0YB+s059gnr4= kmodules.xyz/offshoot-api v0.30.1 h1:TrulAYO+oBsXe9sZZGTmNWIuI8qD2izMpgcTSPvgAmI= kmodules.xyz/offshoot-api v0.30.1/go.mod h1:T3mpjR6fui0QzOcmQvIuANytW48fe9ytmy/1cgx6D4g= -kmodules.xyz/resource-metadata v0.23.1-0.20241128043209-0b8d0f0a14dd h1:oIRXeig2xOCbJ72Lpu4rZ8SF3eMVcRXAd1IpX8N0RLk= -kmodules.xyz/resource-metadata v0.23.1-0.20241128043209-0b8d0f0a14dd/go.mod h1:fnT2UJke3zXWJy8Vz+SnB8RKnilB6szX0v5nudD+oPg= +kmodules.xyz/resource-metadata v0.23.1-0.20241210123000-0a8f4eed44a9 h1:8eldjA/nk/SXNcq73xrix90fiV9u9eapqeo2JL0c/bg= +kmodules.xyz/resource-metadata v0.23.1-0.20241210123000-0a8f4eed44a9/go.mod h1:fnT2UJke3zXWJy8Vz+SnB8RKnilB6szX0v5nudD+oPg= kmodules.xyz/resource-metrics v0.30.5 h1:ZhpGeR9DCz1HTrKUg/mWhr95wlFzCPRdgVAqwaggy1o= kmodules.xyz/resource-metrics v0.30.5/go.mod h1:w9+rz7/s/kGP1GWzYSuRdCn+l7EwpesmESSEHkLBnIQ= kmodules.xyz/resource-metrics/utils v0.30.4 h1:bJS/x0Qr7N1FFdxugFbzZ/Es6HVs4ptsFlhkmgj3jac= @@ -949,8 +949,8 @@ kmodules.xyz/schema-checker v0.4.1 h1:V5UEjR6UMAXf307lTgw+9rDRfHLTNA8g/q9DngqYI9 kmodules.xyz/schema-checker v0.4.1/go.mod h1:BRXLB3Osuc9raHRJxHOgZFGecZ2aZumLXCHAOa5NPdA= kmodules.xyz/sets v0.29.0 h1:ZX/qOECzUob95JhhRtngJElHSlJ1UNNdwK4hTEy+nl0= kmodules.xyz/sets v0.29.0/go.mod h1:1oi3fR9c3SWywEjBLlHC8BBMCSz0b1/W+EofKmBoj3g= -kubedb.dev/apimachinery v0.49.0-rc.0 h1:7WLTSSoXEb8trDFW5AcDxfYJxX7j5TQU2OYijLgAfTc= -kubedb.dev/apimachinery v0.49.0-rc.0/go.mod h1:l3sl+LZXvllja1xbZTgmzHNY7hQGK/uLXjkSothH5ns= +kubedb.dev/apimachinery v0.49.0 h1:xUcUShmdoloeaYIWpDdZtET51o6aNt0YKsptJd/uEX4= +kubedb.dev/apimachinery v0.49.0/go.mod h1:jllA1R3bMRZd4uGt1vtuO6CWiX6ALDPvC8QWy/8sULs= kubeops.dev/external-dns-operator v0.0.9 h1:lfRDtIKJR8VaJpF01CcOjnA2QcSe43WDnIcqP/ieh1c= kubeops.dev/external-dns-operator v0.0.9/go.mod h1:4y15PI4XisC9qgDg1IQAIwH4a2aotIJ2AzAJEJFnYR0= kubeops.dev/falco-ui-server v0.0.4 h1:47kA+B4pJTgru3P60ng9eC+c3TP8Gcq61c91FB3ZoBQ= @@ -984,8 +984,8 @@ sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+s sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= -voyagermesh.dev/gateway-api v0.0.2-0.20241104190244-f81d0ba1a554 h1:363K/SsbRp69mcHNAVuM4xVE59qDeXS4vkxE0lu6U6o= -voyagermesh.dev/gateway-api v0.0.2-0.20241104190244-f81d0ba1a554/go.mod h1:pMW02a7dAp5E8uZI3qEGS988yhzb4O88tzYaeFMu+3A= +voyagermesh.dev/gateway-api v0.0.2-0.20241124132233-ced3a99a7eae h1:uGJ1TlESAq9fMXlHIlTtgly3tUeNS/eapVzlXoFmdcU= +voyagermesh.dev/gateway-api v0.0.2-0.20241124132233-ced3a99a7eae/go.mod h1:pMW02a7dAp5E8uZI3qEGS988yhzb4O88tzYaeFMu+3A= voyagermesh.dev/installer v0.0.0-20241102060616-ff1e91bfcef8 h1:dFbzua0lodMBm/NFaaL/NdkElKm9jHJ1VL17/T4l6w4= voyagermesh.dev/installer v0.0.0-20241102060616-ff1e91bfcef8/go.mod h1:Ie4YBydkmwa8lN4bi+vZY7gzc02jjzpwOS9vyeEhgnU= x-helm.dev/apimachinery v0.0.16 h1:Eb160xcdH9fMVHak5QSWYWxoaReytch+A7kk25QWjx0= diff --git a/vendor/github.com/docker/cli/cli/config/configfile/file.go b/vendor/github.com/docker/cli/cli/config/configfile/file.go index ba9bc9d1d..ae9dcb337 100644 --- a/vendor/github.com/docker/cli/cli/config/configfile/file.go +++ b/vendor/github.com/docker/cli/cli/config/configfile/file.go @@ -303,6 +303,7 @@ func (configFile *ConfigFile) GetAllCredentials() (map[string]types.AuthConfig, for registryHostname := range configFile.CredentialHelpers { newAuth, err := configFile.GetAuthConfig(registryHostname) if err != nil { + // TODO(thaJeztah): use context-logger, so that this output can be suppressed (in tests). logrus.WithError(err).Warnf("Failed to get credentials for registry: %s", registryHostname) continue } diff --git a/vendor/go.bytebuilders.dev/catalog-manager/pkg/gateway/expose.go b/vendor/go.bytebuilders.dev/catalog-manager/pkg/gateway/expose.go index b324ea98b..a06bbbe13 100644 --- a/vendor/go.bytebuilders.dev/catalog-manager/pkg/gateway/expose.go +++ b/vendor/go.bytebuilders.dev/catalog-manager/pkg/gateway/expose.go @@ -106,39 +106,55 @@ func PatchListener(cm *portmanager.ClusterManager, gw *gwapiv1.Gateway, lisName gw.Spec.Listeners = []gwapiv1b1.Listener{} } - for _, lis := range gw.Spec.Listeners { + var ( + lisIndex = -1 + listenerPort gwapiv1.PortNumber = -1 + ) + alreadyListenerExists := func() bool { return lisIndex != -1 } + + for i, lis := range gw.Spec.Listeners { if string(lis.Name) == lisName { - return nil // listener already exists + lisIndex = i + listenerPort = lis.Port } } - ports, usesNodePort, err := cm.ReservePorts(string(gw.Spec.GatewayClassName), 1) - if err != nil { - return err - } - - // patch new listener - - listener := GetNewListener(lisName, routeKind, ports[0].ListenerPort, https, certRefs...) - - gw.Spec.Listeners = append(gw.Spec.Listeners, *listener) - - if usesNodePort { - portMapping := fmt.Sprintf("%s%d", PortMappingKeyPrefix, ports[0].ListenerPort) - nodePort := fmt.Sprintf("%d", ports[0].NodePort) - if gw.Annotations == nil { - gw.SetAnnotations(map[string]string{ - portMapping: nodePort, - }) - } else { - gw.Annotations[portMapping] = nodePort + if !alreadyListenerExists() { + ports, usesNodePort, err := cm.AllocatePorts(string(gw.Spec.GatewayClassName), 1) + if err != nil { + return err } + if len(ports) == 0 { + return fmt.Errorf("can't allocate ports for gatewayClass %s", gw.Spec.GatewayClassName) + } + if usesNodePort { + patchPortMappingAnnotation(gw, ports[0]) + } + listenerPort = ports[0].ListenerPort } + listener := constructListener(lisName, routeKind, listenerPort, https, certRefs...) + if alreadyListenerExists() { + gw.Spec.Listeners[lisIndex] = *listener + } else { + gw.Spec.Listeners = append(gw.Spec.Listeners, *listener) + } return nil } -func GetNewListener(listenerName, routeKind string, port gwapiv1.PortNumber, https bool, certRef ...gwapiv1a2.SecretObjectReference) *gwapiv1b1.Listener { +func patchPortMappingAnnotation(gw *gwapiv1.Gateway, portInfo portmanager.PortInfo) { + portMapping := fmt.Sprintf("%s%d", PortMappingKeyPrefix, portInfo.ListenerPort) + nodePort := fmt.Sprintf("%d", portInfo.NodePort) + if gw.Annotations == nil { + gw.SetAnnotations(map[string]string{ + portMapping: nodePort, + }) + } else { + gw.Annotations[portMapping] = nodePort + } +} + +func constructListener(listenerName, routeKind string, port gwapiv1.PortNumber, https bool, certRef ...gwapiv1a2.SecretObjectReference) *gwapiv1b1.Listener { lis := &gwapiv1b1.Listener{ Name: gwapiv1.SectionName(listenerName), Port: port, diff --git a/vendor/go.bytebuilders.dev/catalog-manager/pkg/gateway/gateway.go b/vendor/go.bytebuilders.dev/catalog-manager/pkg/gateway/gateway.go index eedee1c8e..cf0da79e8 100644 --- a/vendor/go.bytebuilders.dev/catalog-manager/pkg/gateway/gateway.go +++ b/vendor/go.bytebuilders.dev/catalog-manager/pkg/gateway/gateway.go @@ -88,6 +88,12 @@ func GetGatewayParameter(kc client.Client, gwc *gwv1.GatewayClass) (*catgwapi.Ga if err != nil { return nil, err } + if gwp.Service.PortRange == "" { + gwp.Service.PortRange = catgwapi.DefaultPortRange + } + if gwp.Service.NodeportRange == "" { + gwp.Service.NodeportRange = catgwapi.DefaultNodeportRange + } gwp.GatewayClassName = gwc.Name gwp.ServiceType, err = GetGatewayServiceType(context.TODO(), kc, gwc) if err != nil { diff --git a/vendor/go.bytebuilders.dev/catalog-manager/pkg/portmanager/cluster.go b/vendor/go.bytebuilders.dev/catalog-manager/pkg/portmanager/cluster.go index 3b63e1b20..028097b5e 100644 --- a/vendor/go.bytebuilders.dev/catalog-manager/pkg/portmanager/cluster.go +++ b/vendor/go.bytebuilders.dev/catalog-manager/pkg/portmanager/cluster.go @@ -19,11 +19,14 @@ package portmanager import ( "context" "fmt" + "strconv" + "strings" "sync" catgwapi "go.bytebuilders.dev/catalog/api/gateway/v1alpha1" "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/net" "k8s.io/klog/v2" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/log" @@ -44,6 +47,29 @@ func (pi PortInfo) UsesNodePort() bool { return pi.NodePort > 0 } +func (pi PortInfo) String() string { + return fmt.Sprintf("%d/%d", pi.ListenerPort, pi.NodePort) +} + +func ParsePortInfo(str string) (*PortInfo, error) { + parts := strings.SplitN(str, "/", 2) + if len(parts) != 2 { + return nil, fmt.Errorf("invalid port info: %s", str) + } + lp, err := strconv.Atoi(parts[0]) + if err != nil { + return nil, fmt.Errorf("invalid port info: %s", str) + } + np, err := strconv.Atoi(parts[1]) + if err != nil { + return nil, fmt.Errorf("invalid port info: %s", str) + } + return &PortInfo{ + ListenerPort: gwv1.PortNumber(lp), + NodePort: gwv1.PortNumber(np), + }, nil +} + type ClusterManager struct { kc client.Reader portManagers map[string]*GatewayClassPortManager // gwcName -> gatewayClassPortManager @@ -167,7 +193,7 @@ func (cm *ClusterManager) GetGatewayClassPortManager(gatewayClassName string) *G return cm.portManagers[gatewayClassName] } -func (cm *ClusterManager) ReservePorts(gatewayClassName string, n int) ([]PortInfo, bool, error) { +func (cm *ClusterManager) AllocatePorts(gatewayClassName string, n int) ([]PortInfo, bool, error) { cm.mu.Lock() defer cm.mu.Unlock() @@ -175,7 +201,25 @@ func (cm *ClusterManager) ReservePorts(gatewayClassName string, n int) ([]PortIn if !ok { return nil, false, fmt.Errorf("port manager for gateway class %q not found", gatewayClassName) } - return gm.ReservePorts(n) + return gm.AllocatePorts(n) +} + +func (cm *ClusterManager) AllocateSeedPort() (int, error) { + cm.mu.Lock() + defer cm.mu.Unlock() + + ports, err := cm.svcMgr.AllocatePorts(net.ParsePortRangeOrDie("8080-65535"), 1) + if err != nil { + return 0, err + } + return ports[0], nil +} + +func (cm *ClusterManager) SetSeedPortAllocated(port int) { + cm.mu.Lock() + defer cm.mu.Unlock() + + cm.svcMgr.SetPortAllocated(port) } func (cm *ClusterManager) Print() { diff --git a/vendor/go.bytebuilders.dev/catalog-manager/pkg/portmanager/gatewayclass.go b/vendor/go.bytebuilders.dev/catalog-manager/pkg/portmanager/gatewayclass.go index 1d133bbf5..bc3b995b8 100644 --- a/vendor/go.bytebuilders.dev/catalog-manager/pkg/portmanager/gatewayclass.go +++ b/vendor/go.bytebuilders.dev/catalog-manager/pkg/portmanager/gatewayclass.go @@ -51,23 +51,18 @@ func NewGatewayClassPortManager(gwp *catgwapi.GatewayParameter, svcMgr *ServiceP svcMgr: svcMgr, } - if gwp.Service.PortRange != "" { - pr, err := net.ParsePortRange(gwp.Service.PortRange) - if err != nil { - return nil, err - } - mgr.listenerPorts, err = bits.NewPortRange(pr.Base, pr.Size) - if err != nil { - return nil, err - } + pr, err := net.ParsePortRange(gwp.Service.PortRange) + if err != nil { + return nil, err + } + mgr.listenerPorts, err = bits.NewPortRange(pr.Base, pr.Size) + if err != nil { + return nil, err } - if gwp.Service.NodeportRange != "" { - var err error - mgr.nodePorts, err = net.ParsePortRange(gwp.Service.NodeportRange) - if err != nil { - return nil, err - } + mgr.nodePorts, err = net.ParsePortRange(gwp.Service.NodeportRange) + if err != nil { + return nil, err } return mgr, nil @@ -181,19 +176,38 @@ func (gm *GatewayClassPortManager) NodePortRange() string { return gm.nodePortRange } -func (gm *GatewayClassPortManager) ReservePorts(n int) ([]PortInfo, bool, error) { +func (gm *GatewayClassPortManager) AllocatePorts(n int) ([]PortInfo, bool, error) { gm.mu.Lock() defer gm.mu.Unlock() - ports, err := gm.listenerPorts.AllocateNextPorts(n) + pa, err := gm.svcMgr.GetPortAlloc() if err != nil { return nil, false, err } + var ports []int + if pa == PortAllocUnique { + ports, err = gm.listenerPorts.AllocateNextPorts(n) + if err != nil { + return nil, false, err + } + } else { + ports, err = gm.svcMgr.AllocatePorts(net.ParsePortRangeOrDie(gm.portRange), n) + if err != nil { + return nil, false, err + } + for _, port := range ports { + err = gm.listenerPorts.SetPortAllocated(port) + if err != nil { + return nil, false, err + } + } + } + var nodeports []int usesNodePort := gm.UsesNodePort() if usesNodePort { - nodeports, err = gm.svcMgr.ReservePorts(gm.nodePorts, n) + nodeports, err = gm.svcMgr.AllocateNodePorts(gm.nodePorts, n) if err != nil { return nil, false, err } diff --git a/vendor/go.bytebuilders.dev/catalog-manager/pkg/portmanager/service.go b/vendor/go.bytebuilders.dev/catalog-manager/pkg/portmanager/service.go index 8d34333e8..01363e6ab 100644 --- a/vendor/go.bytebuilders.dev/catalog-manager/pkg/portmanager/service.go +++ b/vendor/go.bytebuilders.dev/catalog-manager/pkg/portmanager/service.go @@ -25,20 +25,41 @@ import ( core "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/net" + "k8s.io/apimachinery/pkg/util/sets" "k8s.io/klog/v2" "sigs.k8s.io/controller-runtime/pkg/client" ) +type PortAlloc int + +const ( + PortAllocUnknown PortAlloc = iota - 1 + PortAllocUnique + PortAllocShared +) + type ServicePortManager struct { + kc client.Reader + + ports *bits.BitField + portMap map[string][]int // ns/name -> []ports + nodePorts *bits.BitField - svcMap map[string][]int // ns/name -> []ports + npMap map[string][]int // ns/name -> []ports mu sync.RWMutex + + algPA PortAlloc + muPA sync.Mutex } -func NewServicePortManager() *ServicePortManager { +func NewServicePortManager(kc client.Reader) *ServicePortManager { return &ServicePortManager{ - nodePorts: bits.NewBitField(0xFFFF), - svcMap: map[string][]int{}, + kc: kc, + ports: bits.NewBitField(0xFFFF + 1), + portMap: map[string][]int{}, + nodePorts: bits.NewBitField(0xFFFF + 1), + npMap: map[string][]int{}, + algPA: PortAllocUnknown, } } @@ -58,17 +79,25 @@ func (sm *ServicePortManager) Init(kc client.Reader) error { return nil } -func (sm *ServicePortManager) ReservePorts(pr *net.PortRange, n int) ([]int, error) { +func (sm *ServicePortManager) AllocatePorts(pr *net.PortRange, n int) ([]int, error) { sm.mu.Lock() defer sm.mu.Unlock() - start := 30000 - end := 32768 - if pr != nil { - start = pr.Base - end = pr.Base + pr.Size - } - return sm.nodePorts.NextAvailableBitsInRange(start, end, n) + return sm.ports.AllocateAvailableBitsInRange(pr.Base, pr.Base+pr.Size, n) +} + +func (sm *ServicePortManager) SetPortAllocated(port int) { + sm.mu.Lock() + defer sm.mu.Unlock() + + sm.ports.SetBit(port) +} + +func (sm *ServicePortManager) AllocateNodePorts(pr *net.PortRange, n int) ([]int, error) { + sm.mu.Lock() + defer sm.mu.Unlock() + + return sm.nodePorts.AllocateAvailableBitsInRange(pr.Base, pr.Base+pr.Size, n) } func (sm *ServicePortManager) Update(svc *core.Service) bool { @@ -83,42 +112,66 @@ func (sm *ServicePortManager) Delete(svc types.NamespacedName) { defer sm.mu.Unlock() key := svc.String() - existing, ok := sm.svcMap[key] - if ok { + + if existing, ok := sm.portMap[key]; ok { + for _, port := range existing { + sm.ports.ClearBit(port) + } + delete(sm.portMap, key) + } + + if existing, ok := sm.npMap[key]; ok { for _, port := range existing { sm.nodePorts.ClearBit(port) } - delete(sm.svcMap, key) + delete(sm.npMap, key) } } func (sm *ServicePortManager) update(svc *core.Service) bool { key := client.ObjectKeyFromObject(svc).String() - ports := ListServiceNodePorts(svc) - existing, ok := sm.svcMap[key] + return updatePorts(sm.ports, sm.portMap, key, ListServicePorts(svc)) || + updatePorts(sm.nodePorts, sm.npMap, key, ListServiceNodePorts(svc)) +} + +func updatePorts(ports *bits.BitField, portMap map[string][]int, svcKey string, svcPorts []int) bool { + existing, ok := portMap[svcKey] if !ok { - for _, port := range ports { - sm.nodePorts.SetBit(port) + for _, port := range svcPorts { + ports.SetBit(port) } - sm.svcMap[key] = ports + portMap[svcKey] = svcPorts return true } - if equals(existing, ports) { + if equals(existing, svcPorts) { return false } for _, port := range existing { - sm.nodePorts.ClearBit(port) + ports.ClearBit(port) } - for _, port := range ports { - sm.nodePorts.SetBit(port) + for _, port := range svcPorts { + ports.SetBit(port) } - sm.svcMap[key] = ports + portMap[svcKey] = svcPorts return true } +func ListServicePorts(svc *core.Service) []int { + if svc.Spec.Type == core.ServiceTypeLoadBalancer || len(svc.Spec.ExternalIPs) > 0 { + ports := make([]int, 0, len(svc.Spec.Ports)) + for _, port := range svc.Spec.Ports { + ports = append(ports, int(port.Port)) + } + sort.Ints(ports) + return ports + } + + return nil +} + func ListServiceNodePorts(svc *core.Service) []int { ports := make([]int, 0, len(svc.Spec.Ports)) for _, port := range svc.Spec.Ports { @@ -145,10 +198,76 @@ func equals(x, y []int) bool { func (sm *ServicePortManager) Print() { sm.mu.RLock() defer sm.mu.RUnlock() - for svc, ports := range sm.svcMap { + for svc, ports := range sm.npMap { if len(ports) == 0 { continue } klog.Infof("svc=%v, nodePorts=%v \n", svc, ports) } } + +func (sm *ServicePortManager) GetPortAlloc() (PortAlloc, error) { + if sm.algPA != PortAllocUnknown { + return sm.algPA, nil + } + sm.muPA.Lock() + defer sm.muPA.Unlock() + + var gwsvcList core.ServiceList + /* + app.kubernetes.io/component: proxy + app.kubernetes.io/managed-by: envoy-gateway + app.kubernetes.io/name: envoy + gateway.envoyproxy.io/owning-gatewayclass: ace + */ + err := sm.kc.List(context.TODO(), &gwsvcList, client.MatchingLabels{ + "app.kubernetes.io/component": "proxy", + "app.kubernetes.io/managed-by": "envoy-gateway", + "app.kubernetes.io/name": "envoy", + }) + if err != nil { + return sm.algPA, err + } + for _, svc := range gwsvcList.Items { + if len(svc.Spec.ExternalIPs) > 0 { + sm.algPA = PortAllocShared + return sm.algPA, nil + } + } + + var list core.ServiceList + err = sm.kc.List(context.TODO(), &list) + if err != nil { + return sm.algPA, err + } + + baseline := sets.New[string]() + for _, svc := range gwsvcList.Items { + if svc.Spec.Type != core.ServiceTypeLoadBalancer { + continue + } + + hosts := sets.New[string]() + for _, ing := range svc.Status.LoadBalancer.Ingress { + if ing.IP != "" { + hosts.Insert(ing.IP) + } + if ing.Hostname != "" { + hosts.Insert(ing.Hostname) + } + } + if hosts.Len() > 0 { + if baseline.Len() == 0 { + baseline = hosts + } else { + if baseline.Intersection(hosts).Len() > 0 { + sm.algPA = PortAllocShared + } else { + sm.algPA = PortAllocUnique + } + return sm.algPA, nil + } + } + } + return sm.algPA, nil +} diff --git a/vendor/go.bytebuilders.dev/catalog/api/gateway/v1alpha1/gatewayconfig_types.go b/vendor/go.bytebuilders.dev/catalog/api/gateway/v1alpha1/gatewayconfig_types.go index bdf40a884..68f0936ad 100644 --- a/vendor/go.bytebuilders.dev/catalog/api/gateway/v1alpha1/gatewayconfig_types.go +++ b/vendor/go.bytebuilders.dev/catalog/api/gateway/v1alpha1/gatewayconfig_types.go @@ -213,11 +213,24 @@ type EnvoyValues struct { Service EnvoyServiceValues `json:"service"` } +const ( + AllocatedPortsKey = "catalog.appscode.com/allocated-ports" + SeedPortKey = "catalog.appscode.com/seed-port" + DefaultPortRange = "10000-12767" + DefaultNodeportRange = "30000-32767" +) + type EnvoyServiceSpec struct { // +kubebuilder:default="10000-12767" PortRange string `json:"portRange"` // +kubebuilder:default="30000-32767" NodeportRange string `json:"nodeportRange"` + + // +kubebuilder:default=LoadBalancer + Type egv1a1.ServiceType `json:"type"` + // +kubebuilder:default=Cluster + ExternalTrafficPolicy egv1a1.ServiceExternalTrafficPolicy `json:"externalTrafficPolicy"` + ExternalIPs []string `json:"externalIPs,omitempty"` } type EnvoyServiceValues struct { diff --git a/vendor/go.bytebuilders.dev/catalog/api/gateway/v1alpha1/zz_generated.deepcopy.go b/vendor/go.bytebuilders.dev/catalog/api/gateway/v1alpha1/zz_generated.deepcopy.go index 6253e774f..d76f20306 100644 --- a/vendor/go.bytebuilders.dev/catalog/api/gateway/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/go.bytebuilders.dev/catalog/api/gateway/v1alpha1/zz_generated.deepcopy.go @@ -147,6 +147,11 @@ func (in *EchoserverSpec) DeepCopy() *EchoserverSpec { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *EnvoyServiceSpec) DeepCopyInto(out *EnvoyServiceSpec) { *out = *in + if in.ExternalIPs != nil { + in, out := &in.ExternalIPs, &out.ExternalIPs + *out = make([]string, len(*in)) + copy(*out, *in) + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyServiceSpec. @@ -162,7 +167,7 @@ func (in *EnvoyServiceSpec) DeepCopy() *EnvoyServiceSpec { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *EnvoyServiceValues) DeepCopyInto(out *EnvoyServiceValues) { *out = *in - out.EnvoyServiceSpec = in.EnvoyServiceSpec + in.EnvoyServiceSpec.DeepCopyInto(&out.EnvoyServiceSpec) } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyServiceValues. @@ -183,7 +188,7 @@ func (in *EnvoySpec) DeepCopyInto(out *EnvoySpec) { *out = new(v1.SecurityContext) (*in).DeepCopyInto(*out) } - out.Service = in.Service + in.Service.DeepCopyInto(&out.Service) } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoySpec. @@ -204,7 +209,7 @@ func (in *EnvoyValues) DeepCopyInto(out *EnvoyValues) { *out = new(v1.SecurityContext) (*in).DeepCopyInto(*out) } - out.Service = in.Service + in.Service.DeepCopyInto(&out.Service) } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyValues. @@ -312,7 +317,7 @@ func (in *GatewayDns) DeepCopy() *GatewayDns { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *GatewayParameter) DeepCopyInto(out *GatewayParameter) { *out = *in - out.Service = in.Service + in.Service.DeepCopyInto(&out.Service) out.VaultServer = in.VaultServer out.FrontendTLSSecretRef = in.FrontendTLSSecretRef } diff --git a/vendor/go.bytebuilders.dev/catalog/crds/gateway.catalog.appscode.com_gatewayconfigs.yaml b/vendor/go.bytebuilders.dev/catalog/crds/gateway.catalog.appscode.com_gatewayconfigs.yaml index 125065edd..015ee6ec1 100644 --- a/vendor/go.bytebuilders.dev/catalog/crds/gateway.catalog.appscode.com_gatewayconfigs.yaml +++ b/vendor/go.bytebuilders.dev/catalog/crds/gateway.catalog.appscode.com_gatewayconfigs.yaml @@ -519,15 +519,40 @@ spec: type: object service: properties: + externalIPs: + items: + type: string + type: array + externalTrafficPolicy: + default: Cluster + description: |- + ServiceExternalTrafficPolicy describes how nodes distribute service traffic they + receive on one of the Service's "externally-facing" addresses (NodePorts, ExternalIPs, + and LoadBalancer IPs. + enum: + - Local + - Cluster + type: string nodeportRange: default: 30000-32767 type: string portRange: default: 10000-12767 type: string + type: + default: LoadBalancer + description: ServiceType string describes ingress methods + for a service + enum: + - ClusterIP + - LoadBalancer + - NodePort + type: string required: + - externalTrafficPolicy - nodeportRange - portRange + - type type: object tag: type: string diff --git a/vendor/gomodules.xyz/bits/bitfield.go b/vendor/gomodules.xyz/bits/bitfield.go index c2028bb9e..f4dbd329c 100644 --- a/vendor/gomodules.xyz/bits/bitfield.go +++ b/vendor/gomodules.xyz/bits/bitfield.go @@ -38,9 +38,9 @@ func (bf *BitField) IsSet(pos int) bool { return (bf.data[index] & (1 << bit)) != 0 } -// SetNextAvailableBits finds and sets the next `n` available bits, returning their positions. +// AllocateNextAvailableBits finds and sets the next `n` available bits, returning their positions. // It does not require the bits to be consecutive. -func (bf *BitField) SetNextAvailableBits(n int) ([]int, error) { +func (bf *BitField) AllocateNextAvailableBits(n int) ([]int, error) { if n <= 0 || n > bf.size { return nil, errors.New("invalid number of bits to allocate") } @@ -61,9 +61,9 @@ func (bf *BitField) SetNextAvailableBits(n int) ([]int, error) { return allocated, nil } -// NextAvailableBitsInRange finds the next `n` available (unset) bits within a specified range [start, end). +// AllocateAvailableBitsInRange finds the next `n` available (unset) bits within a specified range [start, end). // It does not require the bits to be consecutive. -func (bf *BitField) NextAvailableBitsInRange(start, end, n int) ([]int, error) { +func (bf *BitField) AllocateAvailableBitsInRange(start, end, n int) ([]int, error) { // Validate input range if start < 0 || end > bf.size || start >= end || n <= 0 { return nil, errors.New("invalid input parameters") @@ -72,6 +72,7 @@ func (bf *BitField) NextAvailableBitsInRange(start, end, n int) ([]int, error) { availableBits := make([]int, 0, n) for pos := start; pos < end && len(availableBits) < n; pos++ { if !bf.IsSet(pos) { + bf.SetBit(pos) availableBits = append(availableBits, pos) } } @@ -104,7 +105,7 @@ func main() { bitField := NewBitField(128) // Initialize bit field with 128 bits // Set next available 5 bits - startPos, err := bitField.SetNextAvailableBits(5) + startPos, err := bitField.AllocateNextAvailableBits(5) if err != nil { fmt.Println("Error:", err) } else { diff --git a/vendor/gomodules.xyz/bits/portrange.go b/vendor/gomodules.xyz/bits/portrange.go index 40b48db3d..32af105f1 100644 --- a/vendor/gomodules.xyz/bits/portrange.go +++ b/vendor/gomodules.xyz/bits/portrange.go @@ -27,14 +27,14 @@ func NewPortRange(startPort, size int) (*PortRange, error) { } // AllocateNextPorts allocates the next `n` available ports in the range. -// It uses `SetNextAvailableBits` to find non-consecutive available ports. +// It uses `AllocateNextAvailableBits` to find non-consecutive available ports. func (pr *PortRange) AllocateNextPorts(n int) ([]int, error) { if n <= 0 || n > pr.size { return nil, errors.New("invalid number of ports to allocate") } // Find and allocate `n` available bits - allocatedBits, err := pr.bitField.SetNextAvailableBits(n) + allocatedBits, err := pr.bitField.AllocateNextAvailableBits(n) if err != nil { return nil, fmt.Errorf("failed to allocate ports: %w", err) } diff --git a/vendor/k8s.io/utils/net/multi_listen.go b/vendor/k8s.io/utils/net/multi_listen.go new file mode 100644 index 000000000..7cb7795be --- /dev/null +++ b/vendor/k8s.io/utils/net/multi_listen.go @@ -0,0 +1,195 @@ +/* +Copyright 2024 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package net + +import ( + "context" + "fmt" + "net" + "sync" +) + +// connErrPair pairs conn and error which is returned by accept on sub-listeners. +type connErrPair struct { + conn net.Conn + err error +} + +// multiListener implements net.Listener +type multiListener struct { + listeners []net.Listener + wg sync.WaitGroup + + // connCh passes accepted connections, from child listeners to parent. + connCh chan connErrPair + // stopCh communicates from parent to child listeners. + stopCh chan struct{} +} + +// compile time check to ensure *multiListener implements net.Listener +var _ net.Listener = &multiListener{} + +// MultiListen returns net.Listener which can listen on and accept connections for +// the given network on multiple addresses. Internally it uses stdlib to create +// sub-listener and multiplexes connection requests using go-routines. +// The network must be "tcp", "tcp4" or "tcp6". +// It follows the semantics of net.Listen that primarily means: +// 1. If the host is an unspecified/zero IP address with "tcp" network, MultiListen +// listens on all available unicast and anycast IP addresses of the local system. +// 2. Use "tcp4" or "tcp6" to exclusively listen on IPv4 or IPv6 family, respectively. +// 3. The host can accept names (e.g, localhost) and it will create a listener for at +// most one of the host's IP. +func MultiListen(ctx context.Context, network string, addrs ...string) (net.Listener, error) { + var lc net.ListenConfig + return multiListen( + ctx, + network, + addrs, + func(ctx context.Context, network, address string) (net.Listener, error) { + return lc.Listen(ctx, network, address) + }) +} + +// multiListen implements MultiListen by consuming stdlib functions as dependency allowing +// mocking for unit-testing. +func multiListen( + ctx context.Context, + network string, + addrs []string, + listenFunc func(ctx context.Context, network, address string) (net.Listener, error), +) (net.Listener, error) { + if !(network == "tcp" || network == "tcp4" || network == "tcp6") { + return nil, fmt.Errorf("network %q not supported", network) + } + if len(addrs) == 0 { + return nil, fmt.Errorf("no address provided to listen on") + } + + ml := &multiListener{ + connCh: make(chan connErrPair), + stopCh: make(chan struct{}), + } + for _, addr := range addrs { + l, err := listenFunc(ctx, network, addr) + if err != nil { + // close all the sub-listeners and exit + _ = ml.Close() + return nil, err + } + ml.listeners = append(ml.listeners, l) + } + + for _, l := range ml.listeners { + ml.wg.Add(1) + go func(l net.Listener) { + defer ml.wg.Done() + for { + // Accept() is blocking, unless ml.Close() is called, in which + // case it will return immediately with an error. + conn, err := l.Accept() + // This assumes that ANY error from Accept() will terminate the + // sub-listener. We could maybe be more precise, but it + // doesn't seem necessary. + terminate := err != nil + + select { + case ml.connCh <- connErrPair{conn: conn, err: err}: + case <-ml.stopCh: + // In case we accepted a connection AND were stopped, and + // this select-case was chosen, just throw away the + // connection. This avoids potentially blocking on connCh + // or leaking a connection. + if conn != nil { + _ = conn.Close() + } + terminate = true + } + // Make sure we don't loop on Accept() returning an error and + // the select choosing the channel case. + if terminate { + return + } + } + }(l) + } + return ml, nil +} + +// Accept implements net.Listener. It waits for and returns a connection from +// any of the sub-listener. +func (ml *multiListener) Accept() (net.Conn, error) { + // wait for any sub-listener to enqueue an accepted connection + connErr, ok := <-ml.connCh + if !ok { + // The channel will be closed only when Close() is called on the + // multiListener. Closing of this channel implies that all + // sub-listeners are also closed, which causes a "use of closed + // network connection" error on their Accept() calls. We return the + // same error for multiListener.Accept() if multiListener.Close() + // has already been called. + return nil, fmt.Errorf("use of closed network connection") + } + return connErr.conn, connErr.err +} + +// Close implements net.Listener. It will close all sub-listeners and wait for +// the go-routines to exit. +func (ml *multiListener) Close() error { + // Make sure this can be called repeatedly without explosions. + select { + case <-ml.stopCh: + return fmt.Errorf("use of closed network connection") + default: + } + + // Tell all sub-listeners to stop. + close(ml.stopCh) + + // Closing the listeners causes Accept() to immediately return an error in + // the sub-listener go-routines. + for _, l := range ml.listeners { + _ = l.Close() + } + + // Wait for all the sub-listener go-routines to exit. + ml.wg.Wait() + close(ml.connCh) + + // Drain any already-queued connections. + for connErr := range ml.connCh { + if connErr.conn != nil { + _ = connErr.conn.Close() + } + } + return nil +} + +// Addr is an implementation of the net.Listener interface. It always returns +// the address of the first listener. Callers should use conn.LocalAddr() to +// obtain the actual local address of the sub-listener. +func (ml *multiListener) Addr() net.Addr { + return ml.listeners[0].Addr() +} + +// Addrs is like Addr, but returns the address for all registered listeners. +func (ml *multiListener) Addrs() []net.Addr { + var ret []net.Addr + for _, l := range ml.listeners { + ret = append(ret, l.Addr()) + } + return ret +} diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourcedashboards/kubedb.com/v1alpha2/cassandra.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourcedashboards/kubedb.com/v1alpha2/cassandra.yaml new file mode 100644 index 000000000..ce6de2083 --- /dev/null +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourcedashboards/kubedb.com/v1alpha2/cassandra.yaml @@ -0,0 +1,37 @@ +apiVersion: ui.k8s.appscode.com/v1alpha1 +kind: ResourceDashboard +metadata: + creationTimestamp: null + labels: + k8s.io/group: kubedb.com + k8s.io/kind: Cassandra + k8s.io/resource: cassandras + k8s.io/version: v1alpha2 + name: kubedb.com-v1alpha2-cassandras +spec: + dashboards: + - title: KubeDB / Cassandra / Summary + vars: + - name: namespace + value: '{{ .metadata.namespace }}' + - name: app + value: '{{ .metadata.name }}' + - title: KubeDB / Cassandra / Database + vars: + - name: namespace + value: '{{ .metadata.namespace }}' + - name: app + value: '{{ .metadata.name }}' + - title: KubeDB / Cassandra / Pod + vars: + - name: namespace + value: '{{ .metadata.namespace }}' + - name: app + value: '{{ .metadata.name }}' + provider: Grafana + resource: + group: kubedb.com + kind: Cassandra + name: cassandras + scope: Namespaced + version: v1alpha2 diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourcedashboards/kubedb.com/v1alpha2/clickhouse.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourcedashboards/kubedb.com/v1alpha2/clickhouse.yaml new file mode 100644 index 000000000..7d7b28be7 --- /dev/null +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourcedashboards/kubedb.com/v1alpha2/clickhouse.yaml @@ -0,0 +1,37 @@ +apiVersion: ui.k8s.appscode.com/v1alpha1 +kind: ResourceDashboard +metadata: + creationTimestamp: null + labels: + k8s.io/group: kubedb.com + k8s.io/kind: ClickHouse + k8s.io/resource: cliickhouses + k8s.io/version: v1alpha2 + name: kubedb.com-v1alpha2-cliickhouses +spec: + dashboards: + - title: KubeDB / ClickHouse / Summary + vars: + - name: namespace + value: '{{ .metadata.namespace }}' + - name: app + value: '{{ .metadata.name }}' + - title: KubeDB / ClickHouse / Database + vars: + - name: namespace + value: '{{ .metadata.namespace }}' + - name: app + value: '{{ .metadata.name }}' + - title: KubeDB / ClickHouse / Pod + vars: + - name: namespace + value: '{{ .metadata.namespace }}' + - name: app + value: '{{ .metadata.name }}' + provider: Grafana + resource: + group: kubedb.com + kind: ClickHouse + name: cliickhouses + scope: Namespaced + version: v1alpha2 diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourcedashboards/kubedb.com/v1alpha2/druid.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourcedashboards/kubedb.com/v1alpha2/druid.yaml new file mode 100644 index 000000000..4207e0b04 --- /dev/null +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourcedashboards/kubedb.com/v1alpha2/druid.yaml @@ -0,0 +1,37 @@ +apiVersion: ui.k8s.appscode.com/v1alpha1 +kind: ResourceDashboard +metadata: + creationTimestamp: null + labels: + k8s.io/group: kubedb.com + k8s.io/kind: Druid + k8s.io/resource: druids + k8s.io/version: v1alpha2 + name: kubedb.com-v1alpha2-druids +spec: + dashboards: + - title: KubeDB / Druid / Summary + vars: + - name: namespace + value: '{{ .metadata.namespace }}' + - name: app + value: '{{ .metadata.name }}' + - title: KubeDB / Druid / Database + vars: + - name: namespace + value: '{{ .metadata.namespace }}' + - name: app + value: '{{ .metadata.name }}' + - title: KubeDB / Druid / Pod + vars: + - name: namespace + value: '{{ .metadata.namespace }}' + - name: app + value: '{{ .metadata.name }}' + provider: Grafana + resource: + group: kubedb.com + kind: Druid + name: druids + scope: Namespaced + version: v1alpha2 diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourcedashboards/kubedb.com/v1alpha2/ferretdb.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourcedashboards/kubedb.com/v1alpha2/ferretdb.yaml new file mode 100644 index 000000000..d033ab4fc --- /dev/null +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourcedashboards/kubedb.com/v1alpha2/ferretdb.yaml @@ -0,0 +1,37 @@ +apiVersion: ui.k8s.appscode.com/v1alpha1 +kind: ResourceDashboard +metadata: + creationTimestamp: null + labels: + k8s.io/group: kubedb.com + k8s.io/kind: FerretDB + k8s.io/resource: ferretdbs + k8s.io/version: v1alpha2 + name: kubedb.com-v1alpha2-ferretdbs +spec: + dashboards: + - title: KubeDB / FerretDB / Summary + vars: + - name: namespace + value: '{{ .metadata.namespace }}' + - name: app + value: '{{ .metadata.name }}' + - title: KubeDB / FerretDB / Database + vars: + - name: namespace + value: '{{ .metadata.namespace }}' + - name: app + value: '{{ .metadata.name }}' + - title: KubeDB / FerretDB / Pod + vars: + - name: namespace + value: '{{ .metadata.namespace }}' + - name: app + value: '{{ .metadata.name }}' + provider: Grafana + resource: + group: kubedb.com + kind: FerretDB + name: ferretdbs + scope: Namespaced + version: v1alpha2 diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourcedashboards/kubedb.com/v1alpha2/mssqlserver.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourcedashboards/kubedb.com/v1alpha2/mssqlserver.yaml new file mode 100644 index 000000000..e5fd6b049 --- /dev/null +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourcedashboards/kubedb.com/v1alpha2/mssqlserver.yaml @@ -0,0 +1,37 @@ +apiVersion: ui.k8s.appscode.com/v1alpha1 +kind: ResourceDashboard +metadata: + creationTimestamp: null + labels: + k8s.io/group: kubedb.com + k8s.io/kind: MSSQLServer + k8s.io/resource: mssqlservers + k8s.io/version: v1alpha2 + name: kubedb.com-v1alpha2-mssqlservers +spec: + dashboards: + - title: KubeDB / MSSQLServer / Summary + vars: + - name: namespace + value: '{{ .metadata.namespace }}' + - name: app + value: '{{ .metadata.name }}' + - title: KubeDB / MSSQLServer / Database + vars: + - name: namespace + value: '{{ .metadata.namespace }}' + - name: app + value: '{{ .metadata.name }}' + - title: KubeDB / MSSQLServer / Pod + vars: + - name: namespace + value: '{{ .metadata.namespace }}' + - name: app + value: '{{ .metadata.name }}' + provider: Grafana + resource: + group: kubedb.com + kind: MSSQLServer + name: mssqlservers + scope: Namespaced + version: v1alpha2 diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourcedashboards/kubedb.com/v1alpha2/pgpool.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourcedashboards/kubedb.com/v1alpha2/pgpool.yaml new file mode 100644 index 000000000..da8d18eff --- /dev/null +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourcedashboards/kubedb.com/v1alpha2/pgpool.yaml @@ -0,0 +1,37 @@ +apiVersion: ui.k8s.appscode.com/v1alpha1 +kind: ResourceDashboard +metadata: + creationTimestamp: null + labels: + k8s.io/group: kubedb.com + k8s.io/kind: Pgpool + k8s.io/resource: pgpools + k8s.io/version: v1alpha2 + name: kubedb.com-v1alpha2-pgpools +spec: + dashboards: + - title: KubeDB / Pgpool / Summary + vars: + - name: namespace + value: '{{ .metadata.namespace }}' + - name: app + value: '{{ .metadata.name }}' + - title: KubeDB / Pgpool / Database + vars: + - name: namespace + value: '{{ .metadata.namespace }}' + - name: app + value: '{{ .metadata.name }}' + - title: KubeDB / Pgpool / Pod + vars: + - name: namespace + value: '{{ .metadata.namespace }}' + - name: app + value: '{{ .metadata.name }}' + provider: Grafana + resource: + group: kubedb.com + kind: Pgpool + name: pgpools + scope: Namespaced + version: v1alpha2 diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourcedashboards/kubedb.com/v1alpha2/rabbitmqs.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourcedashboards/kubedb.com/v1alpha2/rabbitmqs.yaml new file mode 100644 index 000000000..284244f61 --- /dev/null +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourcedashboards/kubedb.com/v1alpha2/rabbitmqs.yaml @@ -0,0 +1,37 @@ +apiVersion: ui.k8s.appscode.com/v1alpha1 +kind: ResourceDashboard +metadata: + creationTimestamp: null + labels: + k8s.io/group: kubedb.com + k8s.io/kind: RabbitMQ + k8s.io/resource: rabbitmqs + k8s.io/version: v1alpha2 + name: kubedb.com-v1alpha2-rabbitmqs +spec: + dashboards: + - title: KubeDB / RabbitMQ / Summary + vars: + - name: namespace + value: '{{ .metadata.namespace }}' + - name: app + value: '{{ .metadata.name }}' + - title: KubeDB / RabbitMQ / Database + vars: + - name: namespace + value: '{{ .metadata.namespace }}' + - name: app + value: '{{ .metadata.name }}' + - title: KubeDB / RabbitMQ / Pod + vars: + - name: namespace + value: '{{ .metadata.namespace }}' + - name: app + value: '{{ .metadata.name }}' + provider: Grafana + resource: + group: kubedb.com + kind: RabbitMQ + name: rabbitmqs + scope: Namespaced + version: v1alpha2 diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourcedashboards/kubedb.com/v1alpha2/singlestore.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourcedashboards/kubedb.com/v1alpha2/singlestore.yaml new file mode 100644 index 000000000..dd16ea628 --- /dev/null +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourcedashboards/kubedb.com/v1alpha2/singlestore.yaml @@ -0,0 +1,37 @@ +apiVersion: ui.k8s.appscode.com/v1alpha1 +kind: ResourceDashboard +metadata: + creationTimestamp: null + labels: + k8s.io/group: kubedb.com + k8s.io/kind: Singlestore + k8s.io/resource: singlestores + k8s.io/version: v1alpha2 + name: kubedb.com-v1alpha2-singlestores +spec: + dashboards: + - title: KubeDB / Singlestore / Summary + vars: + - name: namespace + value: '{{ .metadata.namespace }}' + - name: app + value: '{{ .metadata.name }}' + - title: KubeDB / Singlestore / Database + vars: + - name: namespace + value: '{{ .metadata.namespace }}' + - name: app + value: '{{ .metadata.name }}' + - title: KubeDB / Singlestore / Pod + vars: + - name: namespace + value: '{{ .metadata.namespace }}' + - name: app + value: '{{ .metadata.name }}' + provider: Grafana + resource: + group: kubedb.com + kind: Singlestore + name: singlestores + scope: Namespaced + version: v1alpha2 diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourcedashboards/kubedb.com/v1alpha2/solr.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourcedashboards/kubedb.com/v1alpha2/solr.yaml new file mode 100644 index 000000000..a2be9be86 --- /dev/null +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourcedashboards/kubedb.com/v1alpha2/solr.yaml @@ -0,0 +1,37 @@ +apiVersion: ui.k8s.appscode.com/v1alpha1 +kind: ResourceDashboard +metadata: + creationTimestamp: null + labels: + k8s.io/group: kubedb.com + k8s.io/kind: solr + k8s.io/resource: solrs + k8s.io/version: v1alpha2 + name: kubedb.com-v1alpha2-solrs +spec: + dashboards: + - title: KubeDB / solr / Summary + vars: + - name: namespace + value: '{{ .metadata.namespace }}' + - name: app + value: '{{ .metadata.name }}' + - title: KubeDB / solr / Database + vars: + - name: namespace + value: '{{ .metadata.namespace }}' + - name: app + value: '{{ .metadata.name }}' + - title: KubeDB / solr / Pod + vars: + - name: namespace + value: '{{ .metadata.namespace }}' + - name: app + value: '{{ .metadata.name }}' + provider: Grafana + resource: + group: kubedb.com + kind: solr + name: solrs + scope: Namespaced + version: v1alpha2 diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourcedashboards/kubedb.com/v1alpha2/zookeeper.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourcedashboards/kubedb.com/v1alpha2/zookeeper.yaml new file mode 100644 index 000000000..24de5f02b --- /dev/null +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourcedashboards/kubedb.com/v1alpha2/zookeeper.yaml @@ -0,0 +1,37 @@ +apiVersion: ui.k8s.appscode.com/v1alpha1 +kind: ResourceDashboard +metadata: + creationTimestamp: null + labels: + k8s.io/group: kubedb.com + k8s.io/kind: ZooKeeeper + k8s.io/resource: zookeeepers + k8s.io/version: v1alpha2 + name: kubedb.com-v1alpha2-zookeeepers +spec: + dashboards: + - title: KubeDB / ZooKeeeper / Summary + vars: + - name: namespace + value: '{{ .metadata.namespace }}' + - name: app + value: '{{ .metadata.name }}' + - title: KubeDB / ZooKeeeper / Database + vars: + - name: namespace + value: '{{ .metadata.namespace }}' + - name: app + value: '{{ .metadata.name }}' + - title: KubeDB / ZooKeeeper / Pod + vars: + - name: namespace + value: '{{ .metadata.namespace }}' + - name: app + value: '{{ .metadata.name }}' + provider: Grafana + resource: + group: kubedb.com + kind: ZooKeeeper + name: zookeeepers + scope: Namespaced + version: v1alpha2 diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/addons.kubestash.com/v1alpha1/addons.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/addons.kubestash.com/v1alpha1/addons.yaml index 0d19bbaf1..13df3d565 100644 --- a/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/addons.kubestash.com/v1alpha1/addons.yaml +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/addons.kubestash.com/v1alpha1/addons.yaml @@ -27,21 +27,10 @@ spec: version: v1alpha1 validation: openAPIV3Schema: - description: Addon specifies the backup and restore capabilities for a specific - type of target. For example, MySQL addon specifies the backup and restore - capabilities of MySQL database where Postgres addon specifies backup and restore - capabilities for PostgreSQL database. An Addon CR defines these capabilities - as tasks for backup and restore. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: properties: @@ -69,14 +58,9 @@ spec: type: object type: object spec: - description: AddonSpec defines the specification for backup and restore - tasks. properties: backupTasks: - description: BackupTasks specifies a list of backup tasks that can be - performed by the addon. items: - description: Task defines the specification of a backup/restore task. properties: driver: allOf: @@ -88,23 +72,8 @@ spec: - Restic - WalG - VolumeSnapshotter - description: 'Driver specifies the underlying tool that will be - used to upload the data to the backend storage. Valid values - are: - "Restic": The underlying tool is [restic](https://restic.net/). - - "WalG": The underlying tool is [wal-g](https://github.com/wal-g/wal-g).' type: string executor: - description: 'Executor specifies the type of entity that will - execute the task. For example, it can be a Job, a sidecar container, - an ephemeral container, or a Job that creates additional Jobs/Pods - for executing the backup/restore logic. Valid values are: - - "Job": KubeStash will create a Job to execute the backup/restore - task. - "Sidecar": KubeStash will inject a sidecar container - into the application to execute the backup/restore task. - "EphemeralContainer": - KubeStash will attach an ephemeral container to the respective - Pods to execute the backup/restore task. - "MultiLevelJob": - KubeStash will create a Job that will create additional Jobs/Pods - to execute the backup/restore task.' enum: - Job - Sidecar @@ -112,99 +81,40 @@ spec: - MultiLevelJob type: string function: - description: Function specifies the name of a Function CR that - defines a container definition which will execute the backup/restore - logic for a particular application. type: string name: - description: Name specifies the name of the task. The name of - a Task should indicate what this task does. For example, a name - LogicalBackup indicate that this task performs a logical backup - of a database. type: string parameters: - description: Parameters defines a list of parameters that is used - by the task to execute its logic. items: - description: ParameterDefinition defines the parameter names, - their usage, their requirements etc. properties: default: - description: Default specifies a default value for the parameter type: string name: - description: Name specifies the name of the parameter type: string required: - description: Required specify whether this parameter is - required or not type: boolean usage: - description: Usage specifies the usage of this parameter type: string type: object type: array singleton: - description: Singleton specifies whether this task will be executed - on a single job or across multiple jobs. type: boolean volumeMounts: - description: VolumeMounts specifies the mount path of the volumes - specified in the VolumeTemplate section. These volumes will - be mounted directly on the Job/Container created/injected by - KubeStash operator. If the volume type is VolumeClaimTemplate, - then KubeStash operator is responsible for creating the volume. items: - description: VolumeMount describes a mounting of a Volume within - a container. properties: mountPath: - description: Path within the container at which the volume - should be mounted. Must not contain ':'. type: string mountPropagation: - description: mountPropagation determines how mounts are - propagated from the host to container and the other way - around. When not set, MountPropagationNone is used. This - field is beta in 1.10. When RecursiveReadOnly is set to - IfPossible or to Enabled, MountPropagation must be None - or unspecified (which defaults to None). type: string name: - description: This must match the Name of a Volume. type: string readOnly: - description: Mounted read-only if true, read-write otherwise - (false or unspecified). Defaults to false. type: boolean recursiveReadOnly: - description: "RecursiveReadOnly specifies whether read-only - mounts should be handled recursively. \n If ReadOnly is - false, this field has no meaning and must be unspecified. - \n If ReadOnly is true, and this field is set to Disabled, - the mount is not made recursively read-only. If this - field is set to IfPossible, the mount is made recursively - read-only, if it is supported by the container runtime. - \ If this field is set to Enabled, the mount is made recursively - read-only if it is supported by the container runtime, - otherwise the pod will not be started and an error will - be generated to indicate the reason. \n If this field - is set to IfPossible or Enabled, MountPropagation must - be set to None (or be unspecified, which defaults to None). - \n If this field is not specified, it is treated as an - equivalent of Disabled." type: string subPath: - description: Path within the volume from which the container's - volume should be mounted. Defaults to "" (volume's root). type: string subPathExpr: - description: Expanded path within the volume from which - the container's volume should be mounted. Behaves similarly - to SubPath but environment variable references $(VAR_NAME) - are expanded using the container's environment. Defaults - to "" (volume's root). SubPathExpr and SubPath are mutually - exclusive. type: string required: - mountPath @@ -212,265 +122,113 @@ spec: type: object type: array volumeTemplate: - description: VolumeTemplate specifies a list of volume templates - that is used by the respective backup/restore Job to execute - its logic. User can overwrite these volume templates using `addonVolumes` - field of BackupConfiguration/BackupBatch. items: - description: VolumeTemplate specifies the name, usage, and the - source of volume that will be used by the addon to execute - it's backup/restore task. properties: name: - description: Name specifies the name of the volume type: string source: - description: Source specifies the source of this volume. properties: awsElasticBlockStore: - description: 'awsElasticBlockStore represents an AWS - Disk resource that is attached to a kubelet''s host - machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' properties: fsType: - description: 'fsType is the filesystem type of the - volume that you want to mount. Tip: Ensure that - the filesystem type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string partition: - description: 'partition is the partition in the - volume that you want to mount. If omitted, the - default is to mount by volume name. Examples: - For volume /dev/sda1, you specify the partition - as "1". Similarly, the volume partition for /dev/sda - is "0" (or you can leave the property empty).' format: int32 type: integer readOnly: - description: 'readOnly value true will force the - readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: boolean volumeID: - description: 'volumeID is unique ID of the persistent - disk resource in AWS (Amazon EBS volume). More - info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: string required: - volumeID type: object azureDisk: - description: azureDisk represents an Azure Data Disk - mount on the host and bind mount to the pod. properties: cachingMode: - description: 'cachingMode is the Host Caching mode: - None, Read Only, Read Write.' type: string diskName: - description: diskName is the Name of the data disk - in the blob storage type: string diskURI: - description: diskURI is the URI of data disk in - the blob storage type: string fsType: - description: fsType is Filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string kind: - description: 'kind expected values are Shared: multiple - blob disks per storage account Dedicated: single - blob disk per storage account Managed: azure - managed data disk (only in managed availability - set). defaults to shared' type: string readOnly: - description: readOnly Defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean required: - diskName - diskURI type: object azureFile: - description: azureFile represents an Azure File Service - mount on the host and bind mount to the pod. properties: readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean secretName: - description: secretName is the name of secret that - contains Azure Storage Account Name and Key type: string shareName: - description: shareName is the azure share Name type: string required: - secretName - shareName type: object cephfs: - description: cephFS represents a Ceph FS mount on the - host that shares a pod's lifetime properties: monitors: - description: 'monitors is Required: Monitors is - a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic path: - description: 'path is Optional: Used as the mounted - root, rather than the full Ceph tree, default - is /' type: string readOnly: - description: 'readOnly is Optional: Defaults to - false (read/write). ReadOnly here will force the - ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: boolean secretFile: - description: 'secretFile is Optional: SecretFile - is the path to key ring for User, default is /etc/ceph/user.secret - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string secretRef: - description: 'secretRef is Optional: SecretRef is - reference to the authentication secret for User, - default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is optional: User is the rados - user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string required: - monitors type: object cinder: - description: 'cinder represents a cinder volume attached - and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' properties: fsType: - description: 'fsType is the filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if unspecified. - More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string readOnly: - description: 'readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: boolean secretRef: - description: 'secretRef is optional: points to a - secret object containing parameters used to connect - to OpenStack.' properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeID: - description: 'volumeID used to identify the volume - in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string required: - volumeID type: object configMap: - description: configMap represents a configMap that should - populate this volume properties: defaultMode: - description: 'defaultMode is optional: mode bits - used to set permissions on created files by default. - Must be an octal value between 0000 and 0777 or - a decimal value between 0 and 511. YAML accepts - both octal and decimal values, JSON requires decimal - values for mode bits. Defaults to 0644. Directories - within the path are not affected by this setting. - This might be in conflict with other options that - affect the file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer items: - description: items if unspecified, each key-value - pair in the Data field of the referenced ConfigMap - will be projected into the volume as a file whose - name is the key and content is the value. If specified, - the listed keys will be projected into the specified - paths, and unlisted keys will not be present. - If a key is specified which is not present in - the ConfigMap, the volume setup will error unless - it is marked optional. Paths must be relative - and may not contain the '..' path or start with - '..'. items: - description: Maps a string key to a path within - a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: mode bits - used to set permissions on this file. Must - be an octal value between 0000 and 0777 - or a decimal value between 0 and 511. YAML - accepts both octal and decimal values, JSON - requires decimal values for mode bits. If - not specified, the volume defaultMode will - be used. This might be in conflict with - other options that affect the file mode, - like fsGroup, and the result can be other - mode bits set.' format: int32 type: integer path: - description: path is the relative path of - the file to map the key to. May not be an - absolute path. May not contain the path - element '..'. May not start with the string - '..'. type: string required: - key @@ -480,161 +238,67 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. This field is - effectively required, but due to backwards compatibility - is allowed to be empty. Instances of this type - with an empty value here are almost certainly - wrong. TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether the ConfigMap - or its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic csi: - description: csi (Container Storage Interface) represents - ephemeral storage that is handled by certain external - CSI drivers (Beta feature). properties: driver: - description: driver is the name of the CSI driver - that handles this volume. Consult with your admin - for the correct name as registered in the cluster. type: string fsType: - description: fsType to mount. Ex. "ext4", "xfs", - "ntfs". If not provided, the empty value is passed - to the associated CSI driver which will determine - the default filesystem to apply. type: string nodePublishSecretRef: - description: nodePublishSecretRef is a reference - to the secret object containing sensitive information - to pass to the CSI driver to complete the CSI - NodePublishVolume and NodeUnpublishVolume calls. - This field is optional, and may be empty if no - secret is required. If the secret object contains - more than one secret, all secret references are - passed. properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic readOnly: - description: readOnly specifies a read-only configuration - for the volume. Defaults to false (read/write). type: boolean volumeAttributes: additionalProperties: type: string - description: volumeAttributes stores driver-specific - properties that are passed to the CSI driver. - Consult your driver's documentation for supported - values. type: object required: - driver type: object downwardAPI: - description: downwardAPI represents downward API about - the pod that should populate this volume properties: defaultMode: - description: 'Optional: mode bits to use on created - files by default. Must be a Optional: mode bits - used to set permissions on created files by default. - Must be an octal value between 0000 and 0777 or - a decimal value between 0 and 511. YAML accepts - both octal and decimal values, JSON requires decimal - values for mode bits. Defaults to 0644. Directories - within the path are not affected by this setting. - This might be in conflict with other options that - affect the file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer items: - description: Items is a list of downward API volume - file items: - description: DownwardAPIVolumeFile represents - information to create the file containing the - pod field properties: fieldRef: - description: 'Required: Selects a field of - the pod: only annotations, labels, name, - namespace and uid are supported.' properties: apiVersion: - description: Version of the schema the - FieldPath is written in terms of, defaults - to "v1". type: string fieldPath: - description: Path of the field to select - in the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode bits used to - set permissions on this file, must be an - octal value between 0000 and 0777 or a decimal - value between 0 and 511. YAML accepts both - octal and decimal values, JSON requires - decimal values for mode bits. If not specified, - the volume defaultMode will be used. This - might be in conflict with other options - that affect the file mode, like fsGroup, - and the result can be other mode bits set.' format: int32 type: integer path: - description: 'Required: Path is the relative - path name of the file to be created. Must - not be absolute or contain the ''..'' path. - Must be utf-8 encoded. The first item of - the relative path must not start with ''..''' type: string resourceFieldRef: - description: 'Selects a resource of the container: - only resources limits and requests (limits.cpu, - limits.memory, requests.cpu and requests.memory) - are currently supported.' properties: containerName: - description: 'Container name: required - for volumes, optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output format - of the exposed resources, defaults to - "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource to select' type: string required: - resource @@ -647,195 +311,50 @@ spec: x-kubernetes-list-type: atomic type: object emptyDir: - description: 'emptyDir represents a temporary directory - that shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' properties: medium: - description: 'medium represents what type of storage - medium should back this directory. The default - is "" which means to use the node''s default medium. - Must be an empty string (default) or Memory. More - info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' type: string sizeLimit: anyOf: - type: integer - type: string - description: 'sizeLimit is the total amount of local - storage required for this EmptyDir volume. The - size limit is also applicable for memory medium. - The maximum usage on memory medium EmptyDir would - be the minimum value between the SizeLimit specified - here and the sum of memory limits of all containers - in a pod. The default is nil which means that - the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object ephemeral: - description: "ephemeral represents a volume that is - handled by a cluster storage driver. The volume's - lifecycle is tied to the pod that defines it - it - will be created before the pod starts, and deleted - when the pod is removed. \n Use this if: a) the volume - is only needed while the pod runs, b) features of - normal volumes like restoring from snapshot or capacity - tracking are needed, c) the storage driver is specified - through a storage class, and d) the storage driver - supports dynamic volume provisioning through a PersistentVolumeClaim - (see EphemeralVolumeSource for more information on - the connection between this volume type and PersistentVolumeClaim). - \n Use PersistentVolumeClaim or one of the vendor-specific - APIs for volumes that persist for longer than the - lifecycle of an individual pod. \n Use CSI for light-weight - local ephemeral volumes if the CSI driver is meant - to be used that way - see the documentation of the - driver for more information. \n A pod can use both - types of ephemeral volumes and persistent volumes - at the same time." properties: volumeClaimTemplate: - description: "Will be used to create a stand-alone - PVC to provision the volume. The pod in which - this EphemeralVolumeSource is embedded will be - the owner of the PVC, i.e. the PVC will be deleted - together with the pod. The name of the PVC will - be `-` where `` - is the name from the `PodSpec.Volumes` array entry. - Pod validation will reject the pod if the concatenated - name is not valid for a PVC (for example, too - long). \n An existing PVC with that name that - is not owned by the pod will *not* be used for - the pod to avoid using an unrelated volume by - mistake. Starting the pod is then blocked until - the unrelated PVC is removed. If such a pre-created - PVC is meant to be used by the pod, the PVC has - to updated with an owner reference to the pod - once the pod exists. Normally this should not - be necessary, but it may be useful when manually - reconstructing a broken cluster. \n This field - is read-only and no changes will be made by Kubernetes - to the PVC after it has been created. \n Required, - must not be nil." properties: metadata: - description: May contain labels and annotations - that will be copied into the PVC when creating - it. No other fields are allowed and will be - rejected during validation. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured - key value map stored with a resource that - may be set by external tools to store - and retrieve arbitrary metadata. They - are not queryable and should be preserved - when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName is an optional - prefix, used by the server, to generate - a unique name ONLY IF the Name field has - not been provided. If this field is used, - the name returned to the client will be - different than the name passed. This value - will also be combined with a unique suffix. - The provided value has the same validation - rules as the Name field, and may be truncated - by the length of the suffix required to - make the value unique on the server. \n - If this field is specified and the generated - name exists, the server will NOT return - a 409 - instead, it will either return - 201 Created or 500 with Reason ServerTimeout - indicating a unique name could not be - found in the time allotted, and the client - should retry (optionally after the time - indicated in the Retry-After header). - \n Applied only if Name is not specified. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string keys and values - that can be used to organize and categorize - (scope and select) objects. May match - selectors of replication controllers and - services. More info: http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must be unique within - a namespace. Is required when creating - resources, although some resources may - allow a client to request the generation - of an appropriate name automatically. - Name is primarily intended for creation - idempotence and configuration definition. - Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace defines the space - within each name must be unique. An empty - namespace is equivalent to the \"default\" - namespace, but \"default\" is the canonical - representation. Not all objects are required - to be scoped to a namespace - the value - of this field for those objects will be - empty. \n Must be a DNS_LABEL. Cannot - be updated. More info: http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects depended by - this object. If ALL objects in the list - have been deleted, this object will be - garbage collected. If this object is managed - by a controller, then an entry in this - list will point to this controller, with - the controller field set to true. There - cannot be more than one managing controller. items: - description: OwnerReference contains enough - information to let you identify an owning - object. An owning object must be in - the same namespace as the dependent, - or be cluster-scoped, so there is no - namespace field. properties: apiVersion: - description: API version of the referent. type: string blockOwnerDeletion: - description: If true, AND if the owner - has the "foregroundDeletion" finalizer, - then the owner cannot be deleted - from the key-value store until this - reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage collector interacts - with this field and enforces the - foreground deletion. Defaults to - false. To set this field, a user - needs "delete" permission of the - owner, otherwise 422 (Unprocessable - Entity) will be returned. type: boolean controller: - description: If true, this reference - points to the managing controller. type: boolean kind: - description: 'Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -847,52 +366,19 @@ spec: type: array type: object spec: - description: The specification for the PersistentVolumeClaim. - The entire content is copied unchanged into - the PVC that gets created from this template. - The same fields as in a PersistentVolumeClaim - are also valid here. properties: accessModes: - description: 'accessModes contains the desired - access modes the volume should have. More - info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource field can be used - to specify either: * An existing VolumeSnapshot - object (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an external controller - can support the specified data source, - it will create a new volume based on the - contents of the specified data source. - When the AnyVolumeDataSource feature gate - is enabled, dataSource contents will be - copied to dataSourceRef, and dataSourceRef - contents will be copied to dataSource - when dataSourceRef.namespace is not specified. - If the namespace is specified, then dataSourceRef - will not be copied to dataSource.' properties: apiGroup: - description: APIGroup is the group for - the resource being referenced. If - APIGroup is not specified, the specified - Kind must be in the core API group. - For any other third-party types, APIGroup - is required. type: string kind: - description: Kind is the type of resource - being referenced type: string name: - description: Name is the name of resource - being referenced type: string required: - kind @@ -900,85 +386,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef specifies the - object from which to populate the volume - with data, if a non-empty volume is desired. - This may be any object from a non-empty - API group (non core object) or a PersistentVolumeClaim - object. When this field is specified, - volume binding will only succeed if the - type of the specified object matches some - installed volume populator or dynamic - provisioner. This field will replace the - functionality of the dataSource field - and as such if both fields are non-empty, - they must have the same value. For backwards - compatibility, when namespace isn''t specified - in dataSourceRef, both fields (dataSource - and dataSourceRef) will be set to the - same value automatically if one of them - is empty and the other is non-empty. When - namespace is specified in dataSourceRef, - dataSource isn''t set to the same value - and must be empty. There are three important - differences between dataSource and dataSourceRef: - * While dataSource only allows two specific - types of objects, dataSourceRef allows - any non-core object, as well as PersistentVolumeClaim - objects. * While dataSource ignores disallowed - values (dropping them), dataSourceRef - preserves all values, and generates an - error if a disallowed value is specified. - * While dataSource only allows local objects, - dataSourceRef allows objects in any namespaces. - (Beta) Using this field requires the AnyVolumeDataSource - feature gate to be enabled. (Alpha) Using - the namespace field of dataSourceRef requires - the CrossNamespaceVolumeDataSource feature - gate to be enabled.' properties: apiGroup: - description: APIGroup is the group for - the resource being referenced. If - APIGroup is not specified, the specified - Kind must be in the core API group. - For any other third-party types, APIGroup - is required. type: string kind: - description: Kind is the type of resource - being referenced type: string name: - description: Name is the name of resource - being referenced type: string namespace: - description: Namespace is the namespace - of resource being referenced Note - that when a namespace is specified, - a gateway.networking.k8s.io/ReferenceGrant - object is required in the referent - namespace to allow that namespace's - owner to accept the reference. See - the ReferenceGrant documentation for - details. (Alpha) This field requires - the CrossNamespaceVolumeDataSource - feature gate to be enabled. type: string required: - kind - name type: object resources: - description: 'resources represents the minimum - resources the volume should have. If RecoverVolumeExpansionFailure - feature is enabled users are allowed to - specify resource requirements that are - lower than previous value but must still - be higher than capacity recorded in the - status field of the claim. More info: - https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -987,9 +408,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum - amount of compute resources allowed. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -998,50 +416,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the - minimum amount of compute resources - required. If Requests is omitted for - a container, it defaults to Limits - if that is explicitly specified, otherwise - to an implementation-defined value. - Requests cannot exceed Limits. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is a label query over - volumes to consider for binding. properties: matchExpressions: - description: matchExpressions is a list - of label selector requirements. The - requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to a set - of values. Valid operators are - In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array - of string values. If the operator - is In or NotIn, the values array - must be non-empty. If the operator - is Exists or DoesNotExist, the - values array must be empty. - This array is replaced during - a strategic merge patch. items: type: string type: array @@ -1055,57 +441,16 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of - {key,value} pairs. A single {key,value} - in the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName is the name - of the StorageClass required by the claim. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName - may be used to set the VolumeAttributesClass - used by this claim. If specified, the - CSI driver will create or update the volume - with the attributes defined in the corresponding - VolumeAttributesClass. This has a different - purpose than storageClassName, it can - be changed after the claim is created. - An empty string value means that no VolumeAttributesClass - will be applied to the claim but it''s - not allowed to reset this field to empty - string once it is set. If unspecified - and the PersistentVolumeClaim is unbound, - the default VolumeAttributesClass will - be set by the persistentvolume controller - if it exists. If the resource referred - to by volumeAttributesClass does not exist, - this PersistentVolumeClaim will be set - to a Pending state, as reflected by the - modifyVolumeStatus field, until such as - a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires the - VolumeAttributesClass feature gate to - be enabled.' type: string volumeMode: - description: volumeMode defines what type - of volume is required by the claim. Value - of Filesystem is implied when not included - in claim spec. type: string volumeName: - description: volumeName is the binding reference - to the PersistentVolume backing this claim. type: string type: object required: @@ -1113,89 +458,41 @@ spec: type: object type: object fc: - description: fc represents a Fibre Channel resource - that is attached to a kubelet's host machine and then - exposed to the pod. properties: fsType: - description: 'fsType is the filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. TODO: how - do we prevent errors in the filesystem from compromising - the machine' type: string lun: - description: 'lun is Optional: FC target lun number' format: int32 type: integer readOnly: - description: 'readOnly is Optional: Defaults to - false (read/write). ReadOnly here will force the - ReadOnly setting in VolumeMounts.' type: boolean targetWWNs: - description: 'targetWWNs is Optional: FC target - worldwide names (WWNs)' items: type: string type: array x-kubernetes-list-type: atomic wwids: - description: 'wwids Optional: FC volume world wide - identifiers (wwids) Either wwids or combination - of targetWWNs and lun must be set, but not both - simultaneously.' items: type: string type: array x-kubernetes-list-type: atomic type: object flexVolume: - description: flexVolume represents a generic volume - resource that is provisioned/attached using an exec - based plugin. properties: driver: - description: driver is the name of the driver to - use for this volume. type: string fsType: - description: fsType is the filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". The - default filesystem depends on FlexVolume script. type: string options: additionalProperties: type: string - description: 'options is Optional: this field holds - extra command options if any.' type: object readOnly: - description: 'readOnly is Optional: defaults to - false (read/write). ReadOnly here will force the - ReadOnly setting in VolumeMounts.' type: boolean secretRef: - description: 'secretRef is Optional: secretRef is - reference to the secret object containing sensitive - information to pass to the plugin scripts. This - may be empty if no secret object is specified. - If the secret object contains more than one secret, - all secrets are passed to the plugin scripts.' properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic @@ -1203,179 +500,79 @@ spec: - driver type: object flocker: - description: flocker represents a Flocker volume attached - to a kubelet's host machine. This depends on the Flocker - control service being running properties: datasetName: - description: datasetName is Name of the dataset - stored as metadata -> name on the dataset for - Flocker should be considered as deprecated type: string datasetUUID: - description: datasetUUID is the UUID of the dataset. - This is unique identifier of a Flocker dataset type: string type: object gcePersistentDisk: - description: 'gcePersistentDisk represents a GCE Disk - resource that is attached to a kubelet''s host machine - and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' properties: fsType: - description: 'fsType is filesystem type of the volume - that you want to mount. Tip: Ensure that the filesystem - type is supported by the host operating system. - Examples: "ext4", "xfs", "ntfs". Implicitly inferred - to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string partition: - description: 'partition is the partition in the - volume that you want to mount. If omitted, the - default is to mount by volume name. Examples: - For volume /dev/sda1, you specify the partition - as "1". Similarly, the volume partition for /dev/sda - is "0" (or you can leave the property empty). - More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' format: int32 type: integer pdName: - description: 'pdName is unique name of the PD resource - in GCE. Used to identify the disk in GCE. More - info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: string readOnly: - description: 'readOnly here will force the ReadOnly - setting in VolumeMounts. Defaults to false. More - info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: boolean required: - pdName type: object glusterfs: - description: 'glusterfs represents a Glusterfs mount - on the host that shares a pod''s lifetime. More info: - https://examples.k8s.io/volumes/glusterfs/README.md' properties: endpoints: - description: 'endpoints is the endpoint name that - details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string path: - description: 'path is the Glusterfs volume path. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string readOnly: - description: 'readOnly here will force the Glusterfs - volume to be mounted with read-only permissions. - Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: boolean required: - endpoints - path type: object hostPath: - description: 'hostPath represents a pre-existing file - or directory on the host machine that is directly - exposed to the container. This is generally used for - system agents or other privileged things that are - allowed to see the host machine. Most containers will - NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- TODO(jonesdl) We need to restrict who can use - host directory mounts and who can/can not mount host - directories as read/write.' properties: path: - description: 'path of the directory on the host. - If the path is a symlink, it will follow the link - to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string type: - description: 'type for HostPath Volume Defaults - to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string required: - path type: object iscsi: - description: 'iscsi represents an ISCSI Disk resource - that is attached to a kubelet''s host machine and - then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md' properties: chapAuthDiscovery: - description: chapAuthDiscovery defines whether support - iSCSI Discovery CHAP authentication type: boolean chapAuthSession: - description: chapAuthSession defines whether support - iSCSI Session CHAP authentication type: boolean fsType: - description: 'fsType is the filesystem type of the - volume that you want to mount. Tip: Ensure that - the filesystem type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string initiatorName: - description: initiatorName is the custom iSCSI Initiator - Name. If initiatorName is specified with iscsiInterface - simultaneously, new iSCSI interface : will be created for the connection. type: string iqn: - description: iqn is the target iSCSI Qualified Name. type: string iscsiInterface: - description: iscsiInterface is the interface Name - that uses an iSCSI transport. Defaults to 'default' - (tcp). type: string lun: - description: lun represents iSCSI Target Lun number. format: int32 type: integer portals: - description: portals is the iSCSI Target Portal - List. The portal is either an IP or ip_addr:port - if the port is other than default (typically TCP - ports 860 and 3260). items: type: string type: array x-kubernetes-list-type: atomic readOnly: - description: readOnly here will force the ReadOnly - setting in VolumeMounts. Defaults to false. type: boolean secretRef: - description: secretRef is the CHAP Secret for iSCSI - target and initiator authentication properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic targetPortal: - description: targetPortal is iSCSI Target Portal. - The Portal is either an IP or ip_addr:port if - the port is other than default (typically TCP - ports 860 and 3260). type: string required: - iqn @@ -1383,163 +580,66 @@ spec: - targetPortal type: object nfs: - description: 'nfs represents an NFS mount on the host - that shares a pod''s lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' properties: path: - description: 'path that is exported by the NFS server. - More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string readOnly: - description: 'readOnly here will force the NFS export - to be mounted with read-only permissions. Defaults - to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: boolean server: - description: 'server is the hostname or IP address - of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string required: - path - server type: object persistentVolumeClaim: - description: 'persistentVolumeClaimVolumeSource represents - a reference to a PersistentVolumeClaim in the same - namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: claimName: - description: 'claimName is the name of a PersistentVolumeClaim - in the same namespace as the pod using this volume. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' type: string readOnly: - description: readOnly Will force the ReadOnly setting - in VolumeMounts. Default false. type: boolean required: - claimName type: object photonPersistentDisk: - description: photonPersistentDisk represents a PhotonController - persistent disk attached and mounted on kubelets host - machine properties: fsType: - description: fsType is the filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string pdID: - description: pdID is the ID that identifies Photon - Controller persistent disk type: string required: - pdID type: object portworxVolume: - description: portworxVolume represents a portworx volume - attached and mounted on kubelets host machine properties: fsType: - description: fSType represents the filesystem type - to mount Must be a filesystem type supported by - the host operating system. Ex. "ext4", "xfs". - Implicitly inferred to be "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean volumeID: - description: volumeID uniquely identifies a Portworx - volume type: string required: - volumeID type: object projected: - description: projected items for all in one resources - secrets, configmaps, and downward API properties: defaultMode: - description: defaultMode are the mode bits used - to set permissions on created files by default. - Must be an octal value between 0000 and 0777 or - a decimal value between 0 and 511. YAML accepts - both octal and decimal values, JSON requires decimal - values for mode bits. Directories within the path - are not affected by this setting. This might be - in conflict with other options that affect the - file mode, like fsGroup, and the result can be - other mode bits set. format: int32 type: integer sources: - description: sources is the list of volume projections items: - description: Projection that may be projected - along with other supported volume types properties: clusterTrustBundle: - description: "ClusterTrustBundle allows a - pod to access the `.spec.trustBundle` field - of ClusterTrustBundle objects in an auto-updating - file. \n Alpha, gated by the ClusterTrustBundleProjection - feature gate. \n ClusterTrustBundle objects - can either be selected by name, or by the - combination of signer name and a label selector. - \n Kubelet performs aggressive normalization - of the PEM contents written into the pod - filesystem. Esoteric PEM features such - as inter-block comments and block headers - are stripped. Certificates are deduplicated. - The ordering of certificates within the - file is arbitrary, and Kubelet may change - the order over time." properties: labelSelector: - description: Select all ClusterTrustBundles - that match this label selector. Only - has effect if signerName is set. Mutually-exclusive - with name. If unset, interpreted as - "match nothing". If set but empty, - interpreted as "match everything". properties: matchExpressions: - description: matchExpressions is a - list of label selector requirements. - The requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to a - set of values. Valid operators - are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an array - of string values. If the operator - is In or NotIn, the values - array must be non-empty. If - the operator is Exists or - DoesNotExist, the values array - must be empty. This array - is replaced during a strategic - merge patch. items: type: string type: array @@ -1553,95 +653,31 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map - of {key,value} pairs. A single {key,value} - in the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic name: - description: Select a single ClusterTrustBundle - by object name. Mutually-exclusive - with signerName and labelSelector. type: string optional: - description: If true, don't block pod - startup if the referenced ClusterTrustBundle(s) - aren't available. If using name, then - the named ClusterTrustBundle is allowed - not to exist. If using signerName, - then the combination of signerName and - labelSelector is allowed to match zero - ClusterTrustBundles. type: boolean path: - description: Relative path from the volume - root to write the bundle. type: string signerName: - description: Select all ClusterTrustBundles - that match this signer name. Mutually-exclusive - with name. The contents of all selected - ClusterTrustBundles will be unified - and deduplicated. type: string required: - path type: object configMap: - description: configMap information about the - configMap data to project properties: items: - description: items if unspecified, each - key-value pair in the Data field of - the referenced ConfigMap will be projected - into the volume as a file whose name - is the key and content is the value. - If specified, the listed keys will be - projected into the specified paths, - and unlisted keys will not be present. - If a key is specified which is not present - in the ConfigMap, the volume setup will - error unless it is marked optional. - Paths must be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key to a - path within a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an octal - value between 0000 and 0777 or - a decimal value between 0 and - 511. YAML accepts both octal and - decimal values, JSON requires - decimal values for mode bits. - If not specified, the volume defaultMode - will be used. This might be in - conflict with other options that - affect the file mode, like fsGroup, - and the result can be other mode - bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the key - to. May not be an absolute path. - May not contain the path element - '..'. May not start with the string - '..'. type: string required: - key @@ -1651,106 +687,42 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether - the ConfigMap or its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic downwardAPI: - description: downwardAPI information about - the downwardAPI data to project properties: items: - description: Items is a list of DownwardAPIVolume - file items: - description: DownwardAPIVolumeFile represents - information to create the file containing - the pod field properties: fieldRef: - description: 'Required: Selects - a field of the pod: only annotations, - labels, name, namespace and uid - are supported.' properties: apiVersion: - description: Version of the - schema the FieldPath is written - in terms of, defaults to "v1". type: string fieldPath: - description: Path of the field - to select in the specified - API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode bits - used to set permissions on this - file, must be an octal value between - 0000 and 0777 or a decimal value - between 0 and 511. YAML accepts - both octal and decimal values, - JSON requires decimal values for - mode bits. If not specified, the - volume defaultMode will be used. - This might be in conflict with - other options that affect the - file mode, like fsGroup, and the - result can be other mode bits - set.' format: int32 type: integer path: - description: 'Required: Path is the - relative path name of the file - to be created. Must not be absolute - or contain the ''..'' path. Must - be utf-8 encoded. The first item - of the relative path must not - start with ''..''' type: string resourceFieldRef: - description: 'Selects a resource - of the container: only resources - limits and requests (limits.cpu, - limits.memory, requests.cpu and - requests.memory) are currently - supported.' properties: containerName: - description: 'Container name: - required for volumes, optional - for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource - to select' type: string required: - resource @@ -1763,54 +735,16 @@ spec: x-kubernetes-list-type: atomic type: object secret: - description: secret information about the - secret data to project properties: items: - description: items if unspecified, each - key-value pair in the Data field of - the referenced Secret will be projected - into the volume as a file whose name - is the key and content is the value. - If specified, the listed keys will be - projected into the specified paths, - and unlisted keys will not be present. - If a key is specified which is not present - in the Secret, the volume setup will - error unless it is marked optional. - Paths must be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key to a - path within a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an octal - value between 0000 and 0777 or - a decimal value between 0 and - 511. YAML accepts both octal and - decimal values, JSON requires - decimal values for mode bits. - If not specified, the volume defaultMode - will be used. This might be in - conflict with other options that - affect the file mode, like fsGroup, - and the result can be other mode - bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the key - to. May not be an absolute path. - May not contain the path element - '..'. May not start with the string - '..'. type: string required: - key @@ -1820,54 +754,19 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional field specify whether - the Secret or its key must be defined type: boolean type: object x-kubernetes-map-type: atomic serviceAccountToken: - description: serviceAccountToken is information - about the serviceAccountToken data to project properties: audience: - description: audience is the intended - audience of the token. A recipient of - a token must identify itself with an - identifier specified in the audience - of the token, and otherwise should reject - the token. The audience defaults to - the identifier of the apiserver. type: string expirationSeconds: - description: expirationSeconds is the - requested duration of validity of the - service account token. As the token - approaches expiration, the kubelet volume - plugin will proactively rotate the service - account token. The kubelet will start - trying to rotate the token if the token - is older than 80 percent of its time - to live or if the token is older than - 24 hours.Defaults to 1 hour and must - be at least 10 minutes. format: int64 type: integer path: - description: path is the path relative - to the mount point of the file to project - the token into. type: string required: - path @@ -1877,173 +776,79 @@ spec: x-kubernetes-list-type: atomic type: object quobyte: - description: quobyte represents a Quobyte mount on the - host that shares a pod's lifetime properties: group: - description: group to map volume access to Default - is no group type: string readOnly: - description: readOnly here will force the Quobyte - volume to be mounted with read-only permissions. - Defaults to false. type: boolean registry: - description: registry represents a single or multiple - Quobyte Registry services specified as a string - as host:port pair (multiple entries are separated - with commas) which acts as the central registry - for volumes type: string tenant: - description: tenant owning the given Quobyte volume - in the Backend Used with dynamically provisioned - Quobyte volumes, value is set by the plugin type: string user: - description: user to map volume access to Defaults - to serivceaccount user type: string volume: - description: volume is a string that references - an already created Quobyte volume by name. type: string required: - registry - volume type: object rbd: - description: 'rbd represents a Rados Block Device mount - on the host that shares a pod''s lifetime. More info: - https://examples.k8s.io/volumes/rbd/README.md' properties: fsType: - description: 'fsType is the filesystem type of the - volume that you want to mount. Tip: Ensure that - the filesystem type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string image: - description: 'image is the rados image name. More - info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string keyring: - description: 'keyring is the path to key ring for - RBDUser. Default is /etc/ceph/keyring. More info: - https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string monitors: - description: 'monitors is a collection of Ceph monitors. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic pool: - description: 'pool is the rados pool name. Default - is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string readOnly: - description: 'readOnly here will force the ReadOnly - setting in VolumeMounts. Defaults to false. More - info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: boolean secretRef: - description: 'secretRef is name of the authentication - secret for RBDUser. If provided overrides keyring. - Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is the rados user name. Default - is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string required: - image - monitors type: object scaleIO: - description: scaleIO represents a ScaleIO persistent - volume attached and mounted on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". Default - is "xfs". type: string gateway: - description: gateway is the host address of the - ScaleIO API Gateway. type: string protectionDomain: - description: protectionDomain is the name of the - ScaleIO Protection Domain for the configured storage. type: string readOnly: - description: readOnly Defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean secretRef: - description: secretRef references to the secret - for ScaleIO user and other sensitive information. - If this is not provided, Login operation will - fail. properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic sslEnabled: - description: sslEnabled Flag enable/disable SSL - communication with Gateway, default false type: boolean storageMode: - description: storageMode indicates whether the storage - for a volume should be ThickProvisioned or ThinProvisioned. - Default is ThinProvisioned. type: string storagePool: - description: storagePool is the ScaleIO Storage - Pool associated with the protection domain. type: string system: - description: system is the name of the storage system - as configured in ScaleIO. type: string volumeName: - description: volumeName is the name of a volume - already created in the ScaleIO system that is - associated with this volume source. type: string required: - gateway @@ -2051,61 +856,19 @@ spec: - system type: object secret: - description: 'secret represents a secret that should - populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' properties: defaultMode: - description: 'defaultMode is Optional: mode bits - used to set permissions on created files by default. - Must be an octal value between 0000 and 0777 or - a decimal value between 0 and 511. YAML accepts - both octal and decimal values, JSON requires decimal - values for mode bits. Defaults to 0644. Directories - within the path are not affected by this setting. - This might be in conflict with other options that - affect the file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer items: - description: items If unspecified, each key-value - pair in the Data field of the referenced Secret - will be projected into the volume as a file whose - name is the key and content is the value. If specified, - the listed keys will be projected into the specified - paths, and unlisted keys will not be present. - If a key is specified which is not present in - the Secret, the volume setup will error unless - it is marked optional. Paths must be relative - and may not contain the '..' path or start with - '..'. items: - description: Maps a string key to a path within - a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: mode bits - used to set permissions on this file. Must - be an octal value between 0000 and 0777 - or a decimal value between 0 and 511. YAML - accepts both octal and decimal values, JSON - requires decimal values for mode bits. If - not specified, the volume defaultMode will - be used. This might be in conflict with - other options that affect the file mode, - like fsGroup, and the result can be other - mode bits set.' format: int32 type: integer path: - description: path is the relative path of - the file to map the key to. May not be an - absolute path. May not contain the path - element '..'. May not start with the string - '..'. type: string required: - key @@ -2114,181 +877,60 @@ spec: type: array x-kubernetes-list-type: atomic optional: - description: optional field specify whether the - Secret or its keys must be defined type: boolean secretName: - description: 'secretName is the name of the secret - in the pod''s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' type: string type: object storageos: - description: storageOS represents a StorageOS volume - attached and mounted on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean secretRef: - description: secretRef specifies the secret to use - for obtaining the StorageOS API credentials. If - not specified, default values will be attempted. properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeName: - description: volumeName is the human-readable name - of the StorageOS volume. Volume names are only - unique within a namespace. type: string volumeNamespace: - description: volumeNamespace specifies the scope - of the volume within StorageOS. If no namespace - is specified then the Pod's namespace will be - used. This allows the Kubernetes name scoping - to be mirrored within StorageOS for tighter integration. - Set VolumeName to any name to override the default - behaviour. Set to "default" if you are not using - namespaces within StorageOS. Namespaces that do - not pre-exist within StorageOS will be created. type: string type: object volumeClaimTemplate: - description: VolumeClaimTemplate specifies a template - for volume to use by the backup/restore executor properties: metadata: - description: May contain labels and annotations - that will be copied into the PVC when creating - it. No other fields are allowed and will be rejected - during validation. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured - key value map stored with a resource that - may be set by external tools to store and - retrieve arbitrary metadata. They are not - queryable and should be preserved when modifying - objects. More info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName is an optional prefix, - used by the server, to generate a unique name - ONLY IF the Name field has not been provided. - If this field is used, the name returned to - the client will be different than the name - passed. This value will also be combined with - a unique suffix. The provided value has the - same validation rules as the Name field, and - may be truncated by the length of the suffix - required to make the value unique on the server. - \n If this field is specified and the generated - name exists, the server will NOT return a - 409 - instead, it will either return 201 Created - or 500 with Reason ServerTimeout indicating - a unique name could not be found in the time - allotted, and the client should retry (optionally - after the time indicated in the Retry-After - header). \n Applied only if Name is not specified. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string keys and values - that can be used to organize and categorize - (scope and select) objects. May match selectors - of replication controllers and services. More - info: http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must be unique within a namespace. - Is required when creating resources, although - some resources may allow a client to request - the generation of an appropriate name automatically. - Name is primarily intended for creation idempotence - and configuration definition. Cannot be updated. - More info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace defines the space within - each name must be unique. An empty namespace - is equivalent to the \"default\" namespace, - but \"default\" is the canonical representation. - Not all objects are required to be scoped - to a namespace - the value of this field for - those objects will be empty. \n Must be a - DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects depended by this - object. If ALL objects in the list have been - deleted, this object will be garbage collected. - If this object is managed by a controller, - then an entry in this list will point to this - controller, with the controller field set - to true. There cannot be more than one managing - controller. items: - description: OwnerReference contains enough - information to let you identify an owning - object. An owning object must be in the - same namespace as the dependent, or be cluster-scoped, - so there is no namespace field. properties: apiVersion: - description: API version of the referent. type: string blockOwnerDeletion: - description: If true, AND if the owner - has the "foregroundDeletion" finalizer, - then the owner cannot be deleted from - the key-value store until this reference - is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage collector interacts - with this field and enforces the foreground - deletion. Defaults to false. To set - this field, a user needs "delete" permission - of the owner, otherwise 422 (Unprocessable - Entity) will be returned. type: boolean controller: - description: If true, this reference points - to the managing controller. type: boolean kind: - description: 'Kind of the referent. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of the referent. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the referent. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -2300,50 +942,19 @@ spec: type: array type: object spec: - description: The specification for the PersistentVolumeClaim. - The entire content is copied unchanged into the - PVC that gets created from this template. The - same fields as in a PersistentVolumeClaim are - also valid here. properties: accessModes: - description: 'accessModes contains the desired - access modes the volume should have. More - info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource field can be used to - specify either: * An existing VolumeSnapshot - object (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an external controller - can support the specified data source, it - will create a new volume based on the contents - of the specified data source. When the AnyVolumeDataSource - feature gate is enabled, dataSource contents - will be copied to dataSourceRef, and dataSourceRef - contents will be copied to dataSource when - dataSourceRef.namespace is not specified. - If the namespace is specified, then dataSourceRef - will not be copied to dataSource.' properties: apiGroup: - description: APIGroup is the group for the - resource being referenced. If APIGroup - is not specified, the specified Kind must - be in the core API group. For any other - third-party types, APIGroup is required. type: string kind: - description: Kind is the type of resource - being referenced type: string name: - description: Name is the name of resource - being referenced type: string required: - kind @@ -2351,79 +962,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef specifies the object - from which to populate the volume with data, - if a non-empty volume is desired. This may - be any object from a non-empty API group (non - core object) or a PersistentVolumeClaim object. - When this field is specified, volume binding - will only succeed if the type of the specified - object matches some installed volume populator - or dynamic provisioner. This field will replace - the functionality of the dataSource field - and as such if both fields are non-empty, - they must have the same value. For backwards - compatibility, when namespace isn''t specified - in dataSourceRef, both fields (dataSource - and dataSourceRef) will be set to the same - value automatically if one of them is empty - and the other is non-empty. When namespace - is specified in dataSourceRef, dataSource - isn''t set to the same value and must be empty. - There are three important differences between - dataSource and dataSourceRef: * While dataSource - only allows two specific types of objects, - dataSourceRef allows any non-core object, - as well as PersistentVolumeClaim objects. - * While dataSource ignores disallowed values - (dropping them), dataSourceRef preserves all - values, and generates an error if a disallowed - value is specified. * While dataSource only - allows local objects, dataSourceRef allows - objects in any namespaces. (Beta) Using this - field requires the AnyVolumeDataSource feature - gate to be enabled. (Alpha) Using the namespace - field of dataSourceRef requires the CrossNamespaceVolumeDataSource - feature gate to be enabled.' properties: apiGroup: - description: APIGroup is the group for the - resource being referenced. If APIGroup - is not specified, the specified Kind must - be in the core API group. For any other - third-party types, APIGroup is required. type: string kind: - description: Kind is the type of resource - being referenced type: string name: - description: Name is the name of resource - being referenced type: string namespace: - description: Namespace is the namespace - of resource being referenced Note that - when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant - object is required in the referent namespace - to allow that namespace's owner to accept - the reference. See the ReferenceGrant - documentation for details. (Alpha) This - field requires the CrossNamespaceVolumeDataSource - feature gate to be enabled. type: string required: - kind - name type: object resources: - description: 'resources represents the minimum - resources the volume should have. If RecoverVolumeExpansionFailure - feature is enabled users are allowed to specify - resource requirements that are lower than - previous value but must still be higher than - capacity recorded in the status field of the - claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -2432,9 +984,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum - amount of compute resources allowed. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -2443,48 +992,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum - amount of compute resources required. - If Requests is omitted for a container, - it defaults to Limits if that is explicitly - specified, otherwise to an implementation-defined - value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is a label query over - volumes to consider for binding. properties: matchExpressions: - description: matchExpressions is a list - of label selector requirements. The requirements - are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label key - that the selector applies to. type: string operator: - description: operator represents a - key's relationship to a set of values. - Valid operators are In, NotIn, Exists - and DoesNotExist. type: string values: - description: values is an array of - string values. If the operator is - In or NotIn, the values array must - be non-empty. If the operator is - Exists or DoesNotExist, the values - array must be empty. This array - is replaced during a strategic merge - patch. items: type: string type: array @@ -2498,96 +1017,43 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName is the name of - the StorageClass required by the claim. More - info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName may - be used to set the VolumeAttributesClass used - by this claim. If specified, the CSI driver - will create or update the volume with the - attributes defined in the corresponding VolumeAttributesClass. - This has a different purpose than storageClassName, - it can be changed after the claim is created. - An empty string value means that no VolumeAttributesClass - will be applied to the claim but it''s not - allowed to reset this field to empty string - once it is set. If unspecified and the PersistentVolumeClaim - is unbound, the default VolumeAttributesClass - will be set by the persistentvolume controller - if it exists. If the resource referred to - by volumeAttributesClass does not exist, this - PersistentVolumeClaim will be set to a Pending - state, as reflected by the modifyVolumeStatus - field, until such as a resource exists. More - info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires the VolumeAttributesClass - feature gate to be enabled.' type: string volumeMode: - description: volumeMode defines what type of - volume is required by the claim. Value of - Filesystem is implied when not included in - claim spec. type: string volumeName: - description: volumeName is the binding reference - to the PersistentVolume backing this claim. type: string type: object required: - spec type: object vsphereVolume: - description: vsphereVolume represents a vSphere volume - attached and mounted on kubelets host machine properties: fsType: - description: fsType is filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string storagePolicyID: - description: storagePolicyID is the storage Policy - Based Management (SPBM) profile ID associated - with the StoragePolicyName. type: string storagePolicyName: - description: storagePolicyName is the storage Policy - Based Management (SPBM) profile name. type: string volumePath: - description: volumePath is the path that identifies - vSphere volume vmdk type: string required: - volumePath type: object type: object usage: - description: Usage specifies the usage of the volume. type: string type: object type: array type: object type: array restoreTasks: - description: RestoreTasks specifies a list of restore tasks that can - be performed by the addon. items: - description: Task defines the specification of a backup/restore task. properties: driver: allOf: @@ -2599,23 +1065,8 @@ spec: - Restic - WalG - VolumeSnapshotter - description: 'Driver specifies the underlying tool that will be - used to upload the data to the backend storage. Valid values - are: - "Restic": The underlying tool is [restic](https://restic.net/). - - "WalG": The underlying tool is [wal-g](https://github.com/wal-g/wal-g).' type: string executor: - description: 'Executor specifies the type of entity that will - execute the task. For example, it can be a Job, a sidecar container, - an ephemeral container, or a Job that creates additional Jobs/Pods - for executing the backup/restore logic. Valid values are: - - "Job": KubeStash will create a Job to execute the backup/restore - task. - "Sidecar": KubeStash will inject a sidecar container - into the application to execute the backup/restore task. - "EphemeralContainer": - KubeStash will attach an ephemeral container to the respective - Pods to execute the backup/restore task. - "MultiLevelJob": - KubeStash will create a Job that will create additional Jobs/Pods - to execute the backup/restore task.' enum: - Job - Sidecar @@ -2623,99 +1074,40 @@ spec: - MultiLevelJob type: string function: - description: Function specifies the name of a Function CR that - defines a container definition which will execute the backup/restore - logic for a particular application. type: string name: - description: Name specifies the name of the task. The name of - a Task should indicate what this task does. For example, a name - LogicalBackup indicate that this task performs a logical backup - of a database. type: string parameters: - description: Parameters defines a list of parameters that is used - by the task to execute its logic. items: - description: ParameterDefinition defines the parameter names, - their usage, their requirements etc. properties: default: - description: Default specifies a default value for the parameter type: string name: - description: Name specifies the name of the parameter type: string required: - description: Required specify whether this parameter is - required or not type: boolean usage: - description: Usage specifies the usage of this parameter type: string type: object type: array singleton: - description: Singleton specifies whether this task will be executed - on a single job or across multiple jobs. type: boolean volumeMounts: - description: VolumeMounts specifies the mount path of the volumes - specified in the VolumeTemplate section. These volumes will - be mounted directly on the Job/Container created/injected by - KubeStash operator. If the volume type is VolumeClaimTemplate, - then KubeStash operator is responsible for creating the volume. items: - description: VolumeMount describes a mounting of a Volume within - a container. properties: mountPath: - description: Path within the container at which the volume - should be mounted. Must not contain ':'. type: string mountPropagation: - description: mountPropagation determines how mounts are - propagated from the host to container and the other way - around. When not set, MountPropagationNone is used. This - field is beta in 1.10. When RecursiveReadOnly is set to - IfPossible or to Enabled, MountPropagation must be None - or unspecified (which defaults to None). type: string name: - description: This must match the Name of a Volume. type: string readOnly: - description: Mounted read-only if true, read-write otherwise - (false or unspecified). Defaults to false. type: boolean recursiveReadOnly: - description: "RecursiveReadOnly specifies whether read-only - mounts should be handled recursively. \n If ReadOnly is - false, this field has no meaning and must be unspecified. - \n If ReadOnly is true, and this field is set to Disabled, - the mount is not made recursively read-only. If this - field is set to IfPossible, the mount is made recursively - read-only, if it is supported by the container runtime. - \ If this field is set to Enabled, the mount is made recursively - read-only if it is supported by the container runtime, - otherwise the pod will not be started and an error will - be generated to indicate the reason. \n If this field - is set to IfPossible or Enabled, MountPropagation must - be set to None (or be unspecified, which defaults to None). - \n If this field is not specified, it is treated as an - equivalent of Disabled." type: string subPath: - description: Path within the volume from which the container's - volume should be mounted. Defaults to "" (volume's root). type: string subPathExpr: - description: Expanded path within the volume from which - the container's volume should be mounted. Behaves similarly - to SubPath but environment variable references $(VAR_NAME) - are expanded using the container's environment. Defaults - to "" (volume's root). SubPathExpr and SubPath are mutually - exclusive. type: string required: - mountPath @@ -2723,265 +1115,113 @@ spec: type: object type: array volumeTemplate: - description: VolumeTemplate specifies a list of volume templates - that is used by the respective backup/restore Job to execute - its logic. User can overwrite these volume templates using `addonVolumes` - field of BackupConfiguration/BackupBatch. items: - description: VolumeTemplate specifies the name, usage, and the - source of volume that will be used by the addon to execute - it's backup/restore task. properties: name: - description: Name specifies the name of the volume type: string source: - description: Source specifies the source of this volume. properties: awsElasticBlockStore: - description: 'awsElasticBlockStore represents an AWS - Disk resource that is attached to a kubelet''s host - machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' properties: fsType: - description: 'fsType is the filesystem type of the - volume that you want to mount. Tip: Ensure that - the filesystem type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string partition: - description: 'partition is the partition in the - volume that you want to mount. If omitted, the - default is to mount by volume name. Examples: - For volume /dev/sda1, you specify the partition - as "1". Similarly, the volume partition for /dev/sda - is "0" (or you can leave the property empty).' format: int32 type: integer readOnly: - description: 'readOnly value true will force the - readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: boolean volumeID: - description: 'volumeID is unique ID of the persistent - disk resource in AWS (Amazon EBS volume). More - info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: string required: - volumeID type: object azureDisk: - description: azureDisk represents an Azure Data Disk - mount on the host and bind mount to the pod. properties: cachingMode: - description: 'cachingMode is the Host Caching mode: - None, Read Only, Read Write.' type: string diskName: - description: diskName is the Name of the data disk - in the blob storage type: string diskURI: - description: diskURI is the URI of data disk in - the blob storage type: string fsType: - description: fsType is Filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string kind: - description: 'kind expected values are Shared: multiple - blob disks per storage account Dedicated: single - blob disk per storage account Managed: azure - managed data disk (only in managed availability - set). defaults to shared' type: string readOnly: - description: readOnly Defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean required: - diskName - diskURI type: object azureFile: - description: azureFile represents an Azure File Service - mount on the host and bind mount to the pod. properties: readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean secretName: - description: secretName is the name of secret that - contains Azure Storage Account Name and Key type: string shareName: - description: shareName is the azure share Name type: string required: - secretName - shareName type: object cephfs: - description: cephFS represents a Ceph FS mount on the - host that shares a pod's lifetime properties: monitors: - description: 'monitors is Required: Monitors is - a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic path: - description: 'path is Optional: Used as the mounted - root, rather than the full Ceph tree, default - is /' type: string readOnly: - description: 'readOnly is Optional: Defaults to - false (read/write). ReadOnly here will force the - ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: boolean secretFile: - description: 'secretFile is Optional: SecretFile - is the path to key ring for User, default is /etc/ceph/user.secret - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string secretRef: - description: 'secretRef is Optional: SecretRef is - reference to the authentication secret for User, - default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is optional: User is the rados - user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string required: - monitors type: object cinder: - description: 'cinder represents a cinder volume attached - and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' properties: fsType: - description: 'fsType is the filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if unspecified. - More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string readOnly: - description: 'readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: boolean secretRef: - description: 'secretRef is optional: points to a - secret object containing parameters used to connect - to OpenStack.' properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeID: - description: 'volumeID used to identify the volume - in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string required: - volumeID type: object configMap: - description: configMap represents a configMap that should - populate this volume properties: defaultMode: - description: 'defaultMode is optional: mode bits - used to set permissions on created files by default. - Must be an octal value between 0000 and 0777 or - a decimal value between 0 and 511. YAML accepts - both octal and decimal values, JSON requires decimal - values for mode bits. Defaults to 0644. Directories - within the path are not affected by this setting. - This might be in conflict with other options that - affect the file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer items: - description: items if unspecified, each key-value - pair in the Data field of the referenced ConfigMap - will be projected into the volume as a file whose - name is the key and content is the value. If specified, - the listed keys will be projected into the specified - paths, and unlisted keys will not be present. - If a key is specified which is not present in - the ConfigMap, the volume setup will error unless - it is marked optional. Paths must be relative - and may not contain the '..' path or start with - '..'. items: - description: Maps a string key to a path within - a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: mode bits - used to set permissions on this file. Must - be an octal value between 0000 and 0777 - or a decimal value between 0 and 511. YAML - accepts both octal and decimal values, JSON - requires decimal values for mode bits. If - not specified, the volume defaultMode will - be used. This might be in conflict with - other options that affect the file mode, - like fsGroup, and the result can be other - mode bits set.' format: int32 type: integer path: - description: path is the relative path of - the file to map the key to. May not be an - absolute path. May not contain the path - element '..'. May not start with the string - '..'. type: string required: - key @@ -2991,161 +1231,67 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. This field is - effectively required, but due to backwards compatibility - is allowed to be empty. Instances of this type - with an empty value here are almost certainly - wrong. TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether the ConfigMap - or its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic csi: - description: csi (Container Storage Interface) represents - ephemeral storage that is handled by certain external - CSI drivers (Beta feature). properties: driver: - description: driver is the name of the CSI driver - that handles this volume. Consult with your admin - for the correct name as registered in the cluster. type: string fsType: - description: fsType to mount. Ex. "ext4", "xfs", - "ntfs". If not provided, the empty value is passed - to the associated CSI driver which will determine - the default filesystem to apply. type: string nodePublishSecretRef: - description: nodePublishSecretRef is a reference - to the secret object containing sensitive information - to pass to the CSI driver to complete the CSI - NodePublishVolume and NodeUnpublishVolume calls. - This field is optional, and may be empty if no - secret is required. If the secret object contains - more than one secret, all secret references are - passed. properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic readOnly: - description: readOnly specifies a read-only configuration - for the volume. Defaults to false (read/write). type: boolean volumeAttributes: additionalProperties: type: string - description: volumeAttributes stores driver-specific - properties that are passed to the CSI driver. - Consult your driver's documentation for supported - values. type: object required: - driver type: object downwardAPI: - description: downwardAPI represents downward API about - the pod that should populate this volume properties: defaultMode: - description: 'Optional: mode bits to use on created - files by default. Must be a Optional: mode bits - used to set permissions on created files by default. - Must be an octal value between 0000 and 0777 or - a decimal value between 0 and 511. YAML accepts - both octal and decimal values, JSON requires decimal - values for mode bits. Defaults to 0644. Directories - within the path are not affected by this setting. - This might be in conflict with other options that - affect the file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer items: - description: Items is a list of downward API volume - file items: - description: DownwardAPIVolumeFile represents - information to create the file containing the - pod field properties: fieldRef: - description: 'Required: Selects a field of - the pod: only annotations, labels, name, - namespace and uid are supported.' properties: apiVersion: - description: Version of the schema the - FieldPath is written in terms of, defaults - to "v1". type: string fieldPath: - description: Path of the field to select - in the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode bits used to - set permissions on this file, must be an - octal value between 0000 and 0777 or a decimal - value between 0 and 511. YAML accepts both - octal and decimal values, JSON requires - decimal values for mode bits. If not specified, - the volume defaultMode will be used. This - might be in conflict with other options - that affect the file mode, like fsGroup, - and the result can be other mode bits set.' format: int32 type: integer path: - description: 'Required: Path is the relative - path name of the file to be created. Must - not be absolute or contain the ''..'' path. - Must be utf-8 encoded. The first item of - the relative path must not start with ''..''' type: string resourceFieldRef: - description: 'Selects a resource of the container: - only resources limits and requests (limits.cpu, - limits.memory, requests.cpu and requests.memory) - are currently supported.' properties: containerName: - description: 'Container name: required - for volumes, optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output format - of the exposed resources, defaults to - "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource to select' type: string required: - resource @@ -3158,195 +1304,50 @@ spec: x-kubernetes-list-type: atomic type: object emptyDir: - description: 'emptyDir represents a temporary directory - that shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' properties: medium: - description: 'medium represents what type of storage - medium should back this directory. The default - is "" which means to use the node''s default medium. - Must be an empty string (default) or Memory. More - info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' type: string sizeLimit: anyOf: - type: integer - type: string - description: 'sizeLimit is the total amount of local - storage required for this EmptyDir volume. The - size limit is also applicable for memory medium. - The maximum usage on memory medium EmptyDir would - be the minimum value between the SizeLimit specified - here and the sum of memory limits of all containers - in a pod. The default is nil which means that - the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object ephemeral: - description: "ephemeral represents a volume that is - handled by a cluster storage driver. The volume's - lifecycle is tied to the pod that defines it - it - will be created before the pod starts, and deleted - when the pod is removed. \n Use this if: a) the volume - is only needed while the pod runs, b) features of - normal volumes like restoring from snapshot or capacity - tracking are needed, c) the storage driver is specified - through a storage class, and d) the storage driver - supports dynamic volume provisioning through a PersistentVolumeClaim - (see EphemeralVolumeSource for more information on - the connection between this volume type and PersistentVolumeClaim). - \n Use PersistentVolumeClaim or one of the vendor-specific - APIs for volumes that persist for longer than the - lifecycle of an individual pod. \n Use CSI for light-weight - local ephemeral volumes if the CSI driver is meant - to be used that way - see the documentation of the - driver for more information. \n A pod can use both - types of ephemeral volumes and persistent volumes - at the same time." properties: volumeClaimTemplate: - description: "Will be used to create a stand-alone - PVC to provision the volume. The pod in which - this EphemeralVolumeSource is embedded will be - the owner of the PVC, i.e. the PVC will be deleted - together with the pod. The name of the PVC will - be `-` where `` - is the name from the `PodSpec.Volumes` array entry. - Pod validation will reject the pod if the concatenated - name is not valid for a PVC (for example, too - long). \n An existing PVC with that name that - is not owned by the pod will *not* be used for - the pod to avoid using an unrelated volume by - mistake. Starting the pod is then blocked until - the unrelated PVC is removed. If such a pre-created - PVC is meant to be used by the pod, the PVC has - to updated with an owner reference to the pod - once the pod exists. Normally this should not - be necessary, but it may be useful when manually - reconstructing a broken cluster. \n This field - is read-only and no changes will be made by Kubernetes - to the PVC after it has been created. \n Required, - must not be nil." properties: metadata: - description: May contain labels and annotations - that will be copied into the PVC when creating - it. No other fields are allowed and will be - rejected during validation. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured - key value map stored with a resource that - may be set by external tools to store - and retrieve arbitrary metadata. They - are not queryable and should be preserved - when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName is an optional - prefix, used by the server, to generate - a unique name ONLY IF the Name field has - not been provided. If this field is used, - the name returned to the client will be - different than the name passed. This value - will also be combined with a unique suffix. - The provided value has the same validation - rules as the Name field, and may be truncated - by the length of the suffix required to - make the value unique on the server. \n - If this field is specified and the generated - name exists, the server will NOT return - a 409 - instead, it will either return - 201 Created or 500 with Reason ServerTimeout - indicating a unique name could not be - found in the time allotted, and the client - should retry (optionally after the time - indicated in the Retry-After header). - \n Applied only if Name is not specified. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string keys and values - that can be used to organize and categorize - (scope and select) objects. May match - selectors of replication controllers and - services. More info: http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must be unique within - a namespace. Is required when creating - resources, although some resources may - allow a client to request the generation - of an appropriate name automatically. - Name is primarily intended for creation - idempotence and configuration definition. - Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace defines the space - within each name must be unique. An empty - namespace is equivalent to the \"default\" - namespace, but \"default\" is the canonical - representation. Not all objects are required - to be scoped to a namespace - the value - of this field for those objects will be - empty. \n Must be a DNS_LABEL. Cannot - be updated. More info: http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects depended by - this object. If ALL objects in the list - have been deleted, this object will be - garbage collected. If this object is managed - by a controller, then an entry in this - list will point to this controller, with - the controller field set to true. There - cannot be more than one managing controller. items: - description: OwnerReference contains enough - information to let you identify an owning - object. An owning object must be in - the same namespace as the dependent, - or be cluster-scoped, so there is no - namespace field. properties: apiVersion: - description: API version of the referent. type: string blockOwnerDeletion: - description: If true, AND if the owner - has the "foregroundDeletion" finalizer, - then the owner cannot be deleted - from the key-value store until this - reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage collector interacts - with this field and enforces the - foreground deletion. Defaults to - false. To set this field, a user - needs "delete" permission of the - owner, otherwise 422 (Unprocessable - Entity) will be returned. type: boolean controller: - description: If true, this reference - points to the managing controller. type: boolean kind: - description: 'Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -3358,52 +1359,19 @@ spec: type: array type: object spec: - description: The specification for the PersistentVolumeClaim. - The entire content is copied unchanged into - the PVC that gets created from this template. - The same fields as in a PersistentVolumeClaim - are also valid here. properties: accessModes: - description: 'accessModes contains the desired - access modes the volume should have. More - info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource field can be used - to specify either: * An existing VolumeSnapshot - object (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an external controller - can support the specified data source, - it will create a new volume based on the - contents of the specified data source. - When the AnyVolumeDataSource feature gate - is enabled, dataSource contents will be - copied to dataSourceRef, and dataSourceRef - contents will be copied to dataSource - when dataSourceRef.namespace is not specified. - If the namespace is specified, then dataSourceRef - will not be copied to dataSource.' properties: apiGroup: - description: APIGroup is the group for - the resource being referenced. If - APIGroup is not specified, the specified - Kind must be in the core API group. - For any other third-party types, APIGroup - is required. type: string kind: - description: Kind is the type of resource - being referenced type: string name: - description: Name is the name of resource - being referenced type: string required: - kind @@ -3411,85 +1379,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef specifies the - object from which to populate the volume - with data, if a non-empty volume is desired. - This may be any object from a non-empty - API group (non core object) or a PersistentVolumeClaim - object. When this field is specified, - volume binding will only succeed if the - type of the specified object matches some - installed volume populator or dynamic - provisioner. This field will replace the - functionality of the dataSource field - and as such if both fields are non-empty, - they must have the same value. For backwards - compatibility, when namespace isn''t specified - in dataSourceRef, both fields (dataSource - and dataSourceRef) will be set to the - same value automatically if one of them - is empty and the other is non-empty. When - namespace is specified in dataSourceRef, - dataSource isn''t set to the same value - and must be empty. There are three important - differences between dataSource and dataSourceRef: - * While dataSource only allows two specific - types of objects, dataSourceRef allows - any non-core object, as well as PersistentVolumeClaim - objects. * While dataSource ignores disallowed - values (dropping them), dataSourceRef - preserves all values, and generates an - error if a disallowed value is specified. - * While dataSource only allows local objects, - dataSourceRef allows objects in any namespaces. - (Beta) Using this field requires the AnyVolumeDataSource - feature gate to be enabled. (Alpha) Using - the namespace field of dataSourceRef requires - the CrossNamespaceVolumeDataSource feature - gate to be enabled.' properties: apiGroup: - description: APIGroup is the group for - the resource being referenced. If - APIGroup is not specified, the specified - Kind must be in the core API group. - For any other third-party types, APIGroup - is required. type: string kind: - description: Kind is the type of resource - being referenced type: string name: - description: Name is the name of resource - being referenced type: string namespace: - description: Namespace is the namespace - of resource being referenced Note - that when a namespace is specified, - a gateway.networking.k8s.io/ReferenceGrant - object is required in the referent - namespace to allow that namespace's - owner to accept the reference. See - the ReferenceGrant documentation for - details. (Alpha) This field requires - the CrossNamespaceVolumeDataSource - feature gate to be enabled. type: string required: - kind - name type: object resources: - description: 'resources represents the minimum - resources the volume should have. If RecoverVolumeExpansionFailure - feature is enabled users are allowed to - specify resource requirements that are - lower than previous value but must still - be higher than capacity recorded in the - status field of the claim. More info: - https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -3498,9 +1401,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum - amount of compute resources allowed. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -3509,50 +1409,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the - minimum amount of compute resources - required. If Requests is omitted for - a container, it defaults to Limits - if that is explicitly specified, otherwise - to an implementation-defined value. - Requests cannot exceed Limits. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is a label query over - volumes to consider for binding. properties: matchExpressions: - description: matchExpressions is a list - of label selector requirements. The - requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to a set - of values. Valid operators are - In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array - of string values. If the operator - is In or NotIn, the values array - must be non-empty. If the operator - is Exists or DoesNotExist, the - values array must be empty. - This array is replaced during - a strategic merge patch. items: type: string type: array @@ -3566,57 +1434,16 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of - {key,value} pairs. A single {key,value} - in the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName is the name - of the StorageClass required by the claim. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName - may be used to set the VolumeAttributesClass - used by this claim. If specified, the - CSI driver will create or update the volume - with the attributes defined in the corresponding - VolumeAttributesClass. This has a different - purpose than storageClassName, it can - be changed after the claim is created. - An empty string value means that no VolumeAttributesClass - will be applied to the claim but it''s - not allowed to reset this field to empty - string once it is set. If unspecified - and the PersistentVolumeClaim is unbound, - the default VolumeAttributesClass will - be set by the persistentvolume controller - if it exists. If the resource referred - to by volumeAttributesClass does not exist, - this PersistentVolumeClaim will be set - to a Pending state, as reflected by the - modifyVolumeStatus field, until such as - a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires the - VolumeAttributesClass feature gate to - be enabled.' type: string volumeMode: - description: volumeMode defines what type - of volume is required by the claim. Value - of Filesystem is implied when not included - in claim spec. type: string volumeName: - description: volumeName is the binding reference - to the PersistentVolume backing this claim. type: string type: object required: @@ -3624,89 +1451,41 @@ spec: type: object type: object fc: - description: fc represents a Fibre Channel resource - that is attached to a kubelet's host machine and then - exposed to the pod. properties: fsType: - description: 'fsType is the filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. TODO: how - do we prevent errors in the filesystem from compromising - the machine' type: string lun: - description: 'lun is Optional: FC target lun number' format: int32 type: integer readOnly: - description: 'readOnly is Optional: Defaults to - false (read/write). ReadOnly here will force the - ReadOnly setting in VolumeMounts.' type: boolean targetWWNs: - description: 'targetWWNs is Optional: FC target - worldwide names (WWNs)' items: type: string type: array x-kubernetes-list-type: atomic wwids: - description: 'wwids Optional: FC volume world wide - identifiers (wwids) Either wwids or combination - of targetWWNs and lun must be set, but not both - simultaneously.' items: type: string type: array x-kubernetes-list-type: atomic type: object flexVolume: - description: flexVolume represents a generic volume - resource that is provisioned/attached using an exec - based plugin. properties: driver: - description: driver is the name of the driver to - use for this volume. type: string fsType: - description: fsType is the filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". The - default filesystem depends on FlexVolume script. type: string options: additionalProperties: type: string - description: 'options is Optional: this field holds - extra command options if any.' type: object readOnly: - description: 'readOnly is Optional: defaults to - false (read/write). ReadOnly here will force the - ReadOnly setting in VolumeMounts.' type: boolean secretRef: - description: 'secretRef is Optional: secretRef is - reference to the secret object containing sensitive - information to pass to the plugin scripts. This - may be empty if no secret object is specified. - If the secret object contains more than one secret, - all secrets are passed to the plugin scripts.' properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic @@ -3714,179 +1493,79 @@ spec: - driver type: object flocker: - description: flocker represents a Flocker volume attached - to a kubelet's host machine. This depends on the Flocker - control service being running properties: datasetName: - description: datasetName is Name of the dataset - stored as metadata -> name on the dataset for - Flocker should be considered as deprecated type: string datasetUUID: - description: datasetUUID is the UUID of the dataset. - This is unique identifier of a Flocker dataset type: string type: object gcePersistentDisk: - description: 'gcePersistentDisk represents a GCE Disk - resource that is attached to a kubelet''s host machine - and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' properties: fsType: - description: 'fsType is filesystem type of the volume - that you want to mount. Tip: Ensure that the filesystem - type is supported by the host operating system. - Examples: "ext4", "xfs", "ntfs". Implicitly inferred - to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string partition: - description: 'partition is the partition in the - volume that you want to mount. If omitted, the - default is to mount by volume name. Examples: - For volume /dev/sda1, you specify the partition - as "1". Similarly, the volume partition for /dev/sda - is "0" (or you can leave the property empty). - More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' format: int32 type: integer pdName: - description: 'pdName is unique name of the PD resource - in GCE. Used to identify the disk in GCE. More - info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: string readOnly: - description: 'readOnly here will force the ReadOnly - setting in VolumeMounts. Defaults to false. More - info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: boolean required: - pdName type: object glusterfs: - description: 'glusterfs represents a Glusterfs mount - on the host that shares a pod''s lifetime. More info: - https://examples.k8s.io/volumes/glusterfs/README.md' properties: endpoints: - description: 'endpoints is the endpoint name that - details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string path: - description: 'path is the Glusterfs volume path. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string readOnly: - description: 'readOnly here will force the Glusterfs - volume to be mounted with read-only permissions. - Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: boolean required: - endpoints - path type: object hostPath: - description: 'hostPath represents a pre-existing file - or directory on the host machine that is directly - exposed to the container. This is generally used for - system agents or other privileged things that are - allowed to see the host machine. Most containers will - NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- TODO(jonesdl) We need to restrict who can use - host directory mounts and who can/can not mount host - directories as read/write.' properties: path: - description: 'path of the directory on the host. - If the path is a symlink, it will follow the link - to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string type: - description: 'type for HostPath Volume Defaults - to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string required: - path type: object iscsi: - description: 'iscsi represents an ISCSI Disk resource - that is attached to a kubelet''s host machine and - then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md' properties: chapAuthDiscovery: - description: chapAuthDiscovery defines whether support - iSCSI Discovery CHAP authentication type: boolean chapAuthSession: - description: chapAuthSession defines whether support - iSCSI Session CHAP authentication type: boolean fsType: - description: 'fsType is the filesystem type of the - volume that you want to mount. Tip: Ensure that - the filesystem type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string initiatorName: - description: initiatorName is the custom iSCSI Initiator - Name. If initiatorName is specified with iscsiInterface - simultaneously, new iSCSI interface : will be created for the connection. type: string iqn: - description: iqn is the target iSCSI Qualified Name. type: string iscsiInterface: - description: iscsiInterface is the interface Name - that uses an iSCSI transport. Defaults to 'default' - (tcp). type: string lun: - description: lun represents iSCSI Target Lun number. format: int32 type: integer portals: - description: portals is the iSCSI Target Portal - List. The portal is either an IP or ip_addr:port - if the port is other than default (typically TCP - ports 860 and 3260). items: type: string type: array x-kubernetes-list-type: atomic readOnly: - description: readOnly here will force the ReadOnly - setting in VolumeMounts. Defaults to false. type: boolean secretRef: - description: secretRef is the CHAP Secret for iSCSI - target and initiator authentication properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic targetPortal: - description: targetPortal is iSCSI Target Portal. - The Portal is either an IP or ip_addr:port if - the port is other than default (typically TCP - ports 860 and 3260). type: string required: - iqn @@ -3894,163 +1573,66 @@ spec: - targetPortal type: object nfs: - description: 'nfs represents an NFS mount on the host - that shares a pod''s lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' properties: path: - description: 'path that is exported by the NFS server. - More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string readOnly: - description: 'readOnly here will force the NFS export - to be mounted with read-only permissions. Defaults - to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: boolean server: - description: 'server is the hostname or IP address - of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string required: - path - server type: object persistentVolumeClaim: - description: 'persistentVolumeClaimVolumeSource represents - a reference to a PersistentVolumeClaim in the same - namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: claimName: - description: 'claimName is the name of a PersistentVolumeClaim - in the same namespace as the pod using this volume. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' type: string readOnly: - description: readOnly Will force the ReadOnly setting - in VolumeMounts. Default false. type: boolean required: - claimName type: object photonPersistentDisk: - description: photonPersistentDisk represents a PhotonController - persistent disk attached and mounted on kubelets host - machine properties: fsType: - description: fsType is the filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string pdID: - description: pdID is the ID that identifies Photon - Controller persistent disk type: string required: - pdID type: object portworxVolume: - description: portworxVolume represents a portworx volume - attached and mounted on kubelets host machine properties: fsType: - description: fSType represents the filesystem type - to mount Must be a filesystem type supported by - the host operating system. Ex. "ext4", "xfs". - Implicitly inferred to be "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean volumeID: - description: volumeID uniquely identifies a Portworx - volume type: string required: - volumeID type: object projected: - description: projected items for all in one resources - secrets, configmaps, and downward API properties: defaultMode: - description: defaultMode are the mode bits used - to set permissions on created files by default. - Must be an octal value between 0000 and 0777 or - a decimal value between 0 and 511. YAML accepts - both octal and decimal values, JSON requires decimal - values for mode bits. Directories within the path - are not affected by this setting. This might be - in conflict with other options that affect the - file mode, like fsGroup, and the result can be - other mode bits set. format: int32 type: integer sources: - description: sources is the list of volume projections items: - description: Projection that may be projected - along with other supported volume types properties: clusterTrustBundle: - description: "ClusterTrustBundle allows a - pod to access the `.spec.trustBundle` field - of ClusterTrustBundle objects in an auto-updating - file. \n Alpha, gated by the ClusterTrustBundleProjection - feature gate. \n ClusterTrustBundle objects - can either be selected by name, or by the - combination of signer name and a label selector. - \n Kubelet performs aggressive normalization - of the PEM contents written into the pod - filesystem. Esoteric PEM features such - as inter-block comments and block headers - are stripped. Certificates are deduplicated. - The ordering of certificates within the - file is arbitrary, and Kubelet may change - the order over time." properties: labelSelector: - description: Select all ClusterTrustBundles - that match this label selector. Only - has effect if signerName is set. Mutually-exclusive - with name. If unset, interpreted as - "match nothing". If set but empty, - interpreted as "match everything". properties: matchExpressions: - description: matchExpressions is a - list of label selector requirements. - The requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to a - set of values. Valid operators - are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an array - of string values. If the operator - is In or NotIn, the values - array must be non-empty. If - the operator is Exists or - DoesNotExist, the values array - must be empty. This array - is replaced during a strategic - merge patch. items: type: string type: array @@ -4064,95 +1646,31 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map - of {key,value} pairs. A single {key,value} - in the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic name: - description: Select a single ClusterTrustBundle - by object name. Mutually-exclusive - with signerName and labelSelector. type: string optional: - description: If true, don't block pod - startup if the referenced ClusterTrustBundle(s) - aren't available. If using name, then - the named ClusterTrustBundle is allowed - not to exist. If using signerName, - then the combination of signerName and - labelSelector is allowed to match zero - ClusterTrustBundles. type: boolean path: - description: Relative path from the volume - root to write the bundle. type: string signerName: - description: Select all ClusterTrustBundles - that match this signer name. Mutually-exclusive - with name. The contents of all selected - ClusterTrustBundles will be unified - and deduplicated. type: string required: - path type: object configMap: - description: configMap information about the - configMap data to project properties: items: - description: items if unspecified, each - key-value pair in the Data field of - the referenced ConfigMap will be projected - into the volume as a file whose name - is the key and content is the value. - If specified, the listed keys will be - projected into the specified paths, - and unlisted keys will not be present. - If a key is specified which is not present - in the ConfigMap, the volume setup will - error unless it is marked optional. - Paths must be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key to a - path within a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an octal - value between 0000 and 0777 or - a decimal value between 0 and - 511. YAML accepts both octal and - decimal values, JSON requires - decimal values for mode bits. - If not specified, the volume defaultMode - will be used. This might be in - conflict with other options that - affect the file mode, like fsGroup, - and the result can be other mode - bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the key - to. May not be an absolute path. - May not contain the path element - '..'. May not start with the string - '..'. type: string required: - key @@ -4162,106 +1680,42 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether - the ConfigMap or its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic downwardAPI: - description: downwardAPI information about - the downwardAPI data to project properties: items: - description: Items is a list of DownwardAPIVolume - file items: - description: DownwardAPIVolumeFile represents - information to create the file containing - the pod field properties: fieldRef: - description: 'Required: Selects - a field of the pod: only annotations, - labels, name, namespace and uid - are supported.' properties: apiVersion: - description: Version of the - schema the FieldPath is written - in terms of, defaults to "v1". type: string fieldPath: - description: Path of the field - to select in the specified - API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode bits - used to set permissions on this - file, must be an octal value between - 0000 and 0777 or a decimal value - between 0 and 511. YAML accepts - both octal and decimal values, - JSON requires decimal values for - mode bits. If not specified, the - volume defaultMode will be used. - This might be in conflict with - other options that affect the - file mode, like fsGroup, and the - result can be other mode bits - set.' format: int32 type: integer path: - description: 'Required: Path is the - relative path name of the file - to be created. Must not be absolute - or contain the ''..'' path. Must - be utf-8 encoded. The first item - of the relative path must not - start with ''..''' type: string resourceFieldRef: - description: 'Selects a resource - of the container: only resources - limits and requests (limits.cpu, - limits.memory, requests.cpu and - requests.memory) are currently - supported.' properties: containerName: - description: 'Container name: - required for volumes, optional - for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource - to select' type: string required: - resource @@ -4274,54 +1728,16 @@ spec: x-kubernetes-list-type: atomic type: object secret: - description: secret information about the - secret data to project properties: items: - description: items if unspecified, each - key-value pair in the Data field of - the referenced Secret will be projected - into the volume as a file whose name - is the key and content is the value. - If specified, the listed keys will be - projected into the specified paths, - and unlisted keys will not be present. - If a key is specified which is not present - in the Secret, the volume setup will - error unless it is marked optional. - Paths must be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key to a - path within a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an octal - value between 0000 and 0777 or - a decimal value between 0 and - 511. YAML accepts both octal and - decimal values, JSON requires - decimal values for mode bits. - If not specified, the volume defaultMode - will be used. This might be in - conflict with other options that - affect the file mode, like fsGroup, - and the result can be other mode - bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the key - to. May not be an absolute path. - May not contain the path element - '..'. May not start with the string - '..'. type: string required: - key @@ -4331,54 +1747,19 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional field specify whether - the Secret or its key must be defined type: boolean type: object x-kubernetes-map-type: atomic serviceAccountToken: - description: serviceAccountToken is information - about the serviceAccountToken data to project properties: audience: - description: audience is the intended - audience of the token. A recipient of - a token must identify itself with an - identifier specified in the audience - of the token, and otherwise should reject - the token. The audience defaults to - the identifier of the apiserver. type: string expirationSeconds: - description: expirationSeconds is the - requested duration of validity of the - service account token. As the token - approaches expiration, the kubelet volume - plugin will proactively rotate the service - account token. The kubelet will start - trying to rotate the token if the token - is older than 80 percent of its time - to live or if the token is older than - 24 hours.Defaults to 1 hour and must - be at least 10 minutes. format: int64 type: integer path: - description: path is the path relative - to the mount point of the file to project - the token into. type: string required: - path @@ -4388,173 +1769,79 @@ spec: x-kubernetes-list-type: atomic type: object quobyte: - description: quobyte represents a Quobyte mount on the - host that shares a pod's lifetime properties: group: - description: group to map volume access to Default - is no group type: string readOnly: - description: readOnly here will force the Quobyte - volume to be mounted with read-only permissions. - Defaults to false. type: boolean registry: - description: registry represents a single or multiple - Quobyte Registry services specified as a string - as host:port pair (multiple entries are separated - with commas) which acts as the central registry - for volumes type: string tenant: - description: tenant owning the given Quobyte volume - in the Backend Used with dynamically provisioned - Quobyte volumes, value is set by the plugin type: string user: - description: user to map volume access to Defaults - to serivceaccount user type: string volume: - description: volume is a string that references - an already created Quobyte volume by name. type: string required: - registry - volume type: object rbd: - description: 'rbd represents a Rados Block Device mount - on the host that shares a pod''s lifetime. More info: - https://examples.k8s.io/volumes/rbd/README.md' properties: fsType: - description: 'fsType is the filesystem type of the - volume that you want to mount. Tip: Ensure that - the filesystem type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string image: - description: 'image is the rados image name. More - info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string keyring: - description: 'keyring is the path to key ring for - RBDUser. Default is /etc/ceph/keyring. More info: - https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string monitors: - description: 'monitors is a collection of Ceph monitors. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic pool: - description: 'pool is the rados pool name. Default - is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string readOnly: - description: 'readOnly here will force the ReadOnly - setting in VolumeMounts. Defaults to false. More - info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: boolean secretRef: - description: 'secretRef is name of the authentication - secret for RBDUser. If provided overrides keyring. - Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is the rados user name. Default - is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string required: - image - monitors type: object scaleIO: - description: scaleIO represents a ScaleIO persistent - volume attached and mounted on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". Default - is "xfs". type: string gateway: - description: gateway is the host address of the - ScaleIO API Gateway. type: string protectionDomain: - description: protectionDomain is the name of the - ScaleIO Protection Domain for the configured storage. type: string readOnly: - description: readOnly Defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean secretRef: - description: secretRef references to the secret - for ScaleIO user and other sensitive information. - If this is not provided, Login operation will - fail. properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic sslEnabled: - description: sslEnabled Flag enable/disable SSL - communication with Gateway, default false type: boolean storageMode: - description: storageMode indicates whether the storage - for a volume should be ThickProvisioned or ThinProvisioned. - Default is ThinProvisioned. type: string storagePool: - description: storagePool is the ScaleIO Storage - Pool associated with the protection domain. type: string system: - description: system is the name of the storage system - as configured in ScaleIO. type: string volumeName: - description: volumeName is the name of a volume - already created in the ScaleIO system that is - associated with this volume source. type: string required: - gateway @@ -4562,61 +1849,19 @@ spec: - system type: object secret: - description: 'secret represents a secret that should - populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' properties: defaultMode: - description: 'defaultMode is Optional: mode bits - used to set permissions on created files by default. - Must be an octal value between 0000 and 0777 or - a decimal value between 0 and 511. YAML accepts - both octal and decimal values, JSON requires decimal - values for mode bits. Defaults to 0644. Directories - within the path are not affected by this setting. - This might be in conflict with other options that - affect the file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer items: - description: items If unspecified, each key-value - pair in the Data field of the referenced Secret - will be projected into the volume as a file whose - name is the key and content is the value. If specified, - the listed keys will be projected into the specified - paths, and unlisted keys will not be present. - If a key is specified which is not present in - the Secret, the volume setup will error unless - it is marked optional. Paths must be relative - and may not contain the '..' path or start with - '..'. items: - description: Maps a string key to a path within - a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: mode bits - used to set permissions on this file. Must - be an octal value between 0000 and 0777 - or a decimal value between 0 and 511. YAML - accepts both octal and decimal values, JSON - requires decimal values for mode bits. If - not specified, the volume defaultMode will - be used. This might be in conflict with - other options that affect the file mode, - like fsGroup, and the result can be other - mode bits set.' format: int32 type: integer path: - description: path is the relative path of - the file to map the key to. May not be an - absolute path. May not contain the path - element '..'. May not start with the string - '..'. type: string required: - key @@ -4625,181 +1870,60 @@ spec: type: array x-kubernetes-list-type: atomic optional: - description: optional field specify whether the - Secret or its keys must be defined type: boolean secretName: - description: 'secretName is the name of the secret - in the pod''s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' type: string type: object storageos: - description: storageOS represents a StorageOS volume - attached and mounted on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean secretRef: - description: secretRef specifies the secret to use - for obtaining the StorageOS API credentials. If - not specified, default values will be attempted. properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeName: - description: volumeName is the human-readable name - of the StorageOS volume. Volume names are only - unique within a namespace. type: string volumeNamespace: - description: volumeNamespace specifies the scope - of the volume within StorageOS. If no namespace - is specified then the Pod's namespace will be - used. This allows the Kubernetes name scoping - to be mirrored within StorageOS for tighter integration. - Set VolumeName to any name to override the default - behaviour. Set to "default" if you are not using - namespaces within StorageOS. Namespaces that do - not pre-exist within StorageOS will be created. type: string type: object volumeClaimTemplate: - description: VolumeClaimTemplate specifies a template - for volume to use by the backup/restore executor properties: metadata: - description: May contain labels and annotations - that will be copied into the PVC when creating - it. No other fields are allowed and will be rejected - during validation. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured - key value map stored with a resource that - may be set by external tools to store and - retrieve arbitrary metadata. They are not - queryable and should be preserved when modifying - objects. More info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName is an optional prefix, - used by the server, to generate a unique name - ONLY IF the Name field has not been provided. - If this field is used, the name returned to - the client will be different than the name - passed. This value will also be combined with - a unique suffix. The provided value has the - same validation rules as the Name field, and - may be truncated by the length of the suffix - required to make the value unique on the server. - \n If this field is specified and the generated - name exists, the server will NOT return a - 409 - instead, it will either return 201 Created - or 500 with Reason ServerTimeout indicating - a unique name could not be found in the time - allotted, and the client should retry (optionally - after the time indicated in the Retry-After - header). \n Applied only if Name is not specified. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string keys and values - that can be used to organize and categorize - (scope and select) objects. May match selectors - of replication controllers and services. More - info: http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must be unique within a namespace. - Is required when creating resources, although - some resources may allow a client to request - the generation of an appropriate name automatically. - Name is primarily intended for creation idempotence - and configuration definition. Cannot be updated. - More info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace defines the space within - each name must be unique. An empty namespace - is equivalent to the \"default\" namespace, - but \"default\" is the canonical representation. - Not all objects are required to be scoped - to a namespace - the value of this field for - those objects will be empty. \n Must be a - DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects depended by this - object. If ALL objects in the list have been - deleted, this object will be garbage collected. - If this object is managed by a controller, - then an entry in this list will point to this - controller, with the controller field set - to true. There cannot be more than one managing - controller. items: - description: OwnerReference contains enough - information to let you identify an owning - object. An owning object must be in the - same namespace as the dependent, or be cluster-scoped, - so there is no namespace field. properties: apiVersion: - description: API version of the referent. type: string blockOwnerDeletion: - description: If true, AND if the owner - has the "foregroundDeletion" finalizer, - then the owner cannot be deleted from - the key-value store until this reference - is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage collector interacts - with this field and enforces the foreground - deletion. Defaults to false. To set - this field, a user needs "delete" permission - of the owner, otherwise 422 (Unprocessable - Entity) will be returned. type: boolean controller: - description: If true, this reference points - to the managing controller. type: boolean kind: - description: 'Kind of the referent. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of the referent. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the referent. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -4811,50 +1935,19 @@ spec: type: array type: object spec: - description: The specification for the PersistentVolumeClaim. - The entire content is copied unchanged into the - PVC that gets created from this template. The - same fields as in a PersistentVolumeClaim are - also valid here. properties: accessModes: - description: 'accessModes contains the desired - access modes the volume should have. More - info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource field can be used to - specify either: * An existing VolumeSnapshot - object (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an external controller - can support the specified data source, it - will create a new volume based on the contents - of the specified data source. When the AnyVolumeDataSource - feature gate is enabled, dataSource contents - will be copied to dataSourceRef, and dataSourceRef - contents will be copied to dataSource when - dataSourceRef.namespace is not specified. - If the namespace is specified, then dataSourceRef - will not be copied to dataSource.' properties: apiGroup: - description: APIGroup is the group for the - resource being referenced. If APIGroup - is not specified, the specified Kind must - be in the core API group. For any other - third-party types, APIGroup is required. type: string kind: - description: Kind is the type of resource - being referenced type: string name: - description: Name is the name of resource - being referenced type: string required: - kind @@ -4862,79 +1955,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef specifies the object - from which to populate the volume with data, - if a non-empty volume is desired. This may - be any object from a non-empty API group (non - core object) or a PersistentVolumeClaim object. - When this field is specified, volume binding - will only succeed if the type of the specified - object matches some installed volume populator - or dynamic provisioner. This field will replace - the functionality of the dataSource field - and as such if both fields are non-empty, - they must have the same value. For backwards - compatibility, when namespace isn''t specified - in dataSourceRef, both fields (dataSource - and dataSourceRef) will be set to the same - value automatically if one of them is empty - and the other is non-empty. When namespace - is specified in dataSourceRef, dataSource - isn''t set to the same value and must be empty. - There are three important differences between - dataSource and dataSourceRef: * While dataSource - only allows two specific types of objects, - dataSourceRef allows any non-core object, - as well as PersistentVolumeClaim objects. - * While dataSource ignores disallowed values - (dropping them), dataSourceRef preserves all - values, and generates an error if a disallowed - value is specified. * While dataSource only - allows local objects, dataSourceRef allows - objects in any namespaces. (Beta) Using this - field requires the AnyVolumeDataSource feature - gate to be enabled. (Alpha) Using the namespace - field of dataSourceRef requires the CrossNamespaceVolumeDataSource - feature gate to be enabled.' properties: apiGroup: - description: APIGroup is the group for the - resource being referenced. If APIGroup - is not specified, the specified Kind must - be in the core API group. For any other - third-party types, APIGroup is required. type: string kind: - description: Kind is the type of resource - being referenced type: string name: - description: Name is the name of resource - being referenced type: string namespace: - description: Namespace is the namespace - of resource being referenced Note that - when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant - object is required in the referent namespace - to allow that namespace's owner to accept - the reference. See the ReferenceGrant - documentation for details. (Alpha) This - field requires the CrossNamespaceVolumeDataSource - feature gate to be enabled. type: string required: - kind - name type: object resources: - description: 'resources represents the minimum - resources the volume should have. If RecoverVolumeExpansionFailure - feature is enabled users are allowed to specify - resource requirements that are lower than - previous value but must still be higher than - capacity recorded in the status field of the - claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -4943,9 +1977,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum - amount of compute resources allowed. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -4954,48 +1985,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum - amount of compute resources required. - If Requests is omitted for a container, - it defaults to Limits if that is explicitly - specified, otherwise to an implementation-defined - value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is a label query over - volumes to consider for binding. properties: matchExpressions: - description: matchExpressions is a list - of label selector requirements. The requirements - are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label key - that the selector applies to. type: string operator: - description: operator represents a - key's relationship to a set of values. - Valid operators are In, NotIn, Exists - and DoesNotExist. type: string values: - description: values is an array of - string values. If the operator is - In or NotIn, the values array must - be non-empty. If the operator is - Exists or DoesNotExist, the values - array must be empty. This array - is replaced during a strategic merge - patch. items: type: string type: array @@ -5009,86 +2010,36 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName is the name of - the StorageClass required by the claim. More - info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName may - be used to set the VolumeAttributesClass used - by this claim. If specified, the CSI driver - will create or update the volume with the - attributes defined in the corresponding VolumeAttributesClass. - This has a different purpose than storageClassName, - it can be changed after the claim is created. - An empty string value means that no VolumeAttributesClass - will be applied to the claim but it''s not - allowed to reset this field to empty string - once it is set. If unspecified and the PersistentVolumeClaim - is unbound, the default VolumeAttributesClass - will be set by the persistentvolume controller - if it exists. If the resource referred to - by volumeAttributesClass does not exist, this - PersistentVolumeClaim will be set to a Pending - state, as reflected by the modifyVolumeStatus - field, until such as a resource exists. More - info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires the VolumeAttributesClass - feature gate to be enabled.' type: string volumeMode: - description: volumeMode defines what type of - volume is required by the claim. Value of - Filesystem is implied when not included in - claim spec. type: string volumeName: - description: volumeName is the binding reference - to the PersistentVolume backing this claim. type: string type: object required: - spec type: object vsphereVolume: - description: vsphereVolume represents a vSphere volume - attached and mounted on kubelets host machine properties: fsType: - description: fsType is filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string storagePolicyID: - description: storagePolicyID is the storage Policy - Based Management (SPBM) profile ID associated - with the StoragePolicyName. type: string storagePolicyName: - description: storagePolicyName is the storage Policy - Based Management (SPBM) profile name. type: string volumePath: - description: volumePath is the path that identifies - vSphere volume vmdk type: string required: - volumePath type: object type: object usage: - description: Usage specifies the usage of the volume. type: string type: object type: array diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/addons.kubestash.com/v1alpha1/functions.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/addons.kubestash.com/v1alpha1/functions.yaml index 4fab86c2a..7f2c9e41c 100644 --- a/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/addons.kubestash.com/v1alpha1/functions.yaml +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/addons.kubestash.com/v1alpha1/functions.yaml @@ -17,17 +17,10 @@ spec: version: v1alpha1 validation: openAPIV3Schema: - description: Function is the Schema for the functions API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: properties: @@ -57,199 +50,97 @@ spec: spec: properties: args: - description: 'Args specifies the arguments to the entrypoint. The docker - image''s CMD is used if this is not provided. Variable references - $(VAR_NAME) are expanded using the container''s environment. If a - variable cannot be resolved, the reference in the input string will - be unchanged. The $(VAR_NAME) syntax can be escaped with a double - $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless - of whether the variable exists or not. Cannot be updated. More info: - https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' items: type: string type: array availableVersions: - description: 'AvailableVersions is the list of available addon versions - This is needed for the KubeStash resolver, if Image has some variables - in it. For example, `image: ghcr.io/kubedb/mongodb-restic-plugin:v0.8.0_${DB_VERSION}`' items: type: string type: array command: - description: 'Entrypoint array. Not executed within a shell. The docker - image''s ENTRYPOINT is used if this is not provided. Variable references - $(VAR_NAME) are expanded using the container''s environment. If a - variable cannot be resolved, the reference in the input string will - be unchanged. The $(VAR_NAME) syntax can be escaped with a double - $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless - of whether the variable exists or not. Cannot be updated. More info: - https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' items: type: string type: array image: - description: 'Image specifies the docker image name. More info: https://kubernetes.io/docs/concepts/containers/images - This field is optional to allow higher level config management to - default or override container images in workload controllers like - Deployments and StatefulSets.' type: string ports: - description: Ports specifies the list of ports to expose from the container. - Exposing a port here gives the system additional information about - the network connections a container uses, but is primarily informational. - Not specifying a port here DOES NOT prevent that port from being exposed. - Any port which is listening on the default "0.0.0.0" address inside - a container will be accessible from the network. Cannot be updated. items: - description: ContainerPort represents a network port in a single container. properties: containerPort: - description: Number of port to expose on the pod's IP address. - This must be a valid port number, 0 < x < 65536. format: int32 type: integer hostIP: - description: What host IP to bind the external port to. type: string hostPort: - description: Number of port to expose on the host. If specified, - this must be a valid port number, 0 < x < 65536. If HostNetwork - is specified, this must match ContainerPort. Most containers - do not need this. format: int32 type: integer name: - description: If specified, this must be an IANA_SVC_NAME and unique - within the pod. Each named port in a pod must have a unique - name. Name for the port that can be referred to by services. type: string protocol: default: TCP - description: Protocol for port. Must be UDP, TCP, or SCTP. Defaults - to "TCP". type: string required: - containerPort type: object type: array runtimeSettings: - description: RuntimeSettings allow to specify Resources, LivenessProbe, - ReadinessProbe, Lifecycle, SecurityContext etc. properties: env: - description: List of environment variables to set in the container. - Cannot be updated. items: - description: EnvVar represents an environment variable present - in a Container. properties: name: - description: Name of the environment variable. Must be a C_IDENTIFIER. type: string value: - description: 'Variable references $(VAR_NAME) are expanded - using the previously defined environment variables in the - container and any service environment variables. If a variable - cannot be resolved, the reference in the input string will - be unchanged. Double $$ are reduced to a single $, which - allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" - will produce the string literal "$(VAR_NAME)". Escaped references - will never be expanded, regardless of whether the variable - exists or not. Defaults to "".' type: string valueFrom: - description: Source for the environment variable's value. - Cannot be used if value is not empty. properties: configMapKeyRef: - description: Selects a key of a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the referent. This field is - effectively required, but due to backwards compatibility - is allowed to be empty. Instances of this type with - an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, - uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap or its - key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field of the pod: supports metadata.name, - metadata.namespace, `metadata.labels['''']`, `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, - status.podIP, status.podIPs.' properties: apiVersion: - description: Version of the schema the FieldPath is - written in terms of, defaults to "v1". type: string fieldPath: - description: Path of the field to select in the specified - API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource of the container: only - resources limits and requests (limits.cpu, limits.memory, - limits.ephemeral-storage, requests.cpu, requests.memory - and requests.ephemeral-storage) are currently supported.' properties: containerName: - description: 'Container name: required for volumes, - optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output format of the exposed - resources, defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource to select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret in the pod's namespace properties: key: - description: The key of the secret to select from. Must - be a valid secret key. type: string name: default: "" - description: 'Name of the referent. This field is - effectively required, but due to backwards compatibility - is allowed to be empty. Instances of this type with - an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, - uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret or its key - must be defined type: boolean required: - key @@ -261,62 +152,31 @@ spec: type: object type: array envFrom: - description: List of sources to populate environment variables in - the container. The keys defined within a source must be a C_IDENTIFIER. - All invalid keys will be reported as an event when the container - is starting. When a key exists in multiple sources, the value - associated with the last source will take precedence. Values defined - by an Env with a duplicate key will take precedence. Cannot be - updated. items: - description: EnvFromSource represents the source of a set of ConfigMaps properties: configMapRef: - description: The ConfigMap to select from properties: name: default: "" - description: 'Name of the referent. This field is effectively - required, but due to backwards compatibility is allowed - to be empty. Instances of this type with an empty value - here are almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: - description: An optional identifier to prepend to each key - in the ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: - description: The Secret to select from properties: name: default: "" - description: 'Name of the referent. This field is effectively - required, but due to backwards compatibility is allowed - to be empty. Instances of this type with an empty value - here are almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array ionice: - description: 'Settings to configure `ionice` to throttle the load - on disk. More info: http://kennystechtalk.blogspot.com/2015/04/throttling-cpu-usage-with-linux-cgroups.html - More info: https://oakbytes.wordpress.com/2012/06/06/linux-scheduler-cfs-and-nice/' properties: class: format: int32 @@ -326,55 +186,27 @@ spec: type: integer type: object lifecycle: - description: Actions that the management system should take in response - to container lifecycle events. Cannot be updated. properties: postStart: - description: 'PostStart is called immediately after a container - is created. If the handler fails, the container is terminated - and restarted according to its restart policy. Other management - of the container blocks until the hook completes. More info: - https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action to take. properties: command: - description: Command is the command line to execute - inside the container, the working directory for the - command is root ('/') in the container's filesystem. - The command is simply exec'd, it is not run inside - a shell, so traditional shell instructions ('|', etc) - won't work. To use a shell, you need to explicitly - call out to that shell. Exit status of 0 is treated - as live/healthy and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http request to perform. properties: host: - description: Host name to connect to, defaults to the - pod IP. You probably want to set "Host" in httpHeaders - instead. type: string httpHeaders: - description: Custom headers to set in the request. HTTP - allows repeated headers. items: - description: HTTPHeader describes a custom header - to be used in HTTP probes properties: name: - description: The header field name. This will - be canonicalized upon output, so case-variant - names will be understood as the same header. type: string value: - description: The header field value type: string required: - name @@ -383,108 +215,58 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port to access on - the container. Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting to the host. - Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration that the container - should sleep before being terminated. properties: seconds: - description: Seconds is the number of seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is NOT supported as a - LifecycleHandler and kept for the backward compatibility. - There are no validation of this field and lifecycle hooks - will fail in runtime when tcp handler is specified. properties: host: - description: 'Optional: Host name to connect to, defaults - to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port to access on - the container. Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object type: object preStop: - description: 'PreStop is called immediately before a container - is terminated due to an API request or management event such - as liveness/startup probe failure, preemption, resource contention, - etc. The handler is not called if the container crashes or - exits. The Pod''s termination grace period countdown begins - before the PreStop hook is executed. Regardless of the outcome - of the handler, the container will eventually terminate within - the Pod''s termination grace period (unless delayed by finalizers). - Other management of the container blocks until the hook completes - or until the termination grace period is reached. More info: - https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action to take. properties: command: - description: Command is the command line to execute - inside the container, the working directory for the - command is root ('/') in the container's filesystem. - The command is simply exec'd, it is not run inside - a shell, so traditional shell instructions ('|', etc) - won't work. To use a shell, you need to explicitly - call out to that shell. Exit status of 0 is treated - as live/healthy and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http request to perform. properties: host: - description: Host name to connect to, defaults to the - pod IP. You probably want to set "Host" in httpHeaders - instead. type: string httpHeaders: - description: Custom headers to set in the request. HTTP - allows repeated headers. items: - description: HTTPHeader describes a custom header - to be used in HTTP probes properties: name: - description: The header field name. This will - be canonicalized upon output, so case-variant - names will be understood as the same header. type: string value: - description: The header field value type: string required: - name @@ -493,51 +275,33 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port to access on - the container. Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting to the host. - Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration that the container - should sleep before being terminated. properties: seconds: - description: Seconds is the number of seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is NOT supported as a - LifecycleHandler and kept for the backward compatibility. - There are no validation of this field and lifecycle hooks - will fail in runtime when tcp handler is specified. properties: host: - description: 'Optional: Host name to connect to, defaults - to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port to access on - the container. Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port @@ -545,70 +309,38 @@ spec: type: object type: object livenessProbe: - description: 'Periodic probe of container liveness. Container will - be restarted if the probe fails. Cannot be updated. More info: - https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to take. properties: command: - description: Command is the command line to execute inside - the container, the working directory for the command is - root ('/') in the container's filesystem. The command - is simply exec'd, it is not run inside a shell, so traditional - shell instructions ('|', etc) won't work. To use a shell, - you need to explicitly call out to that shell. Exit status - of 0 is treated as live/healthy and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures for the probe to be - considered failed after having succeeded. Defaults to 3. Minimum - value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving a GRPC port. properties: port: - description: Port number of the gRPC service. Number must - be in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name of the service to place - in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default behavior is defined - by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http request to perform. properties: host: - description: Host name to connect to, defaults to the pod - IP. You probably want to set "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in the request. HTTP - allows repeated headers. items: - description: HTTPHeader describes a custom header to be - used in HTTP probes properties: name: - description: The header field name. This will be canonicalized - upon output, so case-variant names will be understood - as the same header. type: string value: - description: The header field value type: string required: - name @@ -617,154 +349,84 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port to access on the - container. Number must be in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting to the host. Defaults - to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the container has started - before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform the probe. Default - to 10 seconds. Minimum value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes for the probe to - be considered successful after having failed. Defaults to - 1. Must be 1 for liveness and startup. Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action involving a TCP port. properties: host: - description: 'Optional: Host name to connect to, defaults - to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port to access on the - container. Number must be in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds the pod needs to terminate - gracefully upon probe failure. The grace period is the duration - in seconds after the processes running in the pod are sent - a termination signal and the time when the processes are forcibly - halted with a kill signal. Set this value longer than the - expected cleanup time for your process. If this value is nil, - the pod's terminationGracePeriodSeconds will be used. Otherwise, - this value overrides the value provided by the pod spec. Value - must be non-negative integer. The value zero indicates stop - immediately via the kill signal (no opportunity to shut down). - This is a beta field and requires enabling ProbeTerminationGracePeriod - feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which the probe times - out. Defaults to 1 second. Minimum value is 1. More info: - https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object nice: - description: 'Settings to configure `nice` to throttle the load - on cpu. More info: http://kennystechtalk.blogspot.com/2015/04/throttling-cpu-usage-with-linux-cgroups.html - More info: https://oakbytes.wordpress.com/2012/06/06/linux-scheduler-cfs-and-nice/' properties: adjustment: format: int32 type: integer type: object readinessProbe: - description: 'Periodic probe of container service readiness. Container - will be removed from service endpoints if the probe fails. Cannot - be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to take. properties: command: - description: Command is the command line to execute inside - the container, the working directory for the command is - root ('/') in the container's filesystem. The command - is simply exec'd, it is not run inside a shell, so traditional - shell instructions ('|', etc) won't work. To use a shell, - you need to explicitly call out to that shell. Exit status - of 0 is treated as live/healthy and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures for the probe to be - considered failed after having succeeded. Defaults to 3. Minimum - value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving a GRPC port. properties: port: - description: Port number of the gRPC service. Number must - be in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name of the service to place - in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default behavior is defined - by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http request to perform. properties: host: - description: Host name to connect to, defaults to the pod - IP. You probably want to set "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in the request. HTTP - allows repeated headers. items: - description: HTTPHeader describes a custom header to be - used in HTTP probes properties: name: - description: The header field name. This will be canonicalized - upon output, so case-variant names will be understood - as the same header. type: string value: - description: The header field value type: string required: - name @@ -773,97 +435,51 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port to access on the - container. Number must be in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting to the host. Defaults - to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the container has started - before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform the probe. Default - to 10 seconds. Minimum value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes for the probe to - be considered successful after having failed. Defaults to - 1. Must be 1 for liveness and startup. Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action involving a TCP port. properties: host: - description: 'Optional: Host name to connect to, defaults - to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port to access on the - container. Number must be in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds the pod needs to terminate - gracefully upon probe failure. The grace period is the duration - in seconds after the processes running in the pod are sent - a termination signal and the time when the processes are forcibly - halted with a kill signal. Set this value longer than the - expected cleanup time for your process. If this value is nil, - the pod's terminationGracePeriodSeconds will be used. Otherwise, - this value overrides the value provided by the pod spec. Value - must be non-negative integer. The value zero indicates stop - immediately via the kill signal (no opportunity to shut down). - This is a beta field and requires enabling ProbeTerminationGracePeriod - feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which the probe times - out. Defaults to 1 second. Minimum value is 1. More info: - https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object resources: - description: 'Compute Resources required by container. Cannot be - updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' properties: claims: - description: "Claims lists the names of resources, defined in - spec.resourceClaims, that are used by this container. \n This - is an alpha field and requires enabling the DynamicResourceAllocation - feature gate. \n This field is immutable. It can only be set - for containers." items: - description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry in - pod.spec.resourceClaims of the Pod where this field - is used. It makes that resource available inside a container. type: string required: - name @@ -879,8 +495,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -889,211 +503,87 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. Requests cannot exceed - Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object securityContext: - description: 'Security options the pod should run with. More info: - https://kubernetes.io/docs/concepts/policy/security-context/ More - info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: allowPrivilegeEscalation: - description: 'AllowPrivilegeEscalation controls whether a process - can gain more privileges than its parent process. This bool - directly controls if the no_new_privs flag will be set on - the container process. AllowPrivilegeEscalation is true always - when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN - Note that this field cannot be set when spec.os.name is windows.' type: boolean appArmorProfile: - description: appArmorProfile is the AppArmor options to use - by this container. If set, this profile overrides the pod's - appArmorProfile. Note that this field cannot be set when spec.os.name - is windows. properties: localhostProfile: - description: localhostProfile indicates a profile loaded - on the node that should be used. The profile must be preconfigured - on the node to work. Must match the loaded name of the - profile. Must be set if and only if type is "Localhost". type: string type: - description: 'type indicates which kind of AppArmor profile - will be applied. Valid options are: Localhost - a profile - pre-loaded on the node. RuntimeDefault - the container - runtime''s default profile. Unconfined - no AppArmor enforcement.' type: string required: - type type: object capabilities: - description: The capabilities to add/drop when running containers. - Defaults to the default set of capabilities granted by the - container runtime. Note that this field cannot be set when - spec.os.name is windows. properties: add: - description: Added capabilities items: - description: Capability represent POSIX capabilities type type: string type: array x-kubernetes-list-type: atomic drop: - description: Removed capabilities items: - description: Capability represent POSIX capabilities type type: string type: array x-kubernetes-list-type: atomic type: object privileged: - description: Run container in privileged mode. Processes in - privileged containers are essentially equivalent to root on - the host. Defaults to false. Note that this field cannot be - set when spec.os.name is windows. type: boolean procMount: - description: procMount denotes the type of proc mount to use - for the containers. The default is DefaultProcMount which - uses the container runtime defaults for readonly paths and - masked paths. This requires the ProcMountType feature flag - to be enabled. Note that this field cannot be set when spec.os.name - is windows. type: string readOnlyRootFilesystem: - description: Whether this container has a read-only root filesystem. - Default is false. Note that this field cannot be set when - spec.os.name is windows. type: boolean runAsGroup: - description: The GID to run the entrypoint of the container - process. Uses runtime default if unset. May also be set in - PodSecurityContext. If set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes precedence. Note - that this field cannot be set when spec.os.name is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container must run as a non-root - user. If true, the Kubelet will validate the image at runtime - to ensure that it does not run as UID 0 (root) and fail to - start the container if it does. If unset or false, no such - validation will be performed. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, the value - specified in SecurityContext takes precedence. type: boolean runAsUser: - description: The UID to run the entrypoint of the container - process. Defaults to user specified in image metadata if unspecified. - May also be set in PodSecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified in SecurityContext - takes precedence. Note that this field cannot be set when - spec.os.name is windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be applied to the container. - If unspecified, the container runtime will allocate a random - SELinux context for each container. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, the value - specified in SecurityContext takes precedence. Note that this - field cannot be set when spec.os.name is windows. properties: level: - description: Level is SELinux level label that applies to - the container. type: string role: - description: Role is a SELinux role label that applies to - the container. type: string type: - description: Type is a SELinux type label that applies to - the container. type: string user: - description: User is a SELinux user label that applies to - the container. type: string type: object seccompProfile: - description: The seccomp options to use by this container. If - seccomp options are provided at both the pod & container level, - the container options override the pod options. Note that - this field cannot be set when spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates a profile defined - in a file on the node should be used. The profile must - be preconfigured on the node to work. Must be a descending - path, relative to the kubelet's configured seccomp profile - location. Must be set if type is "Localhost". Must NOT - be set for any other type. type: string type: - description: "type indicates which kind of seccomp profile - will be applied. Valid options are: \n Localhost - a profile - defined in a file on the node should be used. RuntimeDefault - - the container runtime default profile should be used. - Unconfined - no profile should be applied." type: string required: - type type: object windowsOptions: - description: The Windows specific settings applied to all containers. - If unspecified, the options from the PodSecurityContext will - be used. If set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes precedence. Note - that this field cannot be set when spec.os.name is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is where the GMSA admission - webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA credential spec named - by the GMSACredentialSpecName field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName is the name of the GMSA - credential spec to use. type: string hostProcess: - description: HostProcess determines if a container should - be run as a 'Host Process' container. All of a Pod's containers - must have the same effective HostProcess value (it is - not allowed to have a mix of HostProcess containers and - non-HostProcess containers). In addition, if HostProcess - is true then HostNetwork must also be set to true. type: boolean runAsUserName: - description: The UserName in Windows to run the entrypoint - of the container process. Defaults to the user specified - in image metadata if unspecified. May also be set in PodSecurityContext. - If set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes precedence. type: string type: object type: object type: object volumeDevices: - description: VolumeDevices is the list of block devices to be used by - the container. This is an alpha feature and may change in the future. items: - description: volumeDevice describes a mapping of a raw block device - within a container. properties: devicePath: - description: devicePath is the path inside of the container that - the device will be mapped to. type: string name: - description: name must match the name of a persistentVolumeClaim - in the pod type: string required: - devicePath @@ -1101,56 +591,21 @@ spec: type: object type: array volumeMounts: - description: VolumeMounts specifies the Pod volumes to mount into the - container's filesystem. Cannot be updated. items: - description: VolumeMount describes a mounting of a Volume within a - container. properties: mountPath: - description: Path within the container at which the volume should - be mounted. Must not contain ':'. type: string mountPropagation: - description: mountPropagation determines how mounts are propagated - from the host to container and the other way around. When not - set, MountPropagationNone is used. This field is beta in 1.10. - When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation - must be None or unspecified (which defaults to None). type: string name: - description: This must match the Name of a Volume. type: string readOnly: - description: Mounted read-only if true, read-write otherwise (false - or unspecified). Defaults to false. type: boolean recursiveReadOnly: - description: "RecursiveReadOnly specifies whether read-only mounts - should be handled recursively. \n If ReadOnly is false, this - field has no meaning and must be unspecified. \n If ReadOnly - is true, and this field is set to Disabled, the mount is not - made recursively read-only. If this field is set to IfPossible, - the mount is made recursively read-only, if it is supported - by the container runtime. If this field is set to Enabled, - the mount is made recursively read-only if it is supported by - the container runtime, otherwise the pod will not be started - and an error will be generated to indicate the reason. \n If - this field is set to IfPossible or Enabled, MountPropagation - must be set to None (or be unspecified, which defaults to None). - \n If this field is not specified, it is treated as an equivalent - of Disabled." type: string subPath: - description: Path within the volume from which the container's - volume should be mounted. Defaults to "" (volume's root). type: string subPathExpr: - description: Expanded path within the volume from which the container's - volume should be mounted. Behaves similarly to SubPath but environment - variable references $(VAR_NAME) are expanded using the container's - environment. Defaults to "" (volume's root). SubPathExpr and - SubPath are mutually exclusive. type: string required: - mountPath @@ -1158,9 +613,6 @@ spec: type: object type: array workingDir: - description: WorkDir specifies the container's working directory. If - not specified, the container runtime's default will be used, which - might be configured in the container image. Cannot be updated. type: string type: object type: object diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/core.kubestash.com/v1alpha1/backupbatches.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/core.kubestash.com/v1alpha1/backupbatches.yaml index 0714afec7..af42fbadf 100644 --- a/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/core.kubestash.com/v1alpha1/backupbatches.yaml +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/core.kubestash.com/v1alpha1/backupbatches.yaml @@ -17,18 +17,10 @@ spec: version: v1alpha1 validation: openAPIV3Schema: - description: BackupBatch specifies the configurations for taking backup of multiple - co-related applications. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: properties: @@ -64,56 +56,26 @@ spec: type: object type: object spec: - description: BackupBatchSpec defines the targets of backup, the backend - where the backed up data will be stored, and the session configuration - which specifies when and how to take the backup. properties: backends: - description: "Backends specifies a list of storage references where - the backed up data will be stored. The respective BackupStorages can - be in a different namespace than the BackupBatch. However, it must - be allowed by the `usagePolicy` of the BackupStorage to refer from - this namespace. \n This field is optional, if you don't provide any - backend here, KubeStash will use the default BackupStorage for the - namespace. If a default BackupStorage does not exist in the same namespace, - then KubeStash will look for a default BackupStorage in other namespaces - that allows using it from the BackupBatch namespace." items: - description: BackendReference specifies reference to a storage where - the backed up data will be stored. properties: name: - description: Name provides an identifier for this storage. type: string retentionPolicy: - description: RetentionPolicy refers to a RetentionPolicy CRs which - defines how to cleanup the old Snapshots. This field is optional. - If you don't provide this field, KubeStash will use the default - RetentionPolicy for the namespace. If there is no default RetentionPolicy - for the namespace, then KubeStash will find a RetentionPolicy - from other namespaces that is allowed to use from the current - namespace. properties: name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string required: - name type: object storageRef: - description: StorageRef refers to the CR that holds the information - of a storage. You can refer to the BackupStorage CR of a different - namespace as long as it is allowed by the `usagePolicy` of the - BackupStorage.` properties: name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string required: - name @@ -121,229 +83,102 @@ spec: type: object type: array paused: - description: Paused indicates that the BackupBatch has been paused from - taking backup. Default value is 'false'. If you set `paused` field - to `true`, KubeStash will suspend the respective backup triggering - CronJob and skip processing any further events for this BackupBatch. type: boolean sessions: - description: Session defines a list of session configurations that specifies - when and how to take backup. items: - description: BatchSession specifies the session configuration for - the targets. properties: backupTimeout: - description: BackupTimeout specifies the maximum duration of backup. - Backup will be considered Failed if backup tasks do not complete - within this time limit. By default, KubeStash don't set any - timeout for backup. type: string hooks: - description: Hooks specifies the backup hooks that should be executed - before and/or after the backup. properties: postBackup: - description: PostBackup specifies a list of hooks that will - be executed after backup items: - description: HookInfo specifies the information about the - backup/restore hooks properties: executionPolicy: default: Always - description: 'ExecutionPolicy specifies when to execute - the hook. Valid values are: - "Always": KubeStash - will execute this hook no matter the backup/restore - failed. This is the default execution policy. - "OnSuccess": - KubeStash will execute this hook only if the backup/restore - has succeeded. - "OnFailure": KubeStash will execute - this hook only if the backup/restore has failed.' enum: - Always - OnSuccess - OnFailure type: string hookTemplate: - description: HookTemplate points to a HookTemplate CR - that will be used to execute the hook. You can refer - to a HookTemplate from other namespaces as long as - your current namespace is allowed by the `usagePolicy` - in the respective HookTemplate. properties: name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: - description: 'Namespace of the referent. More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string required: - name type: object maxRetry: - description: MaxRetry specifies how many times KubeStash - should retry the hook execution in case of failure. - The default value of this field is 0 which means no - retry. format: int32 minimum: 0 type: integer name: - description: Name specifies a name for the hook type: string params: - description: Params specifies parameters for the hook. - You must provide the parameter in the HookTemplates - desired structure. type: object x-kubernetes-preserve-unknown-fields: true runtimeSettings: - description: RuntimeSettings specifies runtime configurations - for the hook executor Job. Use this field only for - `Function` type hook executor. properties: container: properties: env: - description: List of environment variables to - set in the container. Cannot be updated. items: - description: EnvVar represents an environment - variable present in a Container. properties: name: - description: Name of the environment variable. - Must be a C_IDENTIFIER. type: string value: - description: 'Variable references $(VAR_NAME) - are expanded using the previously defined - environment variables in the container - and any service environment variables. - If a variable cannot be resolved, the - reference in the input string will be - unchanged. Double $$ are reduced to - a single $, which allows for escaping - the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" - will produce the string literal "$(VAR_NAME)". - Escaped references will never be expanded, - regardless of whether the variable exists - or not. Defaults to "".' type: string valueFrom: - description: Source for the environment - variable's value. Cannot be used if - value is not empty. properties: configMapKeyRef: - description: Selects a key of a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the - ConfigMap or its key must be - defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field of the - pod: supports metadata.name, metadata.namespace, - `metadata.labels['''']`, `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, - status.hostIP, status.podIP, status.podIPs.' properties: apiVersion: - description: Version of the schema - the FieldPath is written in - terms of, defaults to "v1". type: string fieldPath: - description: Path of the field - to select in the specified API - version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource of - the container: only resources limits - and requests (limits.cpu, limits.memory, - limits.ephemeral-storage, requests.cpu, - requests.memory and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: - required for volumes, optional - for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource - to select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret - in the pod's namespace properties: key: - description: The key of the secret - to select from. Must be a valid - secret key. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the - Secret or its key must be defined type: boolean required: - key @@ -355,76 +190,31 @@ spec: type: object type: array envFrom: - description: List of sources to populate environment - variables in the container. The keys defined - within a source must be a C_IDENTIFIER. All - invalid keys will be reported as an event - when the container is starting. When a key - exists in multiple sources, the value associated - with the last source will take precedence. - Values defined by an Env with a duplicate - key will take precedence. Cannot be updated. items: - description: EnvFromSource represents the - source of a set of ConfigMaps properties: configMapRef: - description: The ConfigMap to select from properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap - must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: - description: An optional identifier to - prepend to each key in the ConfigMap. - Must be a C_IDENTIFIER. type: string secretRef: - description: The Secret to select from properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret - must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array ionice: - description: 'Settings to configure `ionice` - to throttle the load on disk. More info: http://kennystechtalk.blogspot.com/2015/04/throttling-cpu-usage-with-linux-cgroups.html - More info: https://oakbytes.wordpress.com/2012/06/06/linux-scheduler-cfs-and-nice/' properties: class: format: int32 @@ -434,70 +224,27 @@ spec: type: integer type: object lifecycle: - description: Actions that the management system - should take in response to container lifecycle - events. Cannot be updated. properties: postStart: - description: 'PostStart is called immediately - after a container is created. If the handler - fails, the container is terminated and - restarted according to its restart policy. - Other management of the container blocks - until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the - command is root ('/') in the - container's filesystem. The command - is simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, you - need to explicitly call out to - that shell. Exit status of 0 is - treated as live/healthy and non-zero - is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in - httpHeaders instead. type: string httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood - as the same header. type: string value: - description: The header field - value type: string required: - name @@ -506,134 +253,58 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the - HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration - that the container should sleep before - being terminated. properties: seconds: - description: Seconds is the number - of seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is - NOT supported as a LifecycleHandler - and kept for the backward compatibility. - There are no validation of this field - and lifecycle hooks will fail in runtime - when tcp handler is specified. properties: host: - description: 'Optional: Host name - to connect to, defaults to the - pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object type: object preStop: - description: 'PreStop is called immediately - before a container is terminated due to - an API request or management event such - as liveness/startup probe failure, preemption, - resource contention, etc. The handler - is not called if the container crashes - or exits. The Pod''s termination grace - period countdown begins before the PreStop - hook is executed. Regardless of the outcome - of the handler, the container will eventually - terminate within the Pod''s termination - grace period (unless delayed by finalizers). - Other management of the container blocks - until the hook completes or until the - termination grace period is reached. More - info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the - command is root ('/') in the - container's filesystem. The command - is simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, you - need to explicitly call out to - that shell. Exit status of 0 is - treated as live/healthy and non-zero - is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in - httpHeaders instead. type: string httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood - as the same header. type: string value: - description: The header field - value type: string required: - name @@ -642,59 +313,33 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the - HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration - that the container should sleep before - being terminated. properties: seconds: - description: Seconds is the number - of seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is - NOT supported as a LifecycleHandler - and kept for the backward compatibility. - There are no validation of this field - and lifecycle hooks will fail in runtime - when tcp handler is specified. properties: host: - description: 'Optional: Host name - to connect to, defaults to the - pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port @@ -702,87 +347,38 @@ spec: type: object type: object livenessProbe: - description: 'Periodic probe of container liveness. - Container will be restarted if the probe fails. - Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to - take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it is - not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to - explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults to 3. - Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving - a GRPC port. properties: port: - description: Port number of the gRPC - service. Number must be in the range - 1 to 65535. format: int32 type: integer service: - description: "Service is the name of - the service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default - behavior is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect to, - defaults to the pod IP. You probably - want to set "Host" in httpHeaders - instead. type: string httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in HTTP - probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood as - the same header. type: string value: - description: The header field - value type: string required: - name @@ -791,186 +387,84 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP - server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port - to access on the container. Number - must be in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the - container has started before liveness - probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform - the probe. Default to 10 seconds. Minimum - value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. Must - be 1 for liveness and startup. Minimum - value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action - involving a TCP port. properties: host: - description: 'Optional: Host name to - connect to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port - to access on the container. Number - must be in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully - upon probe failure. The grace period is - the duration in seconds after the processes - running in the pod are sent a termination - signal and the time when the processes - are forcibly halted with a kill signal. - Set this value longer than the expected - cleanup time for your process. If this - value is nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value overrides - the value provided by the pod spec. Value - must be non-negative integer. The value - zero indicates stop immediately via the - kill signal (no opportunity to shut down). - This is a beta field and requires enabling - ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which - the probe times out. Defaults to 1 second. - Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object nice: - description: 'Settings to configure `nice` to - throttle the load on cpu. More info: http://kennystechtalk.blogspot.com/2015/04/throttling-cpu-usage-with-linux-cgroups.html - More info: https://oakbytes.wordpress.com/2012/06/06/linux-scheduler-cfs-and-nice/' properties: adjustment: format: int32 type: integer type: object readinessProbe: - description: 'Periodic probe of container service - readiness. Container will be removed from - service endpoints if the probe fails. Cannot - be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to - take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it is - not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to - explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults to 3. - Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving - a GRPC port. properties: port: - description: Port number of the gRPC - service. Number must be in the range - 1 to 65535. format: int32 type: integer service: - description: "Service is the name of - the service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default - behavior is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect to, - defaults to the pod IP. You probably - want to set "Host" in httpHeaders - instead. type: string httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in HTTP - probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood as - the same header. type: string value: - description: The header field - value type: string required: - name @@ -979,116 +473,51 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP - server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port - to access on the container. Number - must be in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the - container has started before liveness - probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform - the probe. Default to 10 seconds. Minimum - value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. Must - be 1 for liveness and startup. Minimum - value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action - involving a TCP port. properties: host: - description: 'Optional: Host name to - connect to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port - to access on the container. Number - must be in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully - upon probe failure. The grace period is - the duration in seconds after the processes - running in the pod are sent a termination - signal and the time when the processes - are forcibly halted with a kill signal. - Set this value longer than the expected - cleanup time for your process. If this - value is nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value overrides - the value provided by the pod spec. Value - must be non-negative integer. The value - zero indicates stop immediately via the - kill signal (no opportunity to shut down). - This is a beta field and requires enabling - ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which - the probe times out. Defaults to 1 second. - Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object resources: - description: 'Compute Resources required by - container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' properties: claims: - description: "Claims lists the names of - resources, defined in spec.resourceClaims, - that are used by this container. \n This - is an alpha field and requires enabling - the DynamicResourceAllocation feature - gate. \n This field is immutable. It can - only be set for containers." items: - description: ResourceClaim references - one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name - of one entry in pod.spec.resourceClaims - of the Pod where this field is used. - It makes that resource available - inside a container. type: string required: - name @@ -1104,9 +533,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum - amount of compute resources allowed. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -1115,245 +541,77 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum - amount of compute resources required. - If Requests is omitted for a container, - it defaults to Limits if that is explicitly - specified, otherwise to an implementation-defined - value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object securityContext: - description: 'Security options the pod should - run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: allowPrivilegeEscalation: - description: 'AllowPrivilegeEscalation controls - whether a process can gain more privileges - than its parent process. This bool directly - controls if the no_new_privs flag will - be set on the container process. AllowPrivilegeEscalation - is true always when the container is: - 1) run as Privileged 2) has CAP_SYS_ADMIN - Note that this field cannot be set when - spec.os.name is windows.' type: boolean appArmorProfile: - description: appArmorProfile is the AppArmor - options to use by this container. If set, - this profile overrides the pod's appArmorProfile. - Note that this field cannot be set when - spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile loaded on the node that - should be used. The profile must be - preconfigured on the node to work. - Must match the loaded name of the - profile. Must be set if and only if - type is "Localhost". type: string type: - description: 'type indicates which kind - of AppArmor profile will be applied. - Valid options are: Localhost - a profile - pre-loaded on the node. RuntimeDefault - - the container runtime''s default - profile. Unconfined - no AppArmor - enforcement.' type: string required: - type type: object capabilities: - description: The capabilities to add/drop - when running containers. Defaults to the - default set of capabilities granted by - the container runtime. Note that this - field cannot be set when spec.os.name - is windows. properties: add: - description: Added capabilities items: - description: Capability represent - POSIX capabilities type type: string type: array x-kubernetes-list-type: atomic drop: - description: Removed capabilities items: - description: Capability represent - POSIX capabilities type type: string type: array x-kubernetes-list-type: atomic type: object privileged: - description: Run container in privileged - mode. Processes in privileged containers - are essentially equivalent to root on - the host. Defaults to false. Note that - this field cannot be set when spec.os.name - is windows. type: boolean procMount: - description: procMount denotes the type - of proc mount to use for the containers. - The default is DefaultProcMount which - uses the container runtime defaults for - readonly paths and masked paths. This - requires the ProcMountType feature flag - to be enabled. Note that this field cannot - be set when spec.os.name is windows. type: string readOnlyRootFilesystem: - description: Whether this container has - a read-only root filesystem. Default is - false. Note that this field cannot be - set when spec.os.name is windows. type: boolean runAsGroup: - description: The GID to run the entrypoint - of the container process. Uses runtime - default if unset. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container - must run as a non-root user. If true, - the Kubelet will validate the image at - runtime to ensure that it does not run - as UID 0 (root) and fail to start the - container if it does. If unset or false, - no such validation will be performed. - May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: boolean runAsUser: - description: The UID to run the entrypoint - of the container process. Defaults to - user specified in image metadata if unspecified. - May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be applied - to the container. If unspecified, the - container runtime will allocate a random - SELinux context for each container. May - also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is windows. properties: level: - description: Level is SELinux level - label that applies to the container. type: string role: - description: Role is a SELinux role - label that applies to the container. type: string type: - description: Type is a SELinux type - label that applies to the container. type: string user: - description: User is a SELinux user - label that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to use - by this container. If seccomp options - are provided at both the pod & container - level, the container options override - the pod options. Note that this field - cannot be set when spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile defined in a file on the - node should be used. The profile must - be preconfigured on the node to work. - Must be a descending path, relative - to the kubelet's configured seccomp - profile location. Must be set if type - is "Localhost". Must NOT be set for - any other type. type: string type: - description: "type indicates which kind - of seccomp profile will be applied. - Valid options are: \n Localhost - - a profile defined in a file on the - node should be used. RuntimeDefault - - the container runtime default profile - should be used. Unconfined - no profile - should be applied." type: string required: - type type: object windowsOptions: - description: The Windows specific settings - applied to all containers. If unspecified, - the options from the PodSecurityContext - will be used. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. Note - that this field cannot be set when spec.os.name - is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is where - the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA credential - spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName - is the name of the GMSA credential - spec to use. type: string hostProcess: - description: HostProcess determines - if a container should be run as a - 'Host Process' container. All of a - Pod's containers must have the same - effective HostProcess value (it is - not allowed to have a mix of HostProcess - containers and non-HostProcess containers). - In addition, if HostProcess is true - then HostNetwork must also be set - to true. type: boolean runAsUserName: - description: The UserName in Windows - to run the entrypoint of the container - process. Defaults to the user specified - in image metadata if unspecified. - May also be set in PodSecurityContext. - If set in both SecurityContext and - PodSecurityContext, the value specified - in SecurityContext takes precedence. type: string type: object type: object @@ -1361,87 +619,22 @@ spec: pod: properties: affinity: - description: If specified, the pod's scheduling - constraints properties: nodeAffinity: - description: Describes node affinity scheduling - rules for the pod. properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer - to schedule pods to nodes that satisfy - the affinity expressions specified - by this field, but it may choose a - node that violates one or more of - the expressions. The node that is - most preferred is the one with the - greatest sum of weights, i.e. for - each node that meets all of the scheduling - requirements (resource request, requiredDuringScheduling - affinity expressions, etc.), compute - a sum by iterating through the elements - of this field and adding "weight" - to the sum if the node matches the - corresponding matchExpressions; the - node(s) with the highest sum are the - most preferred. items: - description: An empty preferred scheduling - term matches all objects with implicit - weight 0 (i.e. it's a no-op). A - null preferred scheduling term matches - no objects (i.e. is also a no-op). properties: preference: - description: A node selector term, - associated with the corresponding - weight. properties: matchExpressions: - description: A list of node - selector requirements by - node's labels. items: - description: A node selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists, - DoesNotExist. Gt, - and Lt. type: string values: - description: An array - of string values. - If the operator is - In or NotIn, the values - array must be non-empty. - If the operator is - Exists or DoesNotExist, - the values array must - be empty. If the operator - is Gt or Lt, the values - array must have a - single element, which - will be interpreted - as an integer. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -1453,49 +646,13 @@ spec: type: array x-kubernetes-list-type: atomic matchFields: - description: A list of node - selector requirements by - node's fields. items: - description: A node selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists, - DoesNotExist. Gt, - and Lt. type: string values: - description: An array - of string values. - If the operator is - In or NotIn, the values - array must be non-empty. - If the operator is - Exists or DoesNotExist, - the values array must - be empty. If the operator - is Gt or Lt, the values - array must have a - single element, which - will be interpreted - as an integer. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -1509,10 +666,6 @@ spec: type: object x-kubernetes-map-type: atomic weight: - description: Weight associated - with matching the corresponding - nodeSelectorTerm, in the range - 1-100. format: int32 type: integer required: @@ -1522,73 +675,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements - specified by this field are not met - at scheduling time, the pod will not - be scheduled onto the node. If the - affinity requirements specified by - this field cease to be met at some - point during pod execution (e.g. due - to an update), the system may or may - not try to eventually evict the pod - from its node. properties: nodeSelectorTerms: - description: Required. A list of - node selector terms. The terms - are ORed. items: - description: A null or empty node - selector term matches no objects. - The requirements of them are - ANDed. The TopologySelectorTerm - type implements a subset of - the NodeSelectorTerm. properties: matchExpressions: - description: A list of node - selector requirements by - node's labels. items: - description: A node selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists, - DoesNotExist. Gt, - and Lt. type: string values: - description: An array - of string values. - If the operator is - In or NotIn, the values - array must be non-empty. - If the operator is - Exists or DoesNotExist, - the values array must - be empty. If the operator - is Gt or Lt, the values - array must have a - single element, which - will be interpreted - as an integer. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -1600,49 +698,13 @@ spec: type: array x-kubernetes-list-type: atomic matchFields: - description: A list of node - selector requirements by - node's fields. items: - description: A node selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists, - DoesNotExist. Gt, - and Lt. type: string values: - description: An array - of string values. - If the operator is - In or NotIn, the values - array must be non-empty. - If the operator is - Exists or DoesNotExist, - the values array must - be empty. If the operator - is Gt or Lt, the values - array must have a - single element, which - will be interpreted - as an integer. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -1663,91 +725,22 @@ spec: x-kubernetes-map-type: atomic type: object podAffinity: - description: Describes pod affinity scheduling - rules (e.g. co-locate this pod in the - same node, zone, etc. as some other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer - to schedule pods to nodes that satisfy - the affinity expressions specified - by this field, but it may choose a - node that violates one or more of - the expressions. The node that is - most preferred is the one with the - greatest sum of weights, i.e. for - each node that meets all of the scheduling - requirements (resource request, requiredDuringScheduling - affinity expressions, etc.), compute - a sum by iterating through the elements - of this field and adding "weight" - to the sum if the node has pods which - matches the corresponding podAffinityTerm; - the node(s) with the highest sum are - the most preferred. items: - description: The weights of all of - the matched WeightedPodAffinityTerm - fields are added per-node to find - the most preferred node(s) properties: podAffinityTerm: - description: Required. A pod affinity - term, associated with the corresponding - weight. properties: labelSelector: - description: A label query - over a set of resources, - in this case pods. If it's - null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: key - is the label key - that the selector - applies to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values - is an array of - string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -1761,141 +754,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an - element of matchExpressions, - whose key field is "key", - the operator is "In", - and the values array - contains only "value". - The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming - pod labels, those key-value - labels are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods - which pods will be taken - into consideration for the - incoming pod's pod (anti) - affinity. Keys that don't - exist in the incoming pod - labels will be ignored. - The default value is empty. - The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, - matchLabelKeys cannot be - set when labelSelector isn't - set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming - pod labels, those key-value - labels are merged with `labelSelector` - as `key notin (value)` to - select the group of existing - pods which pods will be - taken into consideration - for the incoming pod's pod - (anti) affinity. Keys that - don't exist in the incoming - pod labels will be ignored. - The default value is empty. - The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, - mismatchLabelKeys cannot - be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query - over the set of namespaces - that the term applies to. - The term is applied to the - union of the namespaces - selected by this field and - the ones listed in the namespaces - field. null selector and - null or empty namespaces - list means "this pod's namespace". - An empty selector ({}) matches - all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: key - is the label key - that the selector - applies to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values - is an array of - string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -1909,59 +790,20 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an - element of matchExpressions, - whose key field is "key", - the operator is "In", - and the values array - contains only "value". - The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace - names that the term applies - to. The term is applied - to the union of the namespaces - listed in this field and - the ones selected by namespaceSelector. - null or empty namespaces - list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should - be co-located (affinity) - or not co-located (anti-affinity) - with the pods matching the - labelSelector in the specified - namespaces, where co-located - is defined as running on - a node whose value of the - label with key topologyKey - matches that of any node - on which any of the selected - pods is running. Empty topologyKey - is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated - with matching the corresponding - podAffinityTerm, in the range - 1-100. format: int32 type: integer required: @@ -1971,81 +813,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements - specified by this field are not met - at scheduling time, the pod will not - be scheduled onto the node. If the - affinity requirements specified by - this field cease to be met at some - point during pod execution (e.g. due - to a pod label update), the system - may or may not try to eventually evict - the pod from its node. When there - are multiple elements, the lists of - nodes corresponding to each podAffinityTerm - are intersected, i.e. all terms must - be satisfied. items: - description: Defines a set of pods - (namely those matching the labelSelector - relative to the given namespace(s)) - that this pod should be co-located - (affinity) or not co-located (anti-affinity) - with, where co-located is defined - as running on a node whose value - of the label with key - matches that of any node on which - a pod of the set of pods is running properties: labelSelector: - description: A label query over - a set of resources, in this - case pods. If it's null, this - PodAffinityTerm matches with - no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to a - set of values. Valid - operators are In, - NotIn, Exists and - DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, the - values array must - be non-empty. If the - operator is Exists - or DoesNotExist, the - values array must - be empty. This array - is replaced during - a strategic merge - patch. items: type: string type: array @@ -2059,129 +838,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in - the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is - a set of pod label keys to select - which pods will be taken into - consideration. The keys are - used to lookup values from the - incoming pod labels, those key-value - labels are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, matchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label keys to - select which pods will be taken - into consideration. The keys - are used to lookup values from - the incoming pod labels, those - key-value labels are merged - with `labelSelector` as `key - notin (value)` to select the - group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over - the set of namespaces that the - term applies to. The term is - applied to the union of the - namespaces selected by this - field and the ones listed in - the namespaces field. null selector - and null or empty namespaces - list means "this pod's namespace". - An empty selector ({}) matches - all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to a - set of values. Valid - operators are In, - NotIn, Exists and - DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, the - values array must - be non-empty. If the - operator is Exists - or DoesNotExist, the - values array must - be empty. This array - is replaced during - a strategic merge - patch. items: type: string type: array @@ -2195,47 +874,15 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in - the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace names - that the term applies to. The - term is applied to the union - of the namespaces listed in - this field and the ones selected - by namespaceSelector. null or - empty namespaces list and null - namespaceSelector means "this - pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be - co-located (affinity) or not - co-located (anti-affinity) with - the pods matching the labelSelector - in the specified namespaces, - where co-located is defined - as running on a node whose value - of the label with key topologyKey - matches that of any node on - which any of the selected pods - is running. Empty topologyKey - is not allowed. type: string required: - topologyKey @@ -2244,92 +891,22 @@ spec: x-kubernetes-list-type: atomic type: object podAntiAffinity: - description: Describes pod anti-affinity - scheduling rules (e.g. avoid putting this - pod in the same node, zone, etc. as some - other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer - to schedule pods to nodes that satisfy - the anti-affinity expressions specified - by this field, but it may choose a - node that violates one or more of - the expressions. The node that is - most preferred is the one with the - greatest sum of weights, i.e. for - each node that meets all of the scheduling - requirements (resource request, requiredDuringScheduling - anti-affinity expressions, etc.), - compute a sum by iterating through - the elements of this field and adding - "weight" to the sum if the node has - pods which matches the corresponding - podAffinityTerm; the node(s) with - the highest sum are the most preferred. items: - description: The weights of all of - the matched WeightedPodAffinityTerm - fields are added per-node to find - the most preferred node(s) properties: podAffinityTerm: - description: Required. A pod affinity - term, associated with the corresponding - weight. properties: labelSelector: - description: A label query - over a set of resources, - in this case pods. If it's - null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: key - is the label key - that the selector - applies to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values - is an array of - string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -2343,141 +920,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an - element of matchExpressions, - whose key field is "key", - the operator is "In", - and the values array - contains only "value". - The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming - pod labels, those key-value - labels are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods - which pods will be taken - into consideration for the - incoming pod's pod (anti) - affinity. Keys that don't - exist in the incoming pod - labels will be ignored. - The default value is empty. - The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, - matchLabelKeys cannot be - set when labelSelector isn't - set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming - pod labels, those key-value - labels are merged with `labelSelector` - as `key notin (value)` to - select the group of existing - pods which pods will be - taken into consideration - for the incoming pod's pod - (anti) affinity. Keys that - don't exist in the incoming - pod labels will be ignored. - The default value is empty. - The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, - mismatchLabelKeys cannot - be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query - over the set of namespaces - that the term applies to. - The term is applied to the - union of the namespaces - selected by this field and - the ones listed in the namespaces - field. null selector and - null or empty namespaces - list means "this pod's namespace". - An empty selector ({}) matches - all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: key - is the label key - that the selector - applies to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values - is an array of - string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -2491,59 +956,20 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an - element of matchExpressions, - whose key field is "key", - the operator is "In", - and the values array - contains only "value". - The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace - names that the term applies - to. The term is applied - to the union of the namespaces - listed in this field and - the ones selected by namespaceSelector. - null or empty namespaces - list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should - be co-located (affinity) - or not co-located (anti-affinity) - with the pods matching the - labelSelector in the specified - namespaces, where co-located - is defined as running on - a node whose value of the - label with key topologyKey - matches that of any node - on which any of the selected - pods is running. Empty topologyKey - is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated - with matching the corresponding - podAffinityTerm, in the range - 1-100. format: int32 type: integer required: @@ -2553,81 +979,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the anti-affinity requirements - specified by this field are not met - at scheduling time, the pod will not - be scheduled onto the node. If the - anti-affinity requirements specified - by this field cease to be met at some - point during pod execution (e.g. due - to a pod label update), the system - may or may not try to eventually evict - the pod from its node. When there - are multiple elements, the lists of - nodes corresponding to each podAffinityTerm - are intersected, i.e. all terms must - be satisfied. items: - description: Defines a set of pods - (namely those matching the labelSelector - relative to the given namespace(s)) - that this pod should be co-located - (affinity) or not co-located (anti-affinity) - with, where co-located is defined - as running on a node whose value - of the label with key - matches that of any node on which - a pod of the set of pods is running properties: labelSelector: - description: A label query over - a set of resources, in this - case pods. If it's null, this - PodAffinityTerm matches with - no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to a - set of values. Valid - operators are In, - NotIn, Exists and - DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, the - values array must - be non-empty. If the - operator is Exists - or DoesNotExist, the - values array must - be empty. This array - is replaced during - a strategic merge - patch. items: type: string type: array @@ -2641,129 +1004,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in - the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is - a set of pod label keys to select - which pods will be taken into - consideration. The keys are - used to lookup values from the - incoming pod labels, those key-value - labels are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, matchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label keys to - select which pods will be taken - into consideration. The keys - are used to lookup values from - the incoming pod labels, those - key-value labels are merged - with `labelSelector` as `key - notin (value)` to select the - group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over - the set of namespaces that the - term applies to. The term is - applied to the union of the - namespaces selected by this - field and the ones listed in - the namespaces field. null selector - and null or empty namespaces - list means "this pod's namespace". - An empty selector ({}) matches - all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to a - set of values. Valid - operators are In, - NotIn, Exists and - DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, the - values array must - be non-empty. If the - operator is Exists - or DoesNotExist, the - values array must - be empty. This array - is replaced during - a strategic merge - patch. items: type: string type: array @@ -2777,47 +1040,15 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in - the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace names - that the term applies to. The - term is applied to the union - of the namespaces listed in - this field and the ones selected - by namespaceSelector. null or - empty namespaces list and null - namespaceSelector means "this - pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be - co-located (affinity) or not - co-located (anti-affinity) with - the pods matching the labelSelector - in the specified namespaces, - where co-located is defined - as running on a node whose value - of the label with key topologyKey - matches that of any node on - which any of the selected pods - is running. Empty topologyKey - is not allowed. type: string required: - topologyKey @@ -2827,327 +1058,106 @@ spec: type: object type: object automountServiceAccountToken: - description: AutomountServiceAccountToken indicates - whether a service account token should be - automatically mounted. type: boolean enableServiceLinks: - description: 'EnableServiceLinks indicates whether - information about services should be injected - into pod''s environment variables, matching - the syntax of Docker links. Optional: Defaults - to true.' type: boolean imagePullSecrets: - description: 'ImagePullSecrets is an optional - list of references to secrets in the same - namespace to use for pulling any of the images - used by this PodRuntimeSettings. If specified, - these secrets will be passed to individual - puller implementations for them to use. For - example, in the case of docker, only DockerConfig - type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod' items: - description: LocalObjectReference contains - enough information to let you locate the - referenced object inside the same namespace. properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic type: array nodeName: - description: NodeName is a request to schedule - this pod onto a specific node. If it is non-empty, - the scheduler simply schedules this pod onto - that node, assuming that it fits resource - requirements. type: string nodeSelector: additionalProperties: type: string - description: 'NodeSelector is a selector which - must be true for the pod to fit on a node. - Selector which must match a node''s labels - for the pod to be scheduled on that node. - More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/' type: object podAnnotations: additionalProperties: type: string - description: PodAnnotations are the annotations - that will be attached with the respective - Pod type: object podLabels: additionalProperties: type: string - description: PodLabels are the labels that will - be attached with the respective Pod type: object priority: - description: The priority value. Various system - components use this field to find the priority - of the pod. When Priority Admission Controller - is enabled, it prevents users from setting - this field. The admission controller populates - this field from PriorityClassName. The higher - the value, the higher the priority. format: int32 type: integer priorityClassName: - description: If specified, indicates the pod's - priority. "system-node-critical" and "system-cluster-critical" - are two special keywords which indicate the - highest priorities with the former being the - highest priority. Any other name must be defined - by creating a PriorityClass object with that - name. If not specified, the pod priority will - be default or zero if there is no default. type: string readinessGates: - description: 'If specified, all readiness gates - will be evaluated for pod readiness. A pod - is ready when all its containers are ready - AND all conditions specified in the readiness - gates have status equal to "True" More info: - https://git.k8s.io/enhancements/keps/sig-network/0007-pod-ready%2B%2B.md' items: - description: PodReadinessGate contains the - reference to a pod condition properties: conditionType: - description: ConditionType refers to a - condition in the pod's condition list - with matching type. type: string required: - conditionType type: object type: array runtimeClassName: - description: 'RuntimeClassName refers to a RuntimeClass - object in the node.k8s.io group, which should - be used to run this pod. If no RuntimeClass - resource matches the named class, the pod - will not be run. If unset or empty, the "legacy" - RuntimeClass will be used, which is an implicit - class with an empty definition that uses the - default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md - This is an alpha feature and may change in - the future.' type: string schedulerName: - description: If specified, the pod will be dispatched - by specified scheduler. If not specified, - the pod will be dispatched by default scheduler. type: string securityContext: - description: 'Security options the pod should - run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: appArmorProfile: - description: appArmorProfile is the AppArmor - options to use by the containers in this - pod. Note that this field cannot be set - when spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile loaded on the node that - should be used. The profile must be - preconfigured on the node to work. - Must match the loaded name of the - profile. Must be set if and only if - type is "Localhost". type: string type: - description: 'type indicates which kind - of AppArmor profile will be applied. - Valid options are: Localhost - a profile - pre-loaded on the node. RuntimeDefault - - the container runtime''s default - profile. Unconfined - no AppArmor - enforcement.' type: string required: - type type: object fsGroup: - description: "A special supplemental group - that applies to all containers in a pod. - Some volume types allow the Kubelet to - change the ownership of that volume to - be owned by the pod: \n 1. The owning - GID will be the FSGroup 2. The setgid - bit is set (new files created in the volume - will be owned by FSGroup) 3. The permission - bits are OR'd with rw-rw---- \n If unset, - the Kubelet will not modify the ownership - and permissions of any volume. Note that - this field cannot be set when spec.os.name - is windows." format: int64 type: integer fsGroupChangePolicy: - description: 'fsGroupChangePolicy defines - behavior of changing ownership and permission - of the volume before being exposed inside - Pod. This field will only apply to volume - types which support fsGroup based ownership(and - permissions). It will have no effect on - ephemeral volume types such as: secret, - configmaps and emptydir. Valid values - are "OnRootMismatch" and "Always". If - not specified, "Always" is used. Note - that this field cannot be set when spec.os.name - is windows.' type: string runAsGroup: - description: The GID to run the entrypoint - of the container process. Uses runtime - default if unset. May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence for that container. Note - that this field cannot be set when spec.os.name - is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container - must run as a non-root user. If true, - the Kubelet will validate the image at - runtime to ensure that it does not run - as UID 0 (root) and fail to start the - container if it does. If unset or false, - no such validation will be performed. - May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: boolean runAsUser: - description: The UID to run the entrypoint - of the container process. Defaults to - user specified in image metadata if unspecified. - May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence for that container. Note - that this field cannot be set when spec.os.name - is windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be applied - to all containers. If unspecified, the - container runtime will allocate a random - SELinux context for each container. May - also be set in SecurityContext. If set - in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence for that container. Note - that this field cannot be set when spec.os.name - is windows. properties: level: - description: Level is SELinux level - label that applies to the container. type: string role: - description: Role is a SELinux role - label that applies to the container. type: string type: - description: Type is a SELinux type - label that applies to the container. type: string user: - description: User is a SELinux user - label that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to use - by the containers in this pod. Note that - this field cannot be set when spec.os.name - is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile defined in a file on the - node should be used. The profile must - be preconfigured on the node to work. - Must be a descending path, relative - to the kubelet's configured seccomp - profile location. Must be set if type - is "Localhost". Must NOT be set for - any other type. type: string type: - description: "type indicates which kind - of seccomp profile will be applied. - Valid options are: \n Localhost - - a profile defined in a file on the - node should be used. RuntimeDefault - - the container runtime default profile - should be used. Unconfined - no profile - should be applied." type: string required: - type type: object supplementalGroups: - description: A list of groups applied to - the first process run in each container, - in addition to the container's primary - GID, the fsGroup (if specified), and group - memberships defined in the container image - for the uid of the container process. - If unspecified, no additional groups are - added to any container. Note that group - memberships defined in the container image - for the uid of the container process are - still effective, even if they are not - included in this list. Note that this - field cannot be set when spec.os.name - is windows. items: format: int64 type: integer type: array x-kubernetes-list-type: atomic sysctls: - description: Sysctls hold a list of namespaced - sysctls used for the pod. Pods with unsupported - sysctls (by the container runtime) might - fail to launch. Note that this field cannot - be set when spec.os.name is windows. items: - description: Sysctl defines a kernel parameter - to be set properties: name: - description: Name of a property to - set type: string value: - description: Value of a property to - set type: string required: - name @@ -3156,164 +1166,52 @@ spec: type: array x-kubernetes-list-type: atomic windowsOptions: - description: The Windows specific settings - applied to all containers. If unspecified, - the options within a container's SecurityContext - will be used. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. Note - that this field cannot be set when spec.os.name - is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is where - the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA credential - spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName - is the name of the GMSA credential - spec to use. type: string hostProcess: - description: HostProcess determines - if a container should be run as a - 'Host Process' container. All of a - Pod's containers must have the same - effective HostProcess value (it is - not allowed to have a mix of HostProcess - containers and non-HostProcess containers). - In addition, if HostProcess is true - then HostNetwork must also be set - to true. type: boolean runAsUserName: - description: The UserName in Windows - to run the entrypoint of the container - process. Defaults to the user specified - in image metadata if unspecified. - May also be set in PodSecurityContext. - If set in both SecurityContext and - PodSecurityContext, the value specified - in SecurityContext takes precedence. type: string type: object type: object serviceAccountAnnotations: additionalProperties: type: string - description: ServiceAccountAnnotations are the - annotations that will be attached with the - respective ServiceAccount type: object serviceAccountName: - description: 'ServiceAccountName is the name - of the ServiceAccount to use to run this pod. - More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/' type: string tolerations: - description: If specified, the pod's tolerations. items: - description: The pod this Toleration is attached - to tolerates any taint that matches the - triple using the matching - operator . properties: effect: - description: Effect indicates the taint - effect to match. Empty means match all - taint effects. When specified, allowed - values are NoSchedule, PreferNoSchedule - and NoExecute. type: string key: - description: Key is the taint key that - the toleration applies to. Empty means - match all taint keys. If the key is - empty, operator must be Exists; this - combination means to match all values - and all keys. type: string operator: - description: Operator represents a key's - relationship to the value. Valid operators - are Exists and Equal. Defaults to Equal. - Exists is equivalent to wildcard for - value, so that a pod can tolerate all - taints of a particular category. type: string tolerationSeconds: - description: TolerationSeconds represents - the period of time the toleration (which - must be of effect NoExecute, otherwise - this field is ignored) tolerates the - taint. By default, it is not set, which - means tolerate the taint forever (do - not evict). Zero and negative values - will be treated as 0 (evict immediately) - by the system. format: int64 type: integer value: - description: Value is the taint value - the toleration matches to. If the operator - is Exists, the value should be empty, - otherwise just a regular string. type: string type: object type: array topologySpreadConstraints: - description: TopologySpreadConstraints describes - how a group of pods ought to spread across - topology domains. Scheduler will schedule - pods in a way which abides by the constraints. - All topologySpreadConstraints are ANDed. items: - description: TopologySpreadConstraint specifies - how to spread matching pods among the given - topology. properties: labelSelector: - description: LabelSelector is used to - find matching pods. Pods that match - this label selector are counted to determine - the number of pods in their corresponding - topology domain. properties: matchExpressions: - description: matchExpressions is a - list of label selector requirements. - The requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to a - set of values. Valid operators - are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an array - of string values. If the operator - is In or NotIn, the values - array must be non-empty. If - the operator is Exists or - DoesNotExist, the values array - must be empty. This array - is replaced during a strategic - merge patch. items: type: string type: array @@ -3327,176 +1225,27 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map - of {key,value} pairs. A single {key,value} - in the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: "MatchLabelKeys is a set - of pod label keys to select the pods - over which spreading will be calculated. - The keys are used to lookup values from - the incoming pod labels, those key-value - labels are ANDed with labelSelector - to select the group of existing pods - over which spreading will be calculated - for the incoming pod. The same key is - forbidden to exist in both MatchLabelKeys - and LabelSelector. MatchLabelKeys cannot - be set when LabelSelector isn't set. - Keys that don't exist in the incoming - pod labels will be ignored. A null or - empty list means only match against - labelSelector. \n This is a beta field - and requires the MatchLabelKeysInPodTopologySpread - feature gate to be enabled (enabled - by default)." items: type: string type: array x-kubernetes-list-type: atomic maxSkew: - description: 'MaxSkew describes the degree - to which pods may be unevenly distributed. - When `whenUnsatisfiable=DoNotSchedule`, - it is the maximum permitted difference - between the number of matching pods - in the target topology and the global - minimum. The global minimum is the minimum - number of matching pods in an eligible - domain or zero if the number of eligible - domains is less than MinDomains. For - example, in a 3-zone cluster, MaxSkew - is set to 1, and pods with the same - labelSelector spread as 2/2/1: In this - case, the global minimum is 1. | zone1 - | zone2 | zone3 | | P P | P P | P | - - if MaxSkew is 1, incoming pod can - only be scheduled to zone3 to become - 2/2/2; scheduling it onto zone1(zone2) - would make the ActualSkew(3-1) on zone1(zone2) - violate MaxSkew(1). - if MaxSkew is - 2, incoming pod can be scheduled onto - any zone. When `whenUnsatisfiable=ScheduleAnyway`, - it is used to give higher precedence - to topologies that satisfy it. It''s - a required field. Default value is 1 - and 0 is not allowed.' format: int32 type: integer minDomains: - description: "MinDomains indicates a minimum - number of eligible domains. When the - number of eligible domains with matching - topology keys is less than minDomains, - Pod Topology Spread treats \"global - minimum\" as 0, and then the calculation - of Skew is performed. And when the number - of eligible domains with matching topology - keys equals or greater than minDomains, - this value has no effect on scheduling. - As a result, when the number of eligible - domains is less than minDomains, scheduler - won't schedule more than maxSkew Pods - to those domains. If value is nil, the - constraint behaves as if MinDomains - is equal to 1. Valid values are integers - greater than 0. When value is not nil, - WhenUnsatisfiable must be DoNotSchedule. - \n For example, in a 3-zone cluster, - MaxSkew is set to 2, MinDomains is set - to 5 and pods with the same labelSelector - spread as 2/2/2: | zone1 | zone2 | zone3 - | | P P | P P | P P | The number - of domains is less than 5(MinDomains), - so \"global minimum\" is treated as - 0. In this situation, new pod with the - same labelSelector cannot be scheduled, - because computed skew will be 3(3 - - 0) if new Pod is scheduled to any of - the three zones, it will violate MaxSkew." format: int32 type: integer nodeAffinityPolicy: - description: "NodeAffinityPolicy indicates - how we will treat Pod's nodeAffinity/nodeSelector - when calculating pod topology spread - skew. Options are: - Honor: only nodes - matching nodeAffinity/nodeSelector are - included in the calculations. - Ignore: - nodeAffinity/nodeSelector are ignored. - All nodes are included in the calculations. - \n If this value is nil, the behavior - is equivalent to the Honor policy. This - is a beta-level feature default enabled - by the NodeInclusionPolicyInPodTopologySpread - feature flag." type: string nodeTaintsPolicy: - description: "NodeTaintsPolicy indicates - how we will treat node taints when calculating - pod topology spread skew. Options are: - - Honor: nodes without taints, along - with tainted nodes for which the incoming - pod has a toleration, are included. - - Ignore: node taints are ignored. All - nodes are included. \n If this value - is nil, the behavior is equivalent to - the Ignore policy. This is a beta-level - feature default enabled by the NodeInclusionPolicyInPodTopologySpread - feature flag." type: string topologyKey: - description: TopologyKey is the key of - node labels. Nodes that have a label - with this key and identical values are - considered to be in the same topology. - We consider each as a "bucket", - and try to put balanced number of pods - into each bucket. We define a domain - as a particular instance of a topology. - Also, we define an eligible domain as - a domain whose nodes meet the requirements - of nodeAffinityPolicy and nodeTaintsPolicy. - e.g. If TopologyKey is "kubernetes.io/hostname", - each Node is a domain of that topology. - And, if TopologyKey is "topology.kubernetes.io/zone", - each zone is a domain of that topology. - It's a required field. type: string whenUnsatisfiable: - description: 'WhenUnsatisfiable indicates - how to deal with a pod if it doesn''t - satisfy the spread constraint. - DoNotSchedule - (default) tells the scheduler not to - schedule it. - ScheduleAnyway tells - the scheduler to schedule the pod in - any location, but giving higher precedence - to topologies that would help reduce - the skew. A constraint is considered - "Unsatisfiable" for an incoming pod - if and only if every possible node assignment - for that pod would violate "MaxSkew" - on some topology. For example, in a - 3-zone cluster, MaxSkew is set to 1, - and pods with the same labelSelector - spread as 3/1/1: | zone1 | zone2 | zone3 - | | P P P | P | P | If WhenUnsatisfiable - is set to DoNotSchedule, incoming pod - can only be scheduled to zone2(zone3) - to become 3/2/1(3/1/2) as ActualSkew(2-1) - on zone2(zone3) satisfies MaxSkew(1). - In other words, the cluster can still - be imbalanced, but scheduler won''t - make it *more* imbalanced. It''s a required - field.' type: string required: - maxSkew @@ -3511,141 +1260,63 @@ spec: type: object type: object timeout: - description: Timeout specifies a duration in seconds - that KubeStash should wait for the hook execution - to be completed. If the hook execution does not finish - within this time period, KubeStash will consider this - hook execution as failure. Then, it will be re-tried - according to MaxRetry policy. type: string variables: - description: Variables specifies a list of variables - and their sources that will be used to resolve the - HookTemplate. items: - description: EnvVar represents an environment variable - present in a Container. properties: name: - description: Name of the environment variable. - Must be a C_IDENTIFIER. type: string value: - description: 'Variable references $(VAR_NAME) - are expanded using the previously defined environment - variables in the container and any service environment - variables. If a variable cannot be resolved, - the reference in the input string will be unchanged. - Double $$ are reduced to a single $, which allows - for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" - will produce the string literal "$(VAR_NAME)". - Escaped references will never be expanded, regardless - of whether the variable exists or not. Defaults - to "".' type: string valueFrom: - description: Source for the environment variable's - value. Cannot be used if value is not empty. properties: configMapKeyRef: - description: Selects a key of a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap - or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field of the pod: - supports metadata.name, metadata.namespace, - `metadata.labels['''']`, `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, - status.hostIP, status.podIP, status.podIPs.' properties: apiVersion: - description: Version of the schema the - FieldPath is written in terms of, defaults - to "v1". type: string fieldPath: - description: Path of the field to select - in the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource of the container: - only resources limits and requests (limits.cpu, - limits.memory, limits.ephemeral-storage, - requests.cpu, requests.memory and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: required - for volumes, optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output format - of the exposed resources, defaults to - "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource to select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret in - the pod's namespace properties: key: - description: The key of the secret to - select from. Must be a valid secret - key. type: string name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret - or its key must be defined type: boolean required: - key @@ -3657,68 +1328,21 @@ spec: type: object type: array volumeMounts: - description: VolumeMounts specifies the mount for the - volumes specified in `Volumes` section Use this field - only for `Function` type hook executor. items: - description: VolumeMount describes a mounting of a - Volume within a container. properties: mountPath: - description: Path within the container at which - the volume should be mounted. Must not contain - ':'. type: string mountPropagation: - description: mountPropagation determines how mounts - are propagated from the host to container and - the other way around. When not set, MountPropagationNone - is used. This field is beta in 1.10. When RecursiveReadOnly - is set to IfPossible or to Enabled, MountPropagation - must be None or unspecified (which defaults - to None). type: string name: - description: This must match the Name of a Volume. type: string readOnly: - description: Mounted read-only if true, read-write - otherwise (false or unspecified). Defaults to - false. type: boolean recursiveReadOnly: - description: "RecursiveReadOnly specifies whether - read-only mounts should be handled recursively. - \n If ReadOnly is false, this field has no meaning - and must be unspecified. \n If ReadOnly is true, - and this field is set to Disabled, the mount - is not made recursively read-only. If this - field is set to IfPossible, the mount is made - recursively read-only, if it is supported by - the container runtime. If this field is set - to Enabled, the mount is made recursively read-only - if it is supported by the container runtime, - otherwise the pod will not be started and an - error will be generated to indicate the reason. - \n If this field is set to IfPossible or Enabled, - MountPropagation must be set to None (or be - unspecified, which defaults to None). \n If - this field is not specified, it is treated as - an equivalent of Disabled." type: string subPath: - description: Path within the volume from which - the container's volume should be mounted. Defaults - to "" (volume's root). type: string subPathExpr: - description: Expanded path within the volume from - which the container's volume should be mounted. - Behaves similarly to SubPath but environment - variable references $(VAR_NAME) are expanded - using the container's environment. Defaults - to "" (volume's root). SubPathExpr and SubPath - are mutually exclusive. type: string required: - mountPath @@ -3726,279 +1350,109 @@ spec: type: object type: array volumes: - description: Volumes indicates the list of volumes of - targeted application that should be mounted on the - hook executor. Use this field only for `Function` - type hook executor. items: - description: Volume represents a named volume in a - pod that may be accessed by any container in the - pod. properties: awsElasticBlockStore: - description: 'awsElasticBlockStore represents - an AWS Disk resource that is attached to a kubelet''s - host machine and then exposed to the pod. More - info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' properties: fsType: - description: 'fsType is the filesystem type - of the volume that you want to mount. Tip: - Ensure that the filesystem type is supported - by the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly inferred - to be "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string partition: - description: 'partition is the partition in - the volume that you want to mount. If omitted, - the default is to mount by volume name. - Examples: For volume /dev/sda1, you specify - the partition as "1". Similarly, the volume - partition for /dev/sda is "0" (or you can - leave the property empty).' format: int32 type: integer readOnly: - description: 'readOnly value true will force - the readOnly setting in VolumeMounts. More - info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: boolean volumeID: - description: 'volumeID is unique ID of the - persistent disk resource in AWS (Amazon - EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: string required: - volumeID type: object azureDisk: - description: azureDisk represents an Azure Data - Disk mount on the host and bind mount to the - pod. properties: cachingMode: - description: 'cachingMode is the Host Caching - mode: None, Read Only, Read Write.' type: string diskName: - description: diskName is the Name of the data - disk in the blob storage type: string diskURI: - description: diskURI is the URI of data disk - in the blob storage type: string fsType: - description: fsType is Filesystem type to - mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Implicitly inferred to be - "ext4" if unspecified. type: string kind: - description: 'kind expected values are Shared: - multiple blob disks per storage account Dedicated: - single blob disk per storage account Managed: - azure managed data disk (only in managed - availability set). defaults to shared' type: string readOnly: - description: readOnly Defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean required: - diskName - diskURI type: object azureFile: - description: azureFile represents an Azure File - Service mount on the host and bind mount to - the pod. properties: readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean secretName: - description: secretName is the name of secret - that contains Azure Storage Account Name - and Key type: string shareName: - description: shareName is the azure share - Name type: string required: - secretName - shareName type: object cephfs: - description: cephFS represents a Ceph FS mount - on the host that shares a pod's lifetime properties: monitors: - description: 'monitors is Required: Monitors - is a collection of Ceph monitors More info: - https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic path: - description: 'path is Optional: Used as the - mounted root, rather than the full Ceph - tree, default is /' type: string readOnly: - description: 'readOnly is Optional: Defaults - to false (read/write). ReadOnly here will - force the ReadOnly setting in VolumeMounts. - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: boolean secretFile: - description: 'secretFile is Optional: SecretFile - is the path to key ring for User, default - is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string secretRef: - description: 'secretRef is Optional: SecretRef - is reference to the authentication secret - for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is optional: User is the - rados user name, default is admin More info: - https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string required: - monitors type: object cinder: - description: 'cinder represents a cinder volume - attached and mounted on kubelets host machine. - More info: https://examples.k8s.io/mysql-cinder-pd/README.md' properties: fsType: - description: 'fsType is the filesystem type - to mount. Must be a filesystem type supported - by the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly inferred - to be "ext4" if unspecified. More info: - https://examples.k8s.io/mysql-cinder-pd/README.md' type: string readOnly: - description: 'readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: boolean secretRef: - description: 'secretRef is optional: points - to a secret object containing parameters - used to connect to OpenStack.' properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeID: - description: 'volumeID used to identify the - volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string required: - volumeID type: object configMap: - description: configMap represents a configMap - that should populate this volume properties: defaultMode: - description: 'defaultMode is optional: mode - bits used to set permissions on created - files by default. Must be an octal value - between 0000 and 0777 or a decimal value - between 0 and 511. YAML accepts both octal - and decimal values, JSON requires decimal - values for mode bits. Defaults to 0644. - Directories within the path are not affected - by this setting. This might be in conflict - with other options that affect the file - mode, like fsGroup, and the result can be - other mode bits set.' format: int32 type: integer items: - description: items if unspecified, each key-value - pair in the Data field of the referenced - ConfigMap will be projected into the volume - as a file whose name is the key and content - is the value. If specified, the listed keys - will be projected into the specified paths, - and unlisted keys will not be present. If - a key is specified which is not present - in the ConfigMap, the volume setup will - error unless it is marked optional. Paths - must be relative and may not contain the - '..' path or start with '..'. items: - description: Maps a string key to a path - within a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: mode - bits used to set permissions on this - file. Must be an octal value between - 0000 and 0777 or a decimal value between - 0 and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. If not - specified, the volume defaultMode - will be used. This might be in conflict - with other options that affect the - file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative path - of the file to map the key to. May - not be an absolute path. May not contain - the path element '..'. May not start - with the string '..'. type: string required: - key @@ -4008,174 +1462,67 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other - useful fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether the - ConfigMap or its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic csi: - description: csi (Container Storage Interface) - represents ephemeral storage that is handled - by certain external CSI drivers (Beta feature). properties: driver: - description: driver is the name of the CSI - driver that handles this volume. Consult - with your admin for the correct name as - registered in the cluster. type: string fsType: - description: fsType to mount. Ex. "ext4", - "xfs", "ntfs". If not provided, the empty - value is passed to the associated CSI driver - which will determine the default filesystem - to apply. type: string nodePublishSecretRef: - description: nodePublishSecretRef is a reference - to the secret object containing sensitive - information to pass to the CSI driver to - complete the CSI NodePublishVolume and NodeUnpublishVolume - calls. This field is optional, and may - be empty if no secret is required. If the - secret object contains more than one secret, - all secret references are passed. properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic readOnly: - description: readOnly specifies a read-only - configuration for the volume. Defaults to - false (read/write). type: boolean volumeAttributes: additionalProperties: type: string - description: volumeAttributes stores driver-specific - properties that are passed to the CSI driver. - Consult your driver's documentation for - supported values. type: object required: - driver type: object downwardAPI: - description: downwardAPI represents downward API - about the pod that should populate this volume properties: defaultMode: - description: 'Optional: mode bits to use on - created files by default. Must be a Optional: - mode bits used to set permissions on created - files by default. Must be an octal value - between 0000 and 0777 or a decimal value - between 0 and 511. YAML accepts both octal - and decimal values, JSON requires decimal - values for mode bits. Defaults to 0644. - Directories within the path are not affected - by this setting. This might be in conflict - with other options that affect the file - mode, like fsGroup, and the result can be - other mode bits set.' format: int32 type: integer items: - description: Items is a list of downward API - volume file items: - description: DownwardAPIVolumeFile represents - information to create the file containing - the pod field properties: fieldRef: - description: 'Required: Selects a field - of the pod: only annotations, labels, - name, namespace and uid are supported.' properties: apiVersion: - description: Version of the schema - the FieldPath is written in terms - of, defaults to "v1". type: string fieldPath: - description: Path of the field to - select in the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode bits used - to set permissions on this file, must - be an octal value between 0000 and - 0777 or a decimal value between 0 - and 511. YAML accepts both octal and - decimal values, JSON requires decimal - values for mode bits. If not specified, - the volume defaultMode will be used. - This might be in conflict with other - options that affect the file mode, - like fsGroup, and the result can be - other mode bits set.' format: int32 type: integer path: - description: 'Required: Path is the - relative path name of the file to - be created. Must not be absolute or - contain the ''..'' path. Must be utf-8 - encoded. The first item of the relative - path must not start with ''..''' type: string resourceFieldRef: - description: 'Selects a resource of - the container: only resources limits - and requests (limits.cpu, limits.memory, - requests.cpu and requests.memory) - are currently supported.' properties: containerName: - description: 'Container name: required - for volumes, optional for env - vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource - to select' type: string required: - resource @@ -4188,220 +1535,50 @@ spec: x-kubernetes-list-type: atomic type: object emptyDir: - description: 'emptyDir represents a temporary - directory that shares a pod''s lifetime. More - info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' properties: medium: - description: 'medium represents what type - of storage medium should back this directory. - The default is "" which means to use the - node''s default medium. Must be an empty - string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' type: string sizeLimit: anyOf: - type: integer - type: string - description: 'sizeLimit is the total amount - of local storage required for this EmptyDir - volume. The size limit is also applicable - for memory medium. The maximum usage on - memory medium EmptyDir would be the minimum - value between the SizeLimit specified here - and the sum of memory limits of all containers - in a pod. The default is nil which means - that the limit is undefined. More info: - https://kubernetes.io/docs/concepts/storage/volumes#emptydir' pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object ephemeral: - description: "ephemeral represents a volume that - is handled by a cluster storage driver. The - volume's lifecycle is tied to the pod that defines - it - it will be created before the pod starts, - and deleted when the pod is removed. \n Use - this if: a) the volume is only needed while - the pod runs, b) features of normal volumes - like restoring from snapshot or capacity tracking - are needed, c) the storage driver is specified - through a storage class, and d) the storage - driver supports dynamic volume provisioning - through a PersistentVolumeClaim (see EphemeralVolumeSource - for more information on the connection between - this volume type and PersistentVolumeClaim). - \n Use PersistentVolumeClaim or one of the vendor-specific - APIs for volumes that persist for longer than - the lifecycle of an individual pod. \n Use CSI - for light-weight local ephemeral volumes if - the CSI driver is meant to be used that way - - see the documentation of the driver for more - information. \n A pod can use both types of - ephemeral volumes and persistent volumes at - the same time." properties: volumeClaimTemplate: - description: "Will be used to create a stand-alone - PVC to provision the volume. The pod in - which this EphemeralVolumeSource is embedded - will be the owner of the PVC, i.e. the PVC - will be deleted together with the pod. The - name of the PVC will be `-` where `` is the name - from the `PodSpec.Volumes` array entry. - Pod validation will reject the pod if the - concatenated name is not valid for a PVC - (for example, too long). \n An existing - PVC with that name that is not owned by - the pod will *not* be used for the pod to - avoid using an unrelated volume by mistake. - Starting the pod is then blocked until the - unrelated PVC is removed. If such a pre-created - PVC is meant to be used by the pod, the - PVC has to updated with an owner reference - to the pod once the pod exists. Normally - this should not be necessary, but it may - be useful when manually reconstructing a - broken cluster. \n This field is read-only - and no changes will be made by Kubernetes - to the PVC after it has been created. \n - Required, must not be nil." properties: metadata: - description: May contain labels and annotations - that will be copied into the PVC when - creating it. No other fields are allowed - and will be rejected during validation. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured - key value map stored with a resource - that may be set by external tools - to store and retrieve arbitrary - metadata. They are not queryable - and should be preserved when modifying - objects. More info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName is an optional - prefix, used by the server, to generate - a unique name ONLY IF the Name field - has not been provided. If this field - is used, the name returned to the - client will be different than the - name passed. This value will also - be combined with a unique suffix. - The provided value has the same - validation rules as the Name field, - and may be truncated by the length - of the suffix required to make the - value unique on the server. \n If - this field is specified and the - generated name exists, the server - will NOT return a 409 - instead, - it will either return 201 Created - or 500 with Reason ServerTimeout - indicating a unique name could not - be found in the time allotted, and - the client should retry (optionally - after the time indicated in the - Retry-After header). \n Applied - only if Name is not specified. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string keys and - values that can be used to organize - and categorize (scope and select) - objects. May match selectors of - replication controllers and services. - More info: http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must be unique - within a namespace. Is required - when creating resources, although - some resources may allow a client - to request the generation of an - appropriate name automatically. - Name is primarily intended for creation - idempotence and configuration definition. - Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace defines the - space within each name must be unique. - An empty namespace is equivalent - to the \"default\" namespace, but - \"default\" is the canonical representation. - Not all objects are required to - be scoped to a namespace - the value - of this field for those objects - will be empty. \n Must be a DNS_LABEL. - Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects depended - by this object. If ALL objects in - the list have been deleted, this - object will be garbage collected. - If this object is managed by a controller, - then an entry in this list will - point to this controller, with the - controller field set to true. There - cannot be more than one managing - controller. items: - description: OwnerReference contains - enough information to let you - identify an owning object. An - owning object must be in the same - namespace as the dependent, or - be cluster-scoped, so there is - no namespace field. properties: apiVersion: - description: API version of - the referent. type: string blockOwnerDeletion: - description: If true, AND if - the owner has the "foregroundDeletion" - finalizer, then the owner - cannot be deleted from the - key-value store until this - reference is removed. See - https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage collector - interacts with this field - and enforces the foreground - deletion. Defaults to false. - To set this field, a user - needs "delete" permission - of the owner, otherwise 422 - (Unprocessable Entity) will - be returned. type: boolean controller: - description: If true, this reference - points to the managing controller. type: boolean kind: - description: 'Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -4413,56 +1590,19 @@ spec: type: array type: object spec: - description: The specification for the - PersistentVolumeClaim. The entire content - is copied unchanged into the PVC that - gets created from this template. The - same fields as in a PersistentVolumeClaim - are also valid here. properties: accessModes: - description: 'accessModes contains - the desired access modes the volume - should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource field can - be used to specify either: * An - existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an external - controller can support the specified - data source, it will create a new - volume based on the contents of - the specified data source. When - the AnyVolumeDataSource feature - gate is enabled, dataSource contents - will be copied to dataSourceRef, - and dataSourceRef contents will - be copied to dataSource when dataSourceRef.namespace - is not specified. If the namespace - is specified, then dataSourceRef - will not be copied to dataSource.' properties: apiGroup: - description: APIGroup is the group - for the resource being referenced. - If APIGroup is not specified, - the specified Kind must be in - the core API group. For any - other third-party types, APIGroup - is required. type: string kind: - description: Kind is the type - of resource being referenced type: string name: - description: Name is the name - of resource being referenced type: string required: - kind @@ -4470,93 +1610,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef specifies - the object from which to populate - the volume with data, if a non-empty - volume is desired. This may be any - object from a non-empty API group - (non core object) or a PersistentVolumeClaim - object. When this field is specified, - volume binding will only succeed - if the type of the specified object - matches some installed volume populator - or dynamic provisioner. This field - will replace the functionality of - the dataSource field and as such - if both fields are non-empty, they - must have the same value. For backwards - compatibility, when namespace isn''t - specified in dataSourceRef, both - fields (dataSource and dataSourceRef) - will be set to the same value automatically - if one of them is empty and the - other is non-empty. When namespace - is specified in dataSourceRef, dataSource - isn''t set to the same value and - must be empty. There are three important - differences between dataSource and - dataSourceRef: * While dataSource - only allows two specific types of - objects, dataSourceRef allows any - non-core object, as well as PersistentVolumeClaim - objects. * While dataSource ignores - disallowed values (dropping them), - dataSourceRef preserves all values, - and generates an error if a disallowed - value is specified. * While dataSource - only allows local objects, dataSourceRef - allows objects in any namespaces. - (Beta) Using this field requires - the AnyVolumeDataSource feature - gate to be enabled. (Alpha) Using - the namespace field of dataSourceRef - requires the CrossNamespaceVolumeDataSource - feature gate to be enabled.' properties: apiGroup: - description: APIGroup is the group - for the resource being referenced. - If APIGroup is not specified, - the specified Kind must be in - the core API group. For any - other third-party types, APIGroup - is required. type: string kind: - description: Kind is the type - of resource being referenced type: string name: - description: Name is the name - of resource being referenced type: string namespace: - description: Namespace is the - namespace of resource being - referenced Note that when a - namespace is specified, a gateway.networking.k8s.io/ReferenceGrant - object is required in the referent - namespace to allow that namespace's - owner to accept the reference. - See the ReferenceGrant documentation - for details. (Alpha) This field - requires the CrossNamespaceVolumeDataSource - feature gate to be enabled. type: string required: - kind - name type: object resources: - description: 'resources represents - the minimum resources the volume - should have. If RecoverVolumeExpansionFailure - feature is enabled users are allowed - to specify resource requirements - that are lower than previous value - but must still be higher than capacity - recorded in the status field of - the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -4565,10 +1632,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes - the maximum amount of compute - resources allowed. More info: - https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -4577,56 +1640,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes - the minimum amount of compute - resources required. If Requests - is omitted for a container, - it defaults to Limits if that - is explicitly specified, otherwise - to an implementation-defined - value. Requests cannot exceed - Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is a label query - over volumes to consider for binding. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a key, - and an operator that relates - the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator represents - a key's relationship to - a set of values. Valid - operators are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values is an - array of string values. - If the operator is In - or NotIn, the values array - must be non-empty. If - the operator is Exists - or DoesNotExist, the values - array must be empty. This - array is replaced during - a strategic merge patch. items: type: string type: array @@ -4640,61 +1665,16 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a - map of {key,value} pairs. A - single {key,value} in the matchLabels - map is equivalent to an element - of matchExpressions, whose key - field is "key", the operator - is "In", and the values array - contains only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName is - the name of the StorageClass required - by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName - may be used to set the VolumeAttributesClass - used by this claim. If specified, - the CSI driver will create or update - the volume with the attributes defined - in the corresponding VolumeAttributesClass. - This has a different purpose than - storageClassName, it can be changed - after the claim is created. An empty - string value means that no VolumeAttributesClass - will be applied to the claim but - it''s not allowed to reset this - field to empty string once it is - set. If unspecified and the PersistentVolumeClaim - is unbound, the default VolumeAttributesClass - will be set by the persistentvolume - controller if it exists. If the - resource referred to by volumeAttributesClass - does not exist, this PersistentVolumeClaim - will be set to a Pending state, - as reflected by the modifyVolumeStatus - field, until such as a resource - exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires - the VolumeAttributesClass feature - gate to be enabled.' type: string volumeMode: - description: volumeMode defines what - type of volume is required by the - claim. Value of Filesystem is implied - when not included in claim spec. type: string volumeName: - description: volumeName is the binding - reference to the PersistentVolume - backing this claim. type: string type: object required: @@ -4702,94 +1682,41 @@ spec: type: object type: object fc: - description: fc represents a Fibre Channel resource - that is attached to a kubelet's host machine - and then exposed to the pod. properties: fsType: - description: 'fsType is the filesystem type - to mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Implicitly inferred to be - "ext4" if unspecified. TODO: how do we prevent - errors in the filesystem from compromising - the machine' type: string lun: - description: 'lun is Optional: FC target lun - number' format: int32 type: integer readOnly: - description: 'readOnly is Optional: Defaults - to false (read/write). ReadOnly here will - force the ReadOnly setting in VolumeMounts.' type: boolean targetWWNs: - description: 'targetWWNs is Optional: FC target - worldwide names (WWNs)' items: type: string type: array x-kubernetes-list-type: atomic wwids: - description: 'wwids Optional: FC volume world - wide identifiers (wwids) Either wwids or - combination of targetWWNs and lun must be - set, but not both simultaneously.' items: type: string type: array x-kubernetes-list-type: atomic type: object flexVolume: - description: flexVolume represents a generic volume - resource that is provisioned/attached using - an exec based plugin. properties: driver: - description: driver is the name of the driver - to use for this volume. type: string fsType: - description: fsType is the filesystem type - to mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". The default filesystem depends - on FlexVolume script. type: string options: additionalProperties: type: string - description: 'options is Optional: this field - holds extra command options if any.' type: object readOnly: - description: 'readOnly is Optional: defaults - to false (read/write). ReadOnly here will - force the ReadOnly setting in VolumeMounts.' type: boolean secretRef: - description: 'secretRef is Optional: secretRef - is reference to the secret object containing - sensitive information to pass to the plugin - scripts. This may be empty if no secret - object is specified. If the secret object - contains more than one secret, all secrets - are passed to the plugin scripts.' properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic @@ -4797,192 +1724,79 @@ spec: - driver type: object flocker: - description: flocker represents a Flocker volume - attached to a kubelet's host machine. This depends - on the Flocker control service being running properties: datasetName: - description: datasetName is Name of the dataset - stored as metadata -> name on the dataset - for Flocker should be considered as deprecated type: string datasetUUID: - description: datasetUUID is the UUID of the - dataset. This is unique identifier of a - Flocker dataset type: string type: object gcePersistentDisk: - description: 'gcePersistentDisk represents a GCE - Disk resource that is attached to a kubelet''s - host machine and then exposed to the pod. More - info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' properties: fsType: - description: 'fsType is filesystem type of - the volume that you want to mount. Tip: - Ensure that the filesystem type is supported - by the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly inferred - to be "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string partition: - description: 'partition is the partition in - the volume that you want to mount. If omitted, - the default is to mount by volume name. - Examples: For volume /dev/sda1, you specify - the partition as "1". Similarly, the volume - partition for /dev/sda is "0" (or you can - leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' format: int32 type: integer pdName: - description: 'pdName is unique name of the - PD resource in GCE. Used to identify the - disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: string readOnly: - description: 'readOnly here will force the - ReadOnly setting in VolumeMounts. Defaults - to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: boolean required: - pdName type: object glusterfs: - description: 'glusterfs represents a Glusterfs - mount on the host that shares a pod''s lifetime. - More info: https://examples.k8s.io/volumes/glusterfs/README.md' properties: endpoints: - description: 'endpoints is the endpoint name - that details Glusterfs topology. More info: - https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string path: - description: 'path is the Glusterfs volume - path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string readOnly: - description: 'readOnly here will force the - Glusterfs volume to be mounted with read-only - permissions. Defaults to false. More info: - https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: boolean required: - endpoints - path type: object hostPath: - description: 'hostPath represents a pre-existing - file or directory on the host machine that is - directly exposed to the container. This is generally - used for system agents or other privileged things - that are allowed to see the host machine. Most - containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- TODO(jonesdl) We need to restrict who can - use host directory mounts and who can/can not - mount host directories as read/write.' properties: path: - description: 'path of the directory on the - host. If the path is a symlink, it will - follow the link to the real path. More info: - https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string type: - description: 'type for HostPath Volume Defaults - to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string required: - path type: object iscsi: - description: 'iscsi represents an ISCSI Disk resource - that is attached to a kubelet''s host machine - and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md' properties: chapAuthDiscovery: - description: chapAuthDiscovery defines whether - support iSCSI Discovery CHAP authentication type: boolean chapAuthSession: - description: chapAuthSession defines whether - support iSCSI Session CHAP authentication type: boolean fsType: - description: 'fsType is the filesystem type - of the volume that you want to mount. Tip: - Ensure that the filesystem type is supported - by the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly inferred - to be "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string initiatorName: - description: initiatorName is the custom iSCSI - Initiator Name. If initiatorName is specified - with iscsiInterface simultaneously, new - iSCSI interface : will be created for the connection. type: string iqn: - description: iqn is the target iSCSI Qualified - Name. type: string iscsiInterface: - description: iscsiInterface is the interface - Name that uses an iSCSI transport. Defaults - to 'default' (tcp). type: string lun: - description: lun represents iSCSI Target Lun - number. format: int32 type: integer portals: - description: portals is the iSCSI Target Portal - List. The portal is either an IP or ip_addr:port - if the port is other than default (typically - TCP ports 860 and 3260). items: type: string type: array x-kubernetes-list-type: atomic readOnly: - description: readOnly here will force the - ReadOnly setting in VolumeMounts. Defaults - to false. type: boolean secretRef: - description: secretRef is the CHAP Secret - for iSCSI target and initiator authentication properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic targetPortal: - description: targetPortal is iSCSI Target - Portal. The Portal is either an IP or ip_addr:port - if the port is other than default (typically - TCP ports 860 and 3260). type: string required: - iqn @@ -4990,182 +1804,68 @@ spec: - targetPortal type: object name: - description: 'name of the volume. Must be a DNS_LABEL - and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string nfs: - description: 'nfs represents an NFS mount on the - host that shares a pod''s lifetime More info: - https://kubernetes.io/docs/concepts/storage/volumes#nfs' properties: path: - description: 'path that is exported by the - NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string readOnly: - description: 'readOnly here will force the - NFS export to be mounted with read-only - permissions. Defaults to false. More info: - https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: boolean server: - description: 'server is the hostname or IP - address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string required: - path - server type: object persistentVolumeClaim: - description: 'persistentVolumeClaimVolumeSource - represents a reference to a PersistentVolumeClaim - in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: claimName: - description: 'claimName is the name of a PersistentVolumeClaim - in the same namespace as the pod using this - volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' type: string readOnly: - description: readOnly Will force the ReadOnly - setting in VolumeMounts. Default false. type: boolean required: - claimName type: object photonPersistentDisk: - description: photonPersistentDisk represents a - PhotonController persistent disk attached and - mounted on kubelets host machine properties: fsType: - description: fsType is the filesystem type - to mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Implicitly inferred to be - "ext4" if unspecified. type: string pdID: - description: pdID is the ID that identifies - Photon Controller persistent disk type: string required: - pdID type: object portworxVolume: - description: portworxVolume represents a portworx - volume attached and mounted on kubelets host - machine properties: fsType: - description: fSType represents the filesystem - type to mount Must be a filesystem type - supported by the host operating system. - Ex. "ext4", "xfs". Implicitly inferred to - be "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean volumeID: - description: volumeID uniquely identifies - a Portworx volume type: string required: - volumeID type: object projected: - description: projected items for all in one resources - secrets, configmaps, and downward API properties: defaultMode: - description: defaultMode are the mode bits - used to set permissions on created files - by default. Must be an octal value between - 0000 and 0777 or a decimal value between - 0 and 511. YAML accepts both octal and decimal - values, JSON requires decimal values for - mode bits. Directories within the path are - not affected by this setting. This might - be in conflict with other options that affect - the file mode, like fsGroup, and the result - can be other mode bits set. format: int32 type: integer sources: - description: sources is the list of volume - projections items: - description: Projection that may be projected - along with other supported volume types properties: clusterTrustBundle: - description: "ClusterTrustBundle allows - a pod to access the `.spec.trustBundle` - field of ClusterTrustBundle objects - in an auto-updating file. \n Alpha, - gated by the ClusterTrustBundleProjection - feature gate. \n ClusterTrustBundle - objects can either be selected by - name, or by the combination of signer - name and a label selector. \n Kubelet - performs aggressive normalization - of the PEM contents written into the - pod filesystem. Esoteric PEM features - such as inter-block comments and block - headers are stripped. Certificates - are deduplicated. The ordering of - certificates within the file is arbitrary, - and Kubelet may change the order over - time." properties: labelSelector: - description: Select all ClusterTrustBundles - that match this label selector. Only - has effect if signerName is set. Mutually-exclusive - with name. If unset, interpreted - as "match nothing". If set but - empty, interpreted as "match everything". properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator - represents a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is - an array of string values. - If the operator is In - or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the - values array must be - empty. This array is - replaced during a strategic - merge patch. items: type: string type: array @@ -5179,103 +1879,31 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in the - matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic name: - description: Select a single ClusterTrustBundle - by object name. Mutually-exclusive - with signerName and labelSelector. type: string optional: - description: If true, don't block - pod startup if the referenced - ClusterTrustBundle(s) aren't available. If - using name, then the named ClusterTrustBundle - is allowed not to exist. If using - signerName, then the combination - of signerName and labelSelector - is allowed to match zero ClusterTrustBundles. type: boolean path: - description: Relative path from - the volume root to write the bundle. type: string signerName: - description: Select all ClusterTrustBundles - that match this signer name. Mutually-exclusive - with name. The contents of all - selected ClusterTrustBundles will - be unified and deduplicated. type: string required: - path type: object configMap: - description: configMap information about - the configMap data to project properties: items: - description: items if unspecified, - each key-value pair in the Data - field of the referenced ConfigMap - will be projected into the volume - as a file whose name is the key - and content is the value. If specified, - the listed keys will be projected - into the specified paths, and - unlisted keys will not be present. - If a key is specified which is - not present in the ConfigMap, - the volume setup will error unless - it is marked optional. Paths must - be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key - to a path within a volume. properties: key: - description: key is the key - to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an - octal value between 0000 - and 0777 or a decimal value - between 0 and 511. YAML - accepts both octal and decimal - values, JSON requires decimal - values for mode bits. If - not specified, the volume - defaultMode will be used. - This might be in conflict - with other options that - affect the file mode, like - fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map - the key to. May not be an - absolute path. May not contain - the path element '..'. May - not start with the string - '..'. type: string required: - key @@ -5285,116 +1913,42 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether - the ConfigMap or its keys must - be defined type: boolean type: object x-kubernetes-map-type: atomic downwardAPI: - description: downwardAPI information - about the downwardAPI data to project properties: items: - description: Items is a list of - DownwardAPIVolume file items: - description: DownwardAPIVolumeFile - represents information to create - the file containing the pod - field properties: fieldRef: - description: 'Required: Selects - a field of the pod: only - annotations, labels, name, - namespace and uid are supported.' properties: apiVersion: - description: Version of - the schema the FieldPath - is written in terms - of, defaults to "v1". type: string fieldPath: - description: Path of the - field to select in the - specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode - bits used to set permissions - on this file, must be an - octal value between 0000 - and 0777 or a decimal value - between 0 and 511. YAML - accepts both octal and decimal - values, JSON requires decimal - values for mode bits. If - not specified, the volume - defaultMode will be used. - This might be in conflict - with other options that - affect the file mode, like - fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: 'Required: Path - is the relative path name - of the file to be created. - Must not be absolute or - contain the ''..'' path. - Must be utf-8 encoded. The - first item of the relative - path must not start with - ''..''' type: string resourceFieldRef: - description: 'Selects a resource - of the container: only resources - limits and requests (limits.cpu, - limits.memory, requests.cpu - and requests.memory) are - currently supported.' properties: containerName: - description: 'Container - name: required for volumes, - optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies - the output format of - the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: - resource to select' type: string required: - resource @@ -5407,60 +1961,16 @@ spec: x-kubernetes-list-type: atomic type: object secret: - description: secret information about - the secret data to project properties: items: - description: items if unspecified, - each key-value pair in the Data - field of the referenced Secret - will be projected into the volume - as a file whose name is the key - and content is the value. If specified, - the listed keys will be projected - into the specified paths, and - unlisted keys will not be present. - If a key is specified which is - not present in the Secret, the - volume setup will error unless - it is marked optional. Paths must - be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key - to a path within a volume. properties: key: - description: key is the key - to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an - octal value between 0000 - and 0777 or a decimal value - between 0 and 511. YAML - accepts both octal and decimal - values, JSON requires decimal - values for mode bits. If - not specified, the volume - defaultMode will be used. - This might be in conflict - with other options that - affect the file mode, like - fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map - the key to. May not be an - absolute path. May not contain - the path element '..'. May - not start with the string - '..'. type: string required: - key @@ -5470,61 +1980,19 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional field specify - whether the Secret or its key - must be defined type: boolean type: object x-kubernetes-map-type: atomic serviceAccountToken: - description: serviceAccountToken is - information about the serviceAccountToken - data to project properties: audience: - description: audience is the intended - audience of the token. A recipient - of a token must identify itself - with an identifier specified in - the audience of the token, and - otherwise should reject the token. - The audience defaults to the identifier - of the apiserver. type: string expirationSeconds: - description: expirationSeconds is - the requested duration of validity - of the service account token. - As the token approaches expiration, - the kubelet volume plugin will - proactively rotate the service - account token. The kubelet will - start trying to rotate the token - if the token is older than 80 - percent of its time to live or - if the token is older than 24 - hours.Defaults to 1 hour and must - be at least 10 minutes. format: int64 type: integer path: - description: path is the path relative - to the mount point of the file - to project the token into. type: string required: - path @@ -5534,179 +2002,79 @@ spec: x-kubernetes-list-type: atomic type: object quobyte: - description: quobyte represents a Quobyte mount - on the host that shares a pod's lifetime properties: group: - description: group to map volume access to - Default is no group type: string readOnly: - description: readOnly here will force the - Quobyte volume to be mounted with read-only - permissions. Defaults to false. type: boolean registry: - description: registry represents a single - or multiple Quobyte Registry services specified - as a string as host:port pair (multiple - entries are separated with commas) which - acts as the central registry for volumes type: string tenant: - description: tenant owning the given Quobyte - volume in the Backend Used with dynamically - provisioned Quobyte volumes, value is set - by the plugin type: string user: - description: user to map volume access to - Defaults to serivceaccount user type: string volume: - description: volume is a string that references - an already created Quobyte volume by name. type: string required: - registry - volume type: object rbd: - description: 'rbd represents a Rados Block Device - mount on the host that shares a pod''s lifetime. - More info: https://examples.k8s.io/volumes/rbd/README.md' properties: fsType: - description: 'fsType is the filesystem type - of the volume that you want to mount. Tip: - Ensure that the filesystem type is supported - by the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly inferred - to be "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string image: - description: 'image is the rados image name. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string keyring: - description: 'keyring is the path to key ring - for RBDUser. Default is /etc/ceph/keyring. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string monitors: - description: 'monitors is a collection of - Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic pool: - description: 'pool is the rados pool name. - Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string readOnly: - description: 'readOnly here will force the - ReadOnly setting in VolumeMounts. Defaults - to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: boolean secretRef: - description: 'secretRef is name of the authentication - secret for RBDUser. If provided overrides - keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is the rados user name. - Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string required: - image - monitors type: object scaleIO: - description: scaleIO represents a ScaleIO persistent - volume attached and mounted on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem type - to mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Default is "xfs". type: string gateway: - description: gateway is the host address of - the ScaleIO API Gateway. type: string protectionDomain: - description: protectionDomain is the name - of the ScaleIO Protection Domain for the - configured storage. type: string readOnly: - description: readOnly Defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean secretRef: - description: secretRef references to the secret - for ScaleIO user and other sensitive information. - If this is not provided, Login operation - will fail. properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic sslEnabled: - description: sslEnabled Flag enable/disable - SSL communication with Gateway, default - false type: boolean storageMode: - description: storageMode indicates whether - the storage for a volume should be ThickProvisioned - or ThinProvisioned. Default is ThinProvisioned. type: string storagePool: - description: storagePool is the ScaleIO Storage - Pool associated with the protection domain. type: string system: - description: system is the name of the storage - system as configured in ScaleIO. type: string volumeName: - description: volumeName is the name of a volume - already created in the ScaleIO system that - is associated with this volume source. type: string required: - gateway @@ -5714,65 +2082,19 @@ spec: - system type: object secret: - description: 'secret represents a secret that - should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' properties: defaultMode: - description: 'defaultMode is Optional: mode - bits used to set permissions on created - files by default. Must be an octal value - between 0000 and 0777 or a decimal value - between 0 and 511. YAML accepts both octal - and decimal values, JSON requires decimal - values for mode bits. Defaults to 0644. - Directories within the path are not affected - by this setting. This might be in conflict - with other options that affect the file - mode, like fsGroup, and the result can be - other mode bits set.' format: int32 type: integer items: - description: items If unspecified, each key-value - pair in the Data field of the referenced - Secret will be projected into the volume - as a file whose name is the key and content - is the value. If specified, the listed keys - will be projected into the specified paths, - and unlisted keys will not be present. If - a key is specified which is not present - in the Secret, the volume setup will error - unless it is marked optional. Paths must - be relative and may not contain the '..' - path or start with '..'. items: - description: Maps a string key to a path - within a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: mode - bits used to set permissions on this - file. Must be an octal value between - 0000 and 0777 or a decimal value between - 0 and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. If not - specified, the volume defaultMode - will be used. This might be in conflict - with other options that affect the - file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative path - of the file to map the key to. May - not be an absolute path. May not contain - the path element '..'. May not start - with the string '..'. type: string required: - key @@ -5781,93 +2103,37 @@ spec: type: array x-kubernetes-list-type: atomic optional: - description: optional field specify whether - the Secret or its keys must be defined type: boolean secretName: - description: 'secretName is the name of the - secret in the pod''s namespace to use. More - info: https://kubernetes.io/docs/concepts/storage/volumes#secret' type: string type: object storageos: - description: storageOS represents a StorageOS - volume attached and mounted on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem type - to mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Implicitly inferred to be - "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean secretRef: - description: secretRef specifies the secret - to use for obtaining the StorageOS API credentials. If - not specified, default values will be attempted. properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeName: - description: volumeName is the human-readable - name of the StorageOS volume. Volume names - are only unique within a namespace. type: string volumeNamespace: - description: volumeNamespace specifies the - scope of the volume within StorageOS. If - no namespace is specified then the Pod's - namespace will be used. This allows the - Kubernetes name scoping to be mirrored within - StorageOS for tighter integration. Set VolumeName - to any name to override the default behaviour. - Set to "default" if you are not using namespaces - within StorageOS. Namespaces that do not - pre-exist within StorageOS will be created. type: string type: object vsphereVolume: - description: vsphereVolume represents a vSphere - volume attached and mounted on kubelets host - machine properties: fsType: - description: fsType is filesystem type to - mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Implicitly inferred to be - "ext4" if unspecified. type: string storagePolicyID: - description: storagePolicyID is the storage - Policy Based Management (SPBM) profile ID - associated with the StoragePolicyName. type: string storagePolicyName: - description: storagePolicyName is the storage - Policy Based Management (SPBM) profile name. type: string volumePath: - description: volumePath is the path that identifies - vSphere volume vmdk type: string required: - volumePath @@ -5879,206 +2145,93 @@ spec: type: object type: array preBackup: - description: PreBackup specifies a list of hooks that will - be executed before backup items: - description: HookInfo specifies the information about the - backup/restore hooks properties: executionPolicy: default: Always - description: 'ExecutionPolicy specifies when to execute - the hook. Valid values are: - "Always": KubeStash - will execute this hook no matter the backup/restore - failed. This is the default execution policy. - "OnSuccess": - KubeStash will execute this hook only if the backup/restore - has succeeded. - "OnFailure": KubeStash will execute - this hook only if the backup/restore has failed.' enum: - Always - OnSuccess - OnFailure type: string hookTemplate: - description: HookTemplate points to a HookTemplate CR - that will be used to execute the hook. You can refer - to a HookTemplate from other namespaces as long as - your current namespace is allowed by the `usagePolicy` - in the respective HookTemplate. properties: name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: - description: 'Namespace of the referent. More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string required: - name type: object maxRetry: - description: MaxRetry specifies how many times KubeStash - should retry the hook execution in case of failure. - The default value of this field is 0 which means no - retry. format: int32 minimum: 0 type: integer name: - description: Name specifies a name for the hook type: string params: - description: Params specifies parameters for the hook. - You must provide the parameter in the HookTemplates - desired structure. type: object x-kubernetes-preserve-unknown-fields: true runtimeSettings: - description: RuntimeSettings specifies runtime configurations - for the hook executor Job. Use this field only for - `Function` type hook executor. properties: container: properties: env: - description: List of environment variables to - set in the container. Cannot be updated. items: - description: EnvVar represents an environment - variable present in a Container. properties: name: - description: Name of the environment variable. - Must be a C_IDENTIFIER. type: string value: - description: 'Variable references $(VAR_NAME) - are expanded using the previously defined - environment variables in the container - and any service environment variables. - If a variable cannot be resolved, the - reference in the input string will be - unchanged. Double $$ are reduced to - a single $, which allows for escaping - the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" - will produce the string literal "$(VAR_NAME)". - Escaped references will never be expanded, - regardless of whether the variable exists - or not. Defaults to "".' type: string valueFrom: - description: Source for the environment - variable's value. Cannot be used if - value is not empty. properties: configMapKeyRef: - description: Selects a key of a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the - ConfigMap or its key must be - defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field of the - pod: supports metadata.name, metadata.namespace, - `metadata.labels['''']`, `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, - status.hostIP, status.podIP, status.podIPs.' properties: apiVersion: - description: Version of the schema - the FieldPath is written in - terms of, defaults to "v1". type: string fieldPath: - description: Path of the field - to select in the specified API - version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource of - the container: only resources limits - and requests (limits.cpu, limits.memory, - limits.ephemeral-storage, requests.cpu, - requests.memory and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: - required for volumes, optional - for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource - to select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret - in the pod's namespace properties: key: - description: The key of the secret - to select from. Must be a valid - secret key. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the - Secret or its key must be defined type: boolean required: - key @@ -6090,76 +2243,31 @@ spec: type: object type: array envFrom: - description: List of sources to populate environment - variables in the container. The keys defined - within a source must be a C_IDENTIFIER. All - invalid keys will be reported as an event - when the container is starting. When a key - exists in multiple sources, the value associated - with the last source will take precedence. - Values defined by an Env with a duplicate - key will take precedence. Cannot be updated. items: - description: EnvFromSource represents the - source of a set of ConfigMaps properties: configMapRef: - description: The ConfigMap to select from properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap - must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: - description: An optional identifier to - prepend to each key in the ConfigMap. - Must be a C_IDENTIFIER. type: string secretRef: - description: The Secret to select from properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret - must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array ionice: - description: 'Settings to configure `ionice` - to throttle the load on disk. More info: http://kennystechtalk.blogspot.com/2015/04/throttling-cpu-usage-with-linux-cgroups.html - More info: https://oakbytes.wordpress.com/2012/06/06/linux-scheduler-cfs-and-nice/' properties: class: format: int32 @@ -6169,70 +2277,27 @@ spec: type: integer type: object lifecycle: - description: Actions that the management system - should take in response to container lifecycle - events. Cannot be updated. properties: postStart: - description: 'PostStart is called immediately - after a container is created. If the handler - fails, the container is terminated and - restarted according to its restart policy. - Other management of the container blocks - until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the - command is root ('/') in the - container's filesystem. The command - is simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, you - need to explicitly call out to - that shell. Exit status of 0 is - treated as live/healthy and non-zero - is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in - httpHeaders instead. type: string httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood - as the same header. type: string value: - description: The header field - value type: string required: - name @@ -6241,134 +2306,58 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the - HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration - that the container should sleep before - being terminated. properties: seconds: - description: Seconds is the number - of seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is - NOT supported as a LifecycleHandler - and kept for the backward compatibility. - There are no validation of this field - and lifecycle hooks will fail in runtime - when tcp handler is specified. properties: host: - description: 'Optional: Host name - to connect to, defaults to the - pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object type: object preStop: - description: 'PreStop is called immediately - before a container is terminated due to - an API request or management event such - as liveness/startup probe failure, preemption, - resource contention, etc. The handler - is not called if the container crashes - or exits. The Pod''s termination grace - period countdown begins before the PreStop - hook is executed. Regardless of the outcome - of the handler, the container will eventually - terminate within the Pod''s termination - grace period (unless delayed by finalizers). - Other management of the container blocks - until the hook completes or until the - termination grace period is reached. More - info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the - command is root ('/') in the - container's filesystem. The command - is simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, you - need to explicitly call out to - that shell. Exit status of 0 is - treated as live/healthy and non-zero - is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in - httpHeaders instead. type: string httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood - as the same header. type: string value: - description: The header field - value type: string required: - name @@ -6377,59 +2366,33 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the - HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration - that the container should sleep before - being terminated. properties: seconds: - description: Seconds is the number - of seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is - NOT supported as a LifecycleHandler - and kept for the backward compatibility. - There are no validation of this field - and lifecycle hooks will fail in runtime - when tcp handler is specified. properties: host: - description: 'Optional: Host name - to connect to, defaults to the - pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port @@ -6437,87 +2400,38 @@ spec: type: object type: object livenessProbe: - description: 'Periodic probe of container liveness. - Container will be restarted if the probe fails. - Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to - take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it is - not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to - explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults to 3. - Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving - a GRPC port. properties: port: - description: Port number of the gRPC - service. Number must be in the range - 1 to 65535. format: int32 type: integer service: - description: "Service is the name of - the service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default - behavior is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect to, - defaults to the pod IP. You probably - want to set "Host" in httpHeaders - instead. type: string httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in HTTP - probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood as - the same header. type: string value: - description: The header field - value type: string required: - name @@ -6526,186 +2440,84 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP - server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port - to access on the container. Number - must be in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the - container has started before liveness - probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform - the probe. Default to 10 seconds. Minimum - value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. Must - be 1 for liveness and startup. Minimum - value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action - involving a TCP port. properties: host: - description: 'Optional: Host name to - connect to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port - to access on the container. Number - must be in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully - upon probe failure. The grace period is - the duration in seconds after the processes - running in the pod are sent a termination - signal and the time when the processes - are forcibly halted with a kill signal. - Set this value longer than the expected - cleanup time for your process. If this - value is nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value overrides - the value provided by the pod spec. Value - must be non-negative integer. The value - zero indicates stop immediately via the - kill signal (no opportunity to shut down). - This is a beta field and requires enabling - ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which - the probe times out. Defaults to 1 second. - Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object nice: - description: 'Settings to configure `nice` to - throttle the load on cpu. More info: http://kennystechtalk.blogspot.com/2015/04/throttling-cpu-usage-with-linux-cgroups.html - More info: https://oakbytes.wordpress.com/2012/06/06/linux-scheduler-cfs-and-nice/' properties: adjustment: format: int32 type: integer type: object readinessProbe: - description: 'Periodic probe of container service - readiness. Container will be removed from - service endpoints if the probe fails. Cannot - be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to - take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it is - not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to - explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults to 3. - Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving - a GRPC port. properties: port: - description: Port number of the gRPC - service. Number must be in the range - 1 to 65535. format: int32 type: integer service: - description: "Service is the name of - the service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default - behavior is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect to, - defaults to the pod IP. You probably - want to set "Host" in httpHeaders - instead. type: string httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in HTTP - probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood as - the same header. type: string value: - description: The header field - value type: string required: - name @@ -6714,116 +2526,51 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP - server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port - to access on the container. Number - must be in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the - container has started before liveness - probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform - the probe. Default to 10 seconds. Minimum - value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. Must - be 1 for liveness and startup. Minimum - value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action - involving a TCP port. properties: host: - description: 'Optional: Host name to - connect to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port - to access on the container. Number - must be in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully - upon probe failure. The grace period is - the duration in seconds after the processes - running in the pod are sent a termination - signal and the time when the processes - are forcibly halted with a kill signal. - Set this value longer than the expected - cleanup time for your process. If this - value is nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value overrides - the value provided by the pod spec. Value - must be non-negative integer. The value - zero indicates stop immediately via the - kill signal (no opportunity to shut down). - This is a beta field and requires enabling - ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which - the probe times out. Defaults to 1 second. - Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object resources: - description: 'Compute Resources required by - container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' properties: claims: - description: "Claims lists the names of - resources, defined in spec.resourceClaims, - that are used by this container. \n This - is an alpha field and requires enabling - the DynamicResourceAllocation feature - gate. \n This field is immutable. It can - only be set for containers." items: - description: ResourceClaim references - one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name - of one entry in pod.spec.resourceClaims - of the Pod where this field is used. - It makes that resource available - inside a container. type: string required: - name @@ -6839,9 +2586,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum - amount of compute resources allowed. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -6850,245 +2594,77 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum - amount of compute resources required. - If Requests is omitted for a container, - it defaults to Limits if that is explicitly - specified, otherwise to an implementation-defined - value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object securityContext: - description: 'Security options the pod should - run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: allowPrivilegeEscalation: - description: 'AllowPrivilegeEscalation controls - whether a process can gain more privileges - than its parent process. This bool directly - controls if the no_new_privs flag will - be set on the container process. AllowPrivilegeEscalation - is true always when the container is: - 1) run as Privileged 2) has CAP_SYS_ADMIN - Note that this field cannot be set when - spec.os.name is windows.' type: boolean appArmorProfile: - description: appArmorProfile is the AppArmor - options to use by this container. If set, - this profile overrides the pod's appArmorProfile. - Note that this field cannot be set when - spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile loaded on the node that - should be used. The profile must be - preconfigured on the node to work. - Must match the loaded name of the - profile. Must be set if and only if - type is "Localhost". type: string type: - description: 'type indicates which kind - of AppArmor profile will be applied. - Valid options are: Localhost - a profile - pre-loaded on the node. RuntimeDefault - - the container runtime''s default - profile. Unconfined - no AppArmor - enforcement.' type: string required: - type type: object capabilities: - description: The capabilities to add/drop - when running containers. Defaults to the - default set of capabilities granted by - the container runtime. Note that this - field cannot be set when spec.os.name - is windows. properties: add: - description: Added capabilities items: - description: Capability represent - POSIX capabilities type type: string type: array x-kubernetes-list-type: atomic drop: - description: Removed capabilities items: - description: Capability represent - POSIX capabilities type type: string type: array x-kubernetes-list-type: atomic type: object privileged: - description: Run container in privileged - mode. Processes in privileged containers - are essentially equivalent to root on - the host. Defaults to false. Note that - this field cannot be set when spec.os.name - is windows. type: boolean procMount: - description: procMount denotes the type - of proc mount to use for the containers. - The default is DefaultProcMount which - uses the container runtime defaults for - readonly paths and masked paths. This - requires the ProcMountType feature flag - to be enabled. Note that this field cannot - be set when spec.os.name is windows. type: string readOnlyRootFilesystem: - description: Whether this container has - a read-only root filesystem. Default is - false. Note that this field cannot be - set when spec.os.name is windows. type: boolean runAsGroup: - description: The GID to run the entrypoint - of the container process. Uses runtime - default if unset. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container - must run as a non-root user. If true, - the Kubelet will validate the image at - runtime to ensure that it does not run - as UID 0 (root) and fail to start the - container if it does. If unset or false, - no such validation will be performed. - May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: boolean runAsUser: - description: The UID to run the entrypoint - of the container process. Defaults to - user specified in image metadata if unspecified. - May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be applied - to the container. If unspecified, the - container runtime will allocate a random - SELinux context for each container. May - also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is windows. properties: level: - description: Level is SELinux level - label that applies to the container. type: string role: - description: Role is a SELinux role - label that applies to the container. type: string type: - description: Type is a SELinux type - label that applies to the container. type: string user: - description: User is a SELinux user - label that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to use - by this container. If seccomp options - are provided at both the pod & container - level, the container options override - the pod options. Note that this field - cannot be set when spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile defined in a file on the - node should be used. The profile must - be preconfigured on the node to work. - Must be a descending path, relative - to the kubelet's configured seccomp - profile location. Must be set if type - is "Localhost". Must NOT be set for - any other type. type: string type: - description: "type indicates which kind - of seccomp profile will be applied. - Valid options are: \n Localhost - - a profile defined in a file on the - node should be used. RuntimeDefault - - the container runtime default profile - should be used. Unconfined - no profile - should be applied." type: string required: - type type: object windowsOptions: - description: The Windows specific settings - applied to all containers. If unspecified, - the options from the PodSecurityContext - will be used. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. Note - that this field cannot be set when spec.os.name - is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is where - the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA credential - spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName - is the name of the GMSA credential - spec to use. type: string hostProcess: - description: HostProcess determines - if a container should be run as a - 'Host Process' container. All of a - Pod's containers must have the same - effective HostProcess value (it is - not allowed to have a mix of HostProcess - containers and non-HostProcess containers). - In addition, if HostProcess is true - then HostNetwork must also be set - to true. type: boolean runAsUserName: - description: The UserName in Windows - to run the entrypoint of the container - process. Defaults to the user specified - in image metadata if unspecified. - May also be set in PodSecurityContext. - If set in both SecurityContext and - PodSecurityContext, the value specified - in SecurityContext takes precedence. type: string type: object type: object @@ -7096,87 +2672,22 @@ spec: pod: properties: affinity: - description: If specified, the pod's scheduling - constraints properties: nodeAffinity: - description: Describes node affinity scheduling - rules for the pod. properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer - to schedule pods to nodes that satisfy - the affinity expressions specified - by this field, but it may choose a - node that violates one or more of - the expressions. The node that is - most preferred is the one with the - greatest sum of weights, i.e. for - each node that meets all of the scheduling - requirements (resource request, requiredDuringScheduling - affinity expressions, etc.), compute - a sum by iterating through the elements - of this field and adding "weight" - to the sum if the node matches the - corresponding matchExpressions; the - node(s) with the highest sum are the - most preferred. items: - description: An empty preferred scheduling - term matches all objects with implicit - weight 0 (i.e. it's a no-op). A - null preferred scheduling term matches - no objects (i.e. is also a no-op). properties: preference: - description: A node selector term, - associated with the corresponding - weight. properties: matchExpressions: - description: A list of node - selector requirements by - node's labels. items: - description: A node selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists, - DoesNotExist. Gt, - and Lt. type: string values: - description: An array - of string values. - If the operator is - In or NotIn, the values - array must be non-empty. - If the operator is - Exists or DoesNotExist, - the values array must - be empty. If the operator - is Gt or Lt, the values - array must have a - single element, which - will be interpreted - as an integer. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -7188,49 +2699,13 @@ spec: type: array x-kubernetes-list-type: atomic matchFields: - description: A list of node - selector requirements by - node's fields. items: - description: A node selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists, - DoesNotExist. Gt, - and Lt. type: string values: - description: An array - of string values. - If the operator is - In or NotIn, the values - array must be non-empty. - If the operator is - Exists or DoesNotExist, - the values array must - be empty. If the operator - is Gt or Lt, the values - array must have a - single element, which - will be interpreted - as an integer. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -7244,10 +2719,6 @@ spec: type: object x-kubernetes-map-type: atomic weight: - description: Weight associated - with matching the corresponding - nodeSelectorTerm, in the range - 1-100. format: int32 type: integer required: @@ -7257,73 +2728,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements - specified by this field are not met - at scheduling time, the pod will not - be scheduled onto the node. If the - affinity requirements specified by - this field cease to be met at some - point during pod execution (e.g. due - to an update), the system may or may - not try to eventually evict the pod - from its node. properties: nodeSelectorTerms: - description: Required. A list of - node selector terms. The terms - are ORed. items: - description: A null or empty node - selector term matches no objects. - The requirements of them are - ANDed. The TopologySelectorTerm - type implements a subset of - the NodeSelectorTerm. properties: matchExpressions: - description: A list of node - selector requirements by - node's labels. items: - description: A node selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists, - DoesNotExist. Gt, - and Lt. type: string values: - description: An array - of string values. - If the operator is - In or NotIn, the values - array must be non-empty. - If the operator is - Exists or DoesNotExist, - the values array must - be empty. If the operator - is Gt or Lt, the values - array must have a - single element, which - will be interpreted - as an integer. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -7335,49 +2751,13 @@ spec: type: array x-kubernetes-list-type: atomic matchFields: - description: A list of node - selector requirements by - node's fields. items: - description: A node selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists, - DoesNotExist. Gt, - and Lt. type: string values: - description: An array - of string values. - If the operator is - In or NotIn, the values - array must be non-empty. - If the operator is - Exists or DoesNotExist, - the values array must - be empty. If the operator - is Gt or Lt, the values - array must have a - single element, which - will be interpreted - as an integer. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -7398,91 +2778,22 @@ spec: x-kubernetes-map-type: atomic type: object podAffinity: - description: Describes pod affinity scheduling - rules (e.g. co-locate this pod in the - same node, zone, etc. as some other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer - to schedule pods to nodes that satisfy - the affinity expressions specified - by this field, but it may choose a - node that violates one or more of - the expressions. The node that is - most preferred is the one with the - greatest sum of weights, i.e. for - each node that meets all of the scheduling - requirements (resource request, requiredDuringScheduling - affinity expressions, etc.), compute - a sum by iterating through the elements - of this field and adding "weight" - to the sum if the node has pods which - matches the corresponding podAffinityTerm; - the node(s) with the highest sum are - the most preferred. items: - description: The weights of all of - the matched WeightedPodAffinityTerm - fields are added per-node to find - the most preferred node(s) properties: podAffinityTerm: - description: Required. A pod affinity - term, associated with the corresponding - weight. properties: labelSelector: - description: A label query - over a set of resources, - in this case pods. If it's - null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: key - is the label key - that the selector - applies to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values - is an array of - string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -7496,141 +2807,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an - element of matchExpressions, - whose key field is "key", - the operator is "In", - and the values array - contains only "value". - The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming - pod labels, those key-value - labels are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods - which pods will be taken - into consideration for the - incoming pod's pod (anti) - affinity. Keys that don't - exist in the incoming pod - labels will be ignored. - The default value is empty. - The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, - matchLabelKeys cannot be - set when labelSelector isn't - set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming - pod labels, those key-value - labels are merged with `labelSelector` - as `key notin (value)` to - select the group of existing - pods which pods will be - taken into consideration - for the incoming pod's pod - (anti) affinity. Keys that - don't exist in the incoming - pod labels will be ignored. - The default value is empty. - The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, - mismatchLabelKeys cannot - be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query - over the set of namespaces - that the term applies to. - The term is applied to the - union of the namespaces - selected by this field and - the ones listed in the namespaces - field. null selector and - null or empty namespaces - list means "this pod's namespace". - An empty selector ({}) matches - all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: key - is the label key - that the selector - applies to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values - is an array of - string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -7644,59 +2843,20 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an - element of matchExpressions, - whose key field is "key", - the operator is "In", - and the values array - contains only "value". - The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace - names that the term applies - to. The term is applied - to the union of the namespaces - listed in this field and - the ones selected by namespaceSelector. - null or empty namespaces - list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should - be co-located (affinity) - or not co-located (anti-affinity) - with the pods matching the - labelSelector in the specified - namespaces, where co-located - is defined as running on - a node whose value of the - label with key topologyKey - matches that of any node - on which any of the selected - pods is running. Empty topologyKey - is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated - with matching the corresponding - podAffinityTerm, in the range - 1-100. format: int32 type: integer required: @@ -7706,81 +2866,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements - specified by this field are not met - at scheduling time, the pod will not - be scheduled onto the node. If the - affinity requirements specified by - this field cease to be met at some - point during pod execution (e.g. due - to a pod label update), the system - may or may not try to eventually evict - the pod from its node. When there - are multiple elements, the lists of - nodes corresponding to each podAffinityTerm - are intersected, i.e. all terms must - be satisfied. items: - description: Defines a set of pods - (namely those matching the labelSelector - relative to the given namespace(s)) - that this pod should be co-located - (affinity) or not co-located (anti-affinity) - with, where co-located is defined - as running on a node whose value - of the label with key - matches that of any node on which - a pod of the set of pods is running properties: labelSelector: - description: A label query over - a set of resources, in this - case pods. If it's null, this - PodAffinityTerm matches with - no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to a - set of values. Valid - operators are In, - NotIn, Exists and - DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, the - values array must - be non-empty. If the - operator is Exists - or DoesNotExist, the - values array must - be empty. This array - is replaced during - a strategic merge - patch. items: type: string type: array @@ -7794,129 +2891,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in - the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is - a set of pod label keys to select - which pods will be taken into - consideration. The keys are - used to lookup values from the - incoming pod labels, those key-value - labels are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, matchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label keys to - select which pods will be taken - into consideration. The keys - are used to lookup values from - the incoming pod labels, those - key-value labels are merged - with `labelSelector` as `key - notin (value)` to select the - group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over - the set of namespaces that the - term applies to. The term is - applied to the union of the - namespaces selected by this - field and the ones listed in - the namespaces field. null selector - and null or empty namespaces - list means "this pod's namespace". - An empty selector ({}) matches - all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to a - set of values. Valid - operators are In, - NotIn, Exists and - DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, the - values array must - be non-empty. If the - operator is Exists - or DoesNotExist, the - values array must - be empty. This array - is replaced during - a strategic merge - patch. items: type: string type: array @@ -7930,47 +2927,15 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in - the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace names - that the term applies to. The - term is applied to the union - of the namespaces listed in - this field and the ones selected - by namespaceSelector. null or - empty namespaces list and null - namespaceSelector means "this - pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be - co-located (affinity) or not - co-located (anti-affinity) with - the pods matching the labelSelector - in the specified namespaces, - where co-located is defined - as running on a node whose value - of the label with key topologyKey - matches that of any node on - which any of the selected pods - is running. Empty topologyKey - is not allowed. type: string required: - topologyKey @@ -7979,92 +2944,22 @@ spec: x-kubernetes-list-type: atomic type: object podAntiAffinity: - description: Describes pod anti-affinity - scheduling rules (e.g. avoid putting this - pod in the same node, zone, etc. as some - other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer - to schedule pods to nodes that satisfy - the anti-affinity expressions specified - by this field, but it may choose a - node that violates one or more of - the expressions. The node that is - most preferred is the one with the - greatest sum of weights, i.e. for - each node that meets all of the scheduling - requirements (resource request, requiredDuringScheduling - anti-affinity expressions, etc.), - compute a sum by iterating through - the elements of this field and adding - "weight" to the sum if the node has - pods which matches the corresponding - podAffinityTerm; the node(s) with - the highest sum are the most preferred. items: - description: The weights of all of - the matched WeightedPodAffinityTerm - fields are added per-node to find - the most preferred node(s) properties: podAffinityTerm: - description: Required. A pod affinity - term, associated with the corresponding - weight. properties: labelSelector: - description: A label query - over a set of resources, - in this case pods. If it's - null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: key - is the label key - that the selector - applies to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values - is an array of - string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -8078,141 +2973,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an - element of matchExpressions, - whose key field is "key", - the operator is "In", - and the values array - contains only "value". - The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming - pod labels, those key-value - labels are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods - which pods will be taken - into consideration for the - incoming pod's pod (anti) - affinity. Keys that don't - exist in the incoming pod - labels will be ignored. - The default value is empty. - The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, - matchLabelKeys cannot be - set when labelSelector isn't - set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming - pod labels, those key-value - labels are merged with `labelSelector` - as `key notin (value)` to - select the group of existing - pods which pods will be - taken into consideration - for the incoming pod's pod - (anti) affinity. Keys that - don't exist in the incoming - pod labels will be ignored. - The default value is empty. - The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, - mismatchLabelKeys cannot - be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query - over the set of namespaces - that the term applies to. - The term is applied to the - union of the namespaces - selected by this field and - the ones listed in the namespaces - field. null selector and - null or empty namespaces - list means "this pod's namespace". - An empty selector ({}) matches - all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: key - is the label key - that the selector - applies to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values - is an array of - string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -8226,59 +3009,20 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an - element of matchExpressions, - whose key field is "key", - the operator is "In", - and the values array - contains only "value". - The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace - names that the term applies - to. The term is applied - to the union of the namespaces - listed in this field and - the ones selected by namespaceSelector. - null or empty namespaces - list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should - be co-located (affinity) - or not co-located (anti-affinity) - with the pods matching the - labelSelector in the specified - namespaces, where co-located - is defined as running on - a node whose value of the - label with key topologyKey - matches that of any node - on which any of the selected - pods is running. Empty topologyKey - is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated - with matching the corresponding - podAffinityTerm, in the range - 1-100. format: int32 type: integer required: @@ -8288,81 +3032,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the anti-affinity requirements - specified by this field are not met - at scheduling time, the pod will not - be scheduled onto the node. If the - anti-affinity requirements specified - by this field cease to be met at some - point during pod execution (e.g. due - to a pod label update), the system - may or may not try to eventually evict - the pod from its node. When there - are multiple elements, the lists of - nodes corresponding to each podAffinityTerm - are intersected, i.e. all terms must - be satisfied. items: - description: Defines a set of pods - (namely those matching the labelSelector - relative to the given namespace(s)) - that this pod should be co-located - (affinity) or not co-located (anti-affinity) - with, where co-located is defined - as running on a node whose value - of the label with key - matches that of any node on which - a pod of the set of pods is running properties: labelSelector: - description: A label query over - a set of resources, in this - case pods. If it's null, this - PodAffinityTerm matches with - no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to a - set of values. Valid - operators are In, - NotIn, Exists and - DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, the - values array must - be non-empty. If the - operator is Exists - or DoesNotExist, the - values array must - be empty. This array - is replaced during - a strategic merge - patch. items: type: string type: array @@ -8376,129 +3057,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in - the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is - a set of pod label keys to select - which pods will be taken into - consideration. The keys are - used to lookup values from the - incoming pod labels, those key-value - labels are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, matchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label keys to - select which pods will be taken - into consideration. The keys - are used to lookup values from - the incoming pod labels, those - key-value labels are merged - with `labelSelector` as `key - notin (value)` to select the - group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over - the set of namespaces that the - term applies to. The term is - applied to the union of the - namespaces selected by this - field and the ones listed in - the namespaces field. null selector - and null or empty namespaces - list means "this pod's namespace". - An empty selector ({}) matches - all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to a - set of values. Valid - operators are In, - NotIn, Exists and - DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, the - values array must - be non-empty. If the - operator is Exists - or DoesNotExist, the - values array must - be empty. This array - is replaced during - a strategic merge - patch. items: type: string type: array @@ -8512,47 +3093,15 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in - the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace names - that the term applies to. The - term is applied to the union - of the namespaces listed in - this field and the ones selected - by namespaceSelector. null or - empty namespaces list and null - namespaceSelector means "this - pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be - co-located (affinity) or not - co-located (anti-affinity) with - the pods matching the labelSelector - in the specified namespaces, - where co-located is defined - as running on a node whose value - of the label with key topologyKey - matches that of any node on - which any of the selected pods - is running. Empty topologyKey - is not allowed. type: string required: - topologyKey @@ -8562,327 +3111,106 @@ spec: type: object type: object automountServiceAccountToken: - description: AutomountServiceAccountToken indicates - whether a service account token should be - automatically mounted. type: boolean enableServiceLinks: - description: 'EnableServiceLinks indicates whether - information about services should be injected - into pod''s environment variables, matching - the syntax of Docker links. Optional: Defaults - to true.' type: boolean imagePullSecrets: - description: 'ImagePullSecrets is an optional - list of references to secrets in the same - namespace to use for pulling any of the images - used by this PodRuntimeSettings. If specified, - these secrets will be passed to individual - puller implementations for them to use. For - example, in the case of docker, only DockerConfig - type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod' items: - description: LocalObjectReference contains - enough information to let you locate the - referenced object inside the same namespace. properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic type: array nodeName: - description: NodeName is a request to schedule - this pod onto a specific node. If it is non-empty, - the scheduler simply schedules this pod onto - that node, assuming that it fits resource - requirements. type: string nodeSelector: additionalProperties: type: string - description: 'NodeSelector is a selector which - must be true for the pod to fit on a node. - Selector which must match a node''s labels - for the pod to be scheduled on that node. - More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/' type: object podAnnotations: additionalProperties: type: string - description: PodAnnotations are the annotations - that will be attached with the respective - Pod type: object podLabels: additionalProperties: type: string - description: PodLabels are the labels that will - be attached with the respective Pod type: object priority: - description: The priority value. Various system - components use this field to find the priority - of the pod. When Priority Admission Controller - is enabled, it prevents users from setting - this field. The admission controller populates - this field from PriorityClassName. The higher - the value, the higher the priority. format: int32 type: integer priorityClassName: - description: If specified, indicates the pod's - priority. "system-node-critical" and "system-cluster-critical" - are two special keywords which indicate the - highest priorities with the former being the - highest priority. Any other name must be defined - by creating a PriorityClass object with that - name. If not specified, the pod priority will - be default or zero if there is no default. type: string readinessGates: - description: 'If specified, all readiness gates - will be evaluated for pod readiness. A pod - is ready when all its containers are ready - AND all conditions specified in the readiness - gates have status equal to "True" More info: - https://git.k8s.io/enhancements/keps/sig-network/0007-pod-ready%2B%2B.md' items: - description: PodReadinessGate contains the - reference to a pod condition properties: conditionType: - description: ConditionType refers to a - condition in the pod's condition list - with matching type. type: string required: - conditionType type: object type: array runtimeClassName: - description: 'RuntimeClassName refers to a RuntimeClass - object in the node.k8s.io group, which should - be used to run this pod. If no RuntimeClass - resource matches the named class, the pod - will not be run. If unset or empty, the "legacy" - RuntimeClass will be used, which is an implicit - class with an empty definition that uses the - default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md - This is an alpha feature and may change in - the future.' type: string schedulerName: - description: If specified, the pod will be dispatched - by specified scheduler. If not specified, - the pod will be dispatched by default scheduler. type: string securityContext: - description: 'Security options the pod should - run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: appArmorProfile: - description: appArmorProfile is the AppArmor - options to use by the containers in this - pod. Note that this field cannot be set - when spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile loaded on the node that - should be used. The profile must be - preconfigured on the node to work. - Must match the loaded name of the - profile. Must be set if and only if - type is "Localhost". type: string type: - description: 'type indicates which kind - of AppArmor profile will be applied. - Valid options are: Localhost - a profile - pre-loaded on the node. RuntimeDefault - - the container runtime''s default - profile. Unconfined - no AppArmor - enforcement.' type: string required: - type type: object fsGroup: - description: "A special supplemental group - that applies to all containers in a pod. - Some volume types allow the Kubelet to - change the ownership of that volume to - be owned by the pod: \n 1. The owning - GID will be the FSGroup 2. The setgid - bit is set (new files created in the volume - will be owned by FSGroup) 3. The permission - bits are OR'd with rw-rw---- \n If unset, - the Kubelet will not modify the ownership - and permissions of any volume. Note that - this field cannot be set when spec.os.name - is windows." format: int64 type: integer fsGroupChangePolicy: - description: 'fsGroupChangePolicy defines - behavior of changing ownership and permission - of the volume before being exposed inside - Pod. This field will only apply to volume - types which support fsGroup based ownership(and - permissions). It will have no effect on - ephemeral volume types such as: secret, - configmaps and emptydir. Valid values - are "OnRootMismatch" and "Always". If - not specified, "Always" is used. Note - that this field cannot be set when spec.os.name - is windows.' type: string runAsGroup: - description: The GID to run the entrypoint - of the container process. Uses runtime - default if unset. May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence for that container. Note - that this field cannot be set when spec.os.name - is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container - must run as a non-root user. If true, - the Kubelet will validate the image at - runtime to ensure that it does not run - as UID 0 (root) and fail to start the - container if it does. If unset or false, - no such validation will be performed. - May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: boolean runAsUser: - description: The UID to run the entrypoint - of the container process. Defaults to - user specified in image metadata if unspecified. - May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence for that container. Note - that this field cannot be set when spec.os.name - is windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be applied - to all containers. If unspecified, the - container runtime will allocate a random - SELinux context for each container. May - also be set in SecurityContext. If set - in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence for that container. Note - that this field cannot be set when spec.os.name - is windows. properties: level: - description: Level is SELinux level - label that applies to the container. type: string role: - description: Role is a SELinux role - label that applies to the container. type: string type: - description: Type is a SELinux type - label that applies to the container. type: string user: - description: User is a SELinux user - label that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to use - by the containers in this pod. Note that - this field cannot be set when spec.os.name - is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile defined in a file on the - node should be used. The profile must - be preconfigured on the node to work. - Must be a descending path, relative - to the kubelet's configured seccomp - profile location. Must be set if type - is "Localhost". Must NOT be set for - any other type. type: string type: - description: "type indicates which kind - of seccomp profile will be applied. - Valid options are: \n Localhost - - a profile defined in a file on the - node should be used. RuntimeDefault - - the container runtime default profile - should be used. Unconfined - no profile - should be applied." type: string required: - type type: object supplementalGroups: - description: A list of groups applied to - the first process run in each container, - in addition to the container's primary - GID, the fsGroup (if specified), and group - memberships defined in the container image - for the uid of the container process. - If unspecified, no additional groups are - added to any container. Note that group - memberships defined in the container image - for the uid of the container process are - still effective, even if they are not - included in this list. Note that this - field cannot be set when spec.os.name - is windows. items: format: int64 type: integer type: array x-kubernetes-list-type: atomic sysctls: - description: Sysctls hold a list of namespaced - sysctls used for the pod. Pods with unsupported - sysctls (by the container runtime) might - fail to launch. Note that this field cannot - be set when spec.os.name is windows. items: - description: Sysctl defines a kernel parameter - to be set properties: name: - description: Name of a property to - set type: string value: - description: Value of a property to - set type: string required: - name @@ -8891,164 +3219,52 @@ spec: type: array x-kubernetes-list-type: atomic windowsOptions: - description: The Windows specific settings - applied to all containers. If unspecified, - the options within a container's SecurityContext - will be used. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. Note - that this field cannot be set when spec.os.name - is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is where - the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA credential - spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName - is the name of the GMSA credential - spec to use. type: string hostProcess: - description: HostProcess determines - if a container should be run as a - 'Host Process' container. All of a - Pod's containers must have the same - effective HostProcess value (it is - not allowed to have a mix of HostProcess - containers and non-HostProcess containers). - In addition, if HostProcess is true - then HostNetwork must also be set - to true. type: boolean runAsUserName: - description: The UserName in Windows - to run the entrypoint of the container - process. Defaults to the user specified - in image metadata if unspecified. - May also be set in PodSecurityContext. - If set in both SecurityContext and - PodSecurityContext, the value specified - in SecurityContext takes precedence. type: string type: object type: object serviceAccountAnnotations: additionalProperties: type: string - description: ServiceAccountAnnotations are the - annotations that will be attached with the - respective ServiceAccount type: object serviceAccountName: - description: 'ServiceAccountName is the name - of the ServiceAccount to use to run this pod. - More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/' type: string tolerations: - description: If specified, the pod's tolerations. items: - description: The pod this Toleration is attached - to tolerates any taint that matches the - triple using the matching - operator . properties: effect: - description: Effect indicates the taint - effect to match. Empty means match all - taint effects. When specified, allowed - values are NoSchedule, PreferNoSchedule - and NoExecute. type: string key: - description: Key is the taint key that - the toleration applies to. Empty means - match all taint keys. If the key is - empty, operator must be Exists; this - combination means to match all values - and all keys. type: string operator: - description: Operator represents a key's - relationship to the value. Valid operators - are Exists and Equal. Defaults to Equal. - Exists is equivalent to wildcard for - value, so that a pod can tolerate all - taints of a particular category. type: string tolerationSeconds: - description: TolerationSeconds represents - the period of time the toleration (which - must be of effect NoExecute, otherwise - this field is ignored) tolerates the - taint. By default, it is not set, which - means tolerate the taint forever (do - not evict). Zero and negative values - will be treated as 0 (evict immediately) - by the system. format: int64 type: integer value: - description: Value is the taint value - the toleration matches to. If the operator - is Exists, the value should be empty, - otherwise just a regular string. type: string type: object type: array topologySpreadConstraints: - description: TopologySpreadConstraints describes - how a group of pods ought to spread across - topology domains. Scheduler will schedule - pods in a way which abides by the constraints. - All topologySpreadConstraints are ANDed. items: - description: TopologySpreadConstraint specifies - how to spread matching pods among the given - topology. properties: labelSelector: - description: LabelSelector is used to - find matching pods. Pods that match - this label selector are counted to determine - the number of pods in their corresponding - topology domain. properties: matchExpressions: - description: matchExpressions is a - list of label selector requirements. - The requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to a - set of values. Valid operators - are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an array - of string values. If the operator - is In or NotIn, the values - array must be non-empty. If - the operator is Exists or - DoesNotExist, the values array - must be empty. This array - is replaced during a strategic - merge patch. items: type: string type: array @@ -9062,176 +3278,27 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map - of {key,value} pairs. A single {key,value} - in the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: "MatchLabelKeys is a set - of pod label keys to select the pods - over which spreading will be calculated. - The keys are used to lookup values from - the incoming pod labels, those key-value - labels are ANDed with labelSelector - to select the group of existing pods - over which spreading will be calculated - for the incoming pod. The same key is - forbidden to exist in both MatchLabelKeys - and LabelSelector. MatchLabelKeys cannot - be set when LabelSelector isn't set. - Keys that don't exist in the incoming - pod labels will be ignored. A null or - empty list means only match against - labelSelector. \n This is a beta field - and requires the MatchLabelKeysInPodTopologySpread - feature gate to be enabled (enabled - by default)." items: type: string type: array x-kubernetes-list-type: atomic maxSkew: - description: 'MaxSkew describes the degree - to which pods may be unevenly distributed. - When `whenUnsatisfiable=DoNotSchedule`, - it is the maximum permitted difference - between the number of matching pods - in the target topology and the global - minimum. The global minimum is the minimum - number of matching pods in an eligible - domain or zero if the number of eligible - domains is less than MinDomains. For - example, in a 3-zone cluster, MaxSkew - is set to 1, and pods with the same - labelSelector spread as 2/2/1: In this - case, the global minimum is 1. | zone1 - | zone2 | zone3 | | P P | P P | P | - - if MaxSkew is 1, incoming pod can - only be scheduled to zone3 to become - 2/2/2; scheduling it onto zone1(zone2) - would make the ActualSkew(3-1) on zone1(zone2) - violate MaxSkew(1). - if MaxSkew is - 2, incoming pod can be scheduled onto - any zone. When `whenUnsatisfiable=ScheduleAnyway`, - it is used to give higher precedence - to topologies that satisfy it. It''s - a required field. Default value is 1 - and 0 is not allowed.' format: int32 type: integer minDomains: - description: "MinDomains indicates a minimum - number of eligible domains. When the - number of eligible domains with matching - topology keys is less than minDomains, - Pod Topology Spread treats \"global - minimum\" as 0, and then the calculation - of Skew is performed. And when the number - of eligible domains with matching topology - keys equals or greater than minDomains, - this value has no effect on scheduling. - As a result, when the number of eligible - domains is less than minDomains, scheduler - won't schedule more than maxSkew Pods - to those domains. If value is nil, the - constraint behaves as if MinDomains - is equal to 1. Valid values are integers - greater than 0. When value is not nil, - WhenUnsatisfiable must be DoNotSchedule. - \n For example, in a 3-zone cluster, - MaxSkew is set to 2, MinDomains is set - to 5 and pods with the same labelSelector - spread as 2/2/2: | zone1 | zone2 | zone3 - | | P P | P P | P P | The number - of domains is less than 5(MinDomains), - so \"global minimum\" is treated as - 0. In this situation, new pod with the - same labelSelector cannot be scheduled, - because computed skew will be 3(3 - - 0) if new Pod is scheduled to any of - the three zones, it will violate MaxSkew." format: int32 type: integer nodeAffinityPolicy: - description: "NodeAffinityPolicy indicates - how we will treat Pod's nodeAffinity/nodeSelector - when calculating pod topology spread - skew. Options are: - Honor: only nodes - matching nodeAffinity/nodeSelector are - included in the calculations. - Ignore: - nodeAffinity/nodeSelector are ignored. - All nodes are included in the calculations. - \n If this value is nil, the behavior - is equivalent to the Honor policy. This - is a beta-level feature default enabled - by the NodeInclusionPolicyInPodTopologySpread - feature flag." type: string nodeTaintsPolicy: - description: "NodeTaintsPolicy indicates - how we will treat node taints when calculating - pod topology spread skew. Options are: - - Honor: nodes without taints, along - with tainted nodes for which the incoming - pod has a toleration, are included. - - Ignore: node taints are ignored. All - nodes are included. \n If this value - is nil, the behavior is equivalent to - the Ignore policy. This is a beta-level - feature default enabled by the NodeInclusionPolicyInPodTopologySpread - feature flag." type: string topologyKey: - description: TopologyKey is the key of - node labels. Nodes that have a label - with this key and identical values are - considered to be in the same topology. - We consider each as a "bucket", - and try to put balanced number of pods - into each bucket. We define a domain - as a particular instance of a topology. - Also, we define an eligible domain as - a domain whose nodes meet the requirements - of nodeAffinityPolicy and nodeTaintsPolicy. - e.g. If TopologyKey is "kubernetes.io/hostname", - each Node is a domain of that topology. - And, if TopologyKey is "topology.kubernetes.io/zone", - each zone is a domain of that topology. - It's a required field. type: string whenUnsatisfiable: - description: 'WhenUnsatisfiable indicates - how to deal with a pod if it doesn''t - satisfy the spread constraint. - DoNotSchedule - (default) tells the scheduler not to - schedule it. - ScheduleAnyway tells - the scheduler to schedule the pod in - any location, but giving higher precedence - to topologies that would help reduce - the skew. A constraint is considered - "Unsatisfiable" for an incoming pod - if and only if every possible node assignment - for that pod would violate "MaxSkew" - on some topology. For example, in a - 3-zone cluster, MaxSkew is set to 1, - and pods with the same labelSelector - spread as 3/1/1: | zone1 | zone2 | zone3 - | | P P P | P | P | If WhenUnsatisfiable - is set to DoNotSchedule, incoming pod - can only be scheduled to zone2(zone3) - to become 3/2/1(3/1/2) as ActualSkew(2-1) - on zone2(zone3) satisfies MaxSkew(1). - In other words, the cluster can still - be imbalanced, but scheduler won''t - make it *more* imbalanced. It''s a required - field.' type: string required: - maxSkew @@ -9246,141 +3313,63 @@ spec: type: object type: object timeout: - description: Timeout specifies a duration in seconds - that KubeStash should wait for the hook execution - to be completed. If the hook execution does not finish - within this time period, KubeStash will consider this - hook execution as failure. Then, it will be re-tried - according to MaxRetry policy. type: string variables: - description: Variables specifies a list of variables - and their sources that will be used to resolve the - HookTemplate. items: - description: EnvVar represents an environment variable - present in a Container. properties: name: - description: Name of the environment variable. - Must be a C_IDENTIFIER. type: string value: - description: 'Variable references $(VAR_NAME) - are expanded using the previously defined environment - variables in the container and any service environment - variables. If a variable cannot be resolved, - the reference in the input string will be unchanged. - Double $$ are reduced to a single $, which allows - for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" - will produce the string literal "$(VAR_NAME)". - Escaped references will never be expanded, regardless - of whether the variable exists or not. Defaults - to "".' type: string valueFrom: - description: Source for the environment variable's - value. Cannot be used if value is not empty. properties: configMapKeyRef: - description: Selects a key of a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap - or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field of the pod: - supports metadata.name, metadata.namespace, - `metadata.labels['''']`, `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, - status.hostIP, status.podIP, status.podIPs.' properties: apiVersion: - description: Version of the schema the - FieldPath is written in terms of, defaults - to "v1". type: string fieldPath: - description: Path of the field to select - in the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource of the container: - only resources limits and requests (limits.cpu, - limits.memory, limits.ephemeral-storage, - requests.cpu, requests.memory and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: required - for volumes, optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output format - of the exposed resources, defaults to - "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource to select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret in - the pod's namespace properties: key: - description: The key of the secret to - select from. Must be a valid secret - key. type: string name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret - or its key must be defined type: boolean required: - key @@ -9392,68 +3381,21 @@ spec: type: object type: array volumeMounts: - description: VolumeMounts specifies the mount for the - volumes specified in `Volumes` section Use this field - only for `Function` type hook executor. items: - description: VolumeMount describes a mounting of a - Volume within a container. properties: mountPath: - description: Path within the container at which - the volume should be mounted. Must not contain - ':'. type: string mountPropagation: - description: mountPropagation determines how mounts - are propagated from the host to container and - the other way around. When not set, MountPropagationNone - is used. This field is beta in 1.10. When RecursiveReadOnly - is set to IfPossible or to Enabled, MountPropagation - must be None or unspecified (which defaults - to None). type: string name: - description: This must match the Name of a Volume. type: string readOnly: - description: Mounted read-only if true, read-write - otherwise (false or unspecified). Defaults to - false. type: boolean recursiveReadOnly: - description: "RecursiveReadOnly specifies whether - read-only mounts should be handled recursively. - \n If ReadOnly is false, this field has no meaning - and must be unspecified. \n If ReadOnly is true, - and this field is set to Disabled, the mount - is not made recursively read-only. If this - field is set to IfPossible, the mount is made - recursively read-only, if it is supported by - the container runtime. If this field is set - to Enabled, the mount is made recursively read-only - if it is supported by the container runtime, - otherwise the pod will not be started and an - error will be generated to indicate the reason. - \n If this field is set to IfPossible or Enabled, - MountPropagation must be set to None (or be - unspecified, which defaults to None). \n If - this field is not specified, it is treated as - an equivalent of Disabled." type: string subPath: - description: Path within the volume from which - the container's volume should be mounted. Defaults - to "" (volume's root). type: string subPathExpr: - description: Expanded path within the volume from - which the container's volume should be mounted. - Behaves similarly to SubPath but environment - variable references $(VAR_NAME) are expanded - using the container's environment. Defaults - to "" (volume's root). SubPathExpr and SubPath - are mutually exclusive. type: string required: - mountPath @@ -9461,279 +3403,109 @@ spec: type: object type: array volumes: - description: Volumes indicates the list of volumes of - targeted application that should be mounted on the - hook executor. Use this field only for `Function` - type hook executor. items: - description: Volume represents a named volume in a - pod that may be accessed by any container in the - pod. properties: awsElasticBlockStore: - description: 'awsElasticBlockStore represents - an AWS Disk resource that is attached to a kubelet''s - host machine and then exposed to the pod. More - info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' properties: fsType: - description: 'fsType is the filesystem type - of the volume that you want to mount. Tip: - Ensure that the filesystem type is supported - by the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly inferred - to be "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string partition: - description: 'partition is the partition in - the volume that you want to mount. If omitted, - the default is to mount by volume name. - Examples: For volume /dev/sda1, you specify - the partition as "1". Similarly, the volume - partition for /dev/sda is "0" (or you can - leave the property empty).' format: int32 type: integer readOnly: - description: 'readOnly value true will force - the readOnly setting in VolumeMounts. More - info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: boolean volumeID: - description: 'volumeID is unique ID of the - persistent disk resource in AWS (Amazon - EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: string required: - volumeID type: object azureDisk: - description: azureDisk represents an Azure Data - Disk mount on the host and bind mount to the - pod. properties: cachingMode: - description: 'cachingMode is the Host Caching - mode: None, Read Only, Read Write.' type: string diskName: - description: diskName is the Name of the data - disk in the blob storage type: string diskURI: - description: diskURI is the URI of data disk - in the blob storage type: string fsType: - description: fsType is Filesystem type to - mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Implicitly inferred to be - "ext4" if unspecified. type: string kind: - description: 'kind expected values are Shared: - multiple blob disks per storage account Dedicated: - single blob disk per storage account Managed: - azure managed data disk (only in managed - availability set). defaults to shared' type: string readOnly: - description: readOnly Defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean required: - diskName - diskURI type: object azureFile: - description: azureFile represents an Azure File - Service mount on the host and bind mount to - the pod. properties: readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean secretName: - description: secretName is the name of secret - that contains Azure Storage Account Name - and Key type: string shareName: - description: shareName is the azure share - Name type: string required: - secretName - shareName type: object cephfs: - description: cephFS represents a Ceph FS mount - on the host that shares a pod's lifetime properties: monitors: - description: 'monitors is Required: Monitors - is a collection of Ceph monitors More info: - https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic path: - description: 'path is Optional: Used as the - mounted root, rather than the full Ceph - tree, default is /' type: string readOnly: - description: 'readOnly is Optional: Defaults - to false (read/write). ReadOnly here will - force the ReadOnly setting in VolumeMounts. - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: boolean secretFile: - description: 'secretFile is Optional: SecretFile - is the path to key ring for User, default - is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string secretRef: - description: 'secretRef is Optional: SecretRef - is reference to the authentication secret - for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is optional: User is the - rados user name, default is admin More info: - https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string required: - monitors type: object cinder: - description: 'cinder represents a cinder volume - attached and mounted on kubelets host machine. - More info: https://examples.k8s.io/mysql-cinder-pd/README.md' properties: fsType: - description: 'fsType is the filesystem type - to mount. Must be a filesystem type supported - by the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly inferred - to be "ext4" if unspecified. More info: - https://examples.k8s.io/mysql-cinder-pd/README.md' type: string readOnly: - description: 'readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: boolean secretRef: - description: 'secretRef is optional: points - to a secret object containing parameters - used to connect to OpenStack.' properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeID: - description: 'volumeID used to identify the - volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string required: - volumeID type: object configMap: - description: configMap represents a configMap - that should populate this volume properties: defaultMode: - description: 'defaultMode is optional: mode - bits used to set permissions on created - files by default. Must be an octal value - between 0000 and 0777 or a decimal value - between 0 and 511. YAML accepts both octal - and decimal values, JSON requires decimal - values for mode bits. Defaults to 0644. - Directories within the path are not affected - by this setting. This might be in conflict - with other options that affect the file - mode, like fsGroup, and the result can be - other mode bits set.' format: int32 type: integer items: - description: items if unspecified, each key-value - pair in the Data field of the referenced - ConfigMap will be projected into the volume - as a file whose name is the key and content - is the value. If specified, the listed keys - will be projected into the specified paths, - and unlisted keys will not be present. If - a key is specified which is not present - in the ConfigMap, the volume setup will - error unless it is marked optional. Paths - must be relative and may not contain the - '..' path or start with '..'. items: - description: Maps a string key to a path - within a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: mode - bits used to set permissions on this - file. Must be an octal value between - 0000 and 0777 or a decimal value between - 0 and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. If not - specified, the volume defaultMode - will be used. This might be in conflict - with other options that affect the - file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative path - of the file to map the key to. May - not be an absolute path. May not contain - the path element '..'. May not start - with the string '..'. type: string required: - key @@ -9743,174 +3515,67 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other - useful fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether the - ConfigMap or its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic csi: - description: csi (Container Storage Interface) - represents ephemeral storage that is handled - by certain external CSI drivers (Beta feature). properties: driver: - description: driver is the name of the CSI - driver that handles this volume. Consult - with your admin for the correct name as - registered in the cluster. type: string fsType: - description: fsType to mount. Ex. "ext4", - "xfs", "ntfs". If not provided, the empty - value is passed to the associated CSI driver - which will determine the default filesystem - to apply. type: string nodePublishSecretRef: - description: nodePublishSecretRef is a reference - to the secret object containing sensitive - information to pass to the CSI driver to - complete the CSI NodePublishVolume and NodeUnpublishVolume - calls. This field is optional, and may - be empty if no secret is required. If the - secret object contains more than one secret, - all secret references are passed. properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic readOnly: - description: readOnly specifies a read-only - configuration for the volume. Defaults to - false (read/write). type: boolean volumeAttributes: additionalProperties: type: string - description: volumeAttributes stores driver-specific - properties that are passed to the CSI driver. - Consult your driver's documentation for - supported values. type: object required: - driver type: object downwardAPI: - description: downwardAPI represents downward API - about the pod that should populate this volume properties: defaultMode: - description: 'Optional: mode bits to use on - created files by default. Must be a Optional: - mode bits used to set permissions on created - files by default. Must be an octal value - between 0000 and 0777 or a decimal value - between 0 and 511. YAML accepts both octal - and decimal values, JSON requires decimal - values for mode bits. Defaults to 0644. - Directories within the path are not affected - by this setting. This might be in conflict - with other options that affect the file - mode, like fsGroup, and the result can be - other mode bits set.' format: int32 type: integer items: - description: Items is a list of downward API - volume file items: - description: DownwardAPIVolumeFile represents - information to create the file containing - the pod field properties: fieldRef: - description: 'Required: Selects a field - of the pod: only annotations, labels, - name, namespace and uid are supported.' properties: apiVersion: - description: Version of the schema - the FieldPath is written in terms - of, defaults to "v1". type: string fieldPath: - description: Path of the field to - select in the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode bits used - to set permissions on this file, must - be an octal value between 0000 and - 0777 or a decimal value between 0 - and 511. YAML accepts both octal and - decimal values, JSON requires decimal - values for mode bits. If not specified, - the volume defaultMode will be used. - This might be in conflict with other - options that affect the file mode, - like fsGroup, and the result can be - other mode bits set.' format: int32 type: integer path: - description: 'Required: Path is the - relative path name of the file to - be created. Must not be absolute or - contain the ''..'' path. Must be utf-8 - encoded. The first item of the relative - path must not start with ''..''' type: string resourceFieldRef: - description: 'Selects a resource of - the container: only resources limits - and requests (limits.cpu, limits.memory, - requests.cpu and requests.memory) - are currently supported.' properties: containerName: - description: 'Container name: required - for volumes, optional for env - vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource - to select' type: string required: - resource @@ -9923,220 +3588,50 @@ spec: x-kubernetes-list-type: atomic type: object emptyDir: - description: 'emptyDir represents a temporary - directory that shares a pod''s lifetime. More - info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' properties: medium: - description: 'medium represents what type - of storage medium should back this directory. - The default is "" which means to use the - node''s default medium. Must be an empty - string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' type: string sizeLimit: anyOf: - type: integer - type: string - description: 'sizeLimit is the total amount - of local storage required for this EmptyDir - volume. The size limit is also applicable - for memory medium. The maximum usage on - memory medium EmptyDir would be the minimum - value between the SizeLimit specified here - and the sum of memory limits of all containers - in a pod. The default is nil which means - that the limit is undefined. More info: - https://kubernetes.io/docs/concepts/storage/volumes#emptydir' pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object ephemeral: - description: "ephemeral represents a volume that - is handled by a cluster storage driver. The - volume's lifecycle is tied to the pod that defines - it - it will be created before the pod starts, - and deleted when the pod is removed. \n Use - this if: a) the volume is only needed while - the pod runs, b) features of normal volumes - like restoring from snapshot or capacity tracking - are needed, c) the storage driver is specified - through a storage class, and d) the storage - driver supports dynamic volume provisioning - through a PersistentVolumeClaim (see EphemeralVolumeSource - for more information on the connection between - this volume type and PersistentVolumeClaim). - \n Use PersistentVolumeClaim or one of the vendor-specific - APIs for volumes that persist for longer than - the lifecycle of an individual pod. \n Use CSI - for light-weight local ephemeral volumes if - the CSI driver is meant to be used that way - - see the documentation of the driver for more - information. \n A pod can use both types of - ephemeral volumes and persistent volumes at - the same time." properties: volumeClaimTemplate: - description: "Will be used to create a stand-alone - PVC to provision the volume. The pod in - which this EphemeralVolumeSource is embedded - will be the owner of the PVC, i.e. the PVC - will be deleted together with the pod. The - name of the PVC will be `-` where `` is the name - from the `PodSpec.Volumes` array entry. - Pod validation will reject the pod if the - concatenated name is not valid for a PVC - (for example, too long). \n An existing - PVC with that name that is not owned by - the pod will *not* be used for the pod to - avoid using an unrelated volume by mistake. - Starting the pod is then blocked until the - unrelated PVC is removed. If such a pre-created - PVC is meant to be used by the pod, the - PVC has to updated with an owner reference - to the pod once the pod exists. Normally - this should not be necessary, but it may - be useful when manually reconstructing a - broken cluster. \n This field is read-only - and no changes will be made by Kubernetes - to the PVC after it has been created. \n - Required, must not be nil." properties: metadata: - description: May contain labels and annotations - that will be copied into the PVC when - creating it. No other fields are allowed - and will be rejected during validation. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured - key value map stored with a resource - that may be set by external tools - to store and retrieve arbitrary - metadata. They are not queryable - and should be preserved when modifying - objects. More info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName is an optional - prefix, used by the server, to generate - a unique name ONLY IF the Name field - has not been provided. If this field - is used, the name returned to the - client will be different than the - name passed. This value will also - be combined with a unique suffix. - The provided value has the same - validation rules as the Name field, - and may be truncated by the length - of the suffix required to make the - value unique on the server. \n If - this field is specified and the - generated name exists, the server - will NOT return a 409 - instead, - it will either return 201 Created - or 500 with Reason ServerTimeout - indicating a unique name could not - be found in the time allotted, and - the client should retry (optionally - after the time indicated in the - Retry-After header). \n Applied - only if Name is not specified. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string keys and - values that can be used to organize - and categorize (scope and select) - objects. May match selectors of - replication controllers and services. - More info: http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must be unique - within a namespace. Is required - when creating resources, although - some resources may allow a client - to request the generation of an - appropriate name automatically. - Name is primarily intended for creation - idempotence and configuration definition. - Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace defines the - space within each name must be unique. - An empty namespace is equivalent - to the \"default\" namespace, but - \"default\" is the canonical representation. - Not all objects are required to - be scoped to a namespace - the value - of this field for those objects - will be empty. \n Must be a DNS_LABEL. - Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects depended - by this object. If ALL objects in - the list have been deleted, this - object will be garbage collected. - If this object is managed by a controller, - then an entry in this list will - point to this controller, with the - controller field set to true. There - cannot be more than one managing - controller. items: - description: OwnerReference contains - enough information to let you - identify an owning object. An - owning object must be in the same - namespace as the dependent, or - be cluster-scoped, so there is - no namespace field. properties: apiVersion: - description: API version of - the referent. type: string blockOwnerDeletion: - description: If true, AND if - the owner has the "foregroundDeletion" - finalizer, then the owner - cannot be deleted from the - key-value store until this - reference is removed. See - https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage collector - interacts with this field - and enforces the foreground - deletion. Defaults to false. - To set this field, a user - needs "delete" permission - of the owner, otherwise 422 - (Unprocessable Entity) will - be returned. type: boolean controller: - description: If true, this reference - points to the managing controller. type: boolean kind: - description: 'Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -10148,56 +3643,19 @@ spec: type: array type: object spec: - description: The specification for the - PersistentVolumeClaim. The entire content - is copied unchanged into the PVC that - gets created from this template. The - same fields as in a PersistentVolumeClaim - are also valid here. properties: accessModes: - description: 'accessModes contains - the desired access modes the volume - should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource field can - be used to specify either: * An - existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an external - controller can support the specified - data source, it will create a new - volume based on the contents of - the specified data source. When - the AnyVolumeDataSource feature - gate is enabled, dataSource contents - will be copied to dataSourceRef, - and dataSourceRef contents will - be copied to dataSource when dataSourceRef.namespace - is not specified. If the namespace - is specified, then dataSourceRef - will not be copied to dataSource.' properties: apiGroup: - description: APIGroup is the group - for the resource being referenced. - If APIGroup is not specified, - the specified Kind must be in - the core API group. For any - other third-party types, APIGroup - is required. type: string kind: - description: Kind is the type - of resource being referenced type: string name: - description: Name is the name - of resource being referenced type: string required: - kind @@ -10205,93 +3663,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef specifies - the object from which to populate - the volume with data, if a non-empty - volume is desired. This may be any - object from a non-empty API group - (non core object) or a PersistentVolumeClaim - object. When this field is specified, - volume binding will only succeed - if the type of the specified object - matches some installed volume populator - or dynamic provisioner. This field - will replace the functionality of - the dataSource field and as such - if both fields are non-empty, they - must have the same value. For backwards - compatibility, when namespace isn''t - specified in dataSourceRef, both - fields (dataSource and dataSourceRef) - will be set to the same value automatically - if one of them is empty and the - other is non-empty. When namespace - is specified in dataSourceRef, dataSource - isn''t set to the same value and - must be empty. There are three important - differences between dataSource and - dataSourceRef: * While dataSource - only allows two specific types of - objects, dataSourceRef allows any - non-core object, as well as PersistentVolumeClaim - objects. * While dataSource ignores - disallowed values (dropping them), - dataSourceRef preserves all values, - and generates an error if a disallowed - value is specified. * While dataSource - only allows local objects, dataSourceRef - allows objects in any namespaces. - (Beta) Using this field requires - the AnyVolumeDataSource feature - gate to be enabled. (Alpha) Using - the namespace field of dataSourceRef - requires the CrossNamespaceVolumeDataSource - feature gate to be enabled.' properties: apiGroup: - description: APIGroup is the group - for the resource being referenced. - If APIGroup is not specified, - the specified Kind must be in - the core API group. For any - other third-party types, APIGroup - is required. type: string kind: - description: Kind is the type - of resource being referenced type: string name: - description: Name is the name - of resource being referenced type: string namespace: - description: Namespace is the - namespace of resource being - referenced Note that when a - namespace is specified, a gateway.networking.k8s.io/ReferenceGrant - object is required in the referent - namespace to allow that namespace's - owner to accept the reference. - See the ReferenceGrant documentation - for details. (Alpha) This field - requires the CrossNamespaceVolumeDataSource - feature gate to be enabled. type: string required: - kind - name type: object resources: - description: 'resources represents - the minimum resources the volume - should have. If RecoverVolumeExpansionFailure - feature is enabled users are allowed - to specify resource requirements - that are lower than previous value - but must still be higher than capacity - recorded in the status field of - the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -10300,10 +3685,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes - the maximum amount of compute - resources allowed. More info: - https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -10312,56 +3693,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes - the minimum amount of compute - resources required. If Requests - is omitted for a container, - it defaults to Limits if that - is explicitly specified, otherwise - to an implementation-defined - value. Requests cannot exceed - Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is a label query - over volumes to consider for binding. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a key, - and an operator that relates - the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator represents - a key's relationship to - a set of values. Valid - operators are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values is an - array of string values. - If the operator is In - or NotIn, the values array - must be non-empty. If - the operator is Exists - or DoesNotExist, the values - array must be empty. This - array is replaced during - a strategic merge patch. items: type: string type: array @@ -10375,61 +3718,16 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a - map of {key,value} pairs. A - single {key,value} in the matchLabels - map is equivalent to an element - of matchExpressions, whose key - field is "key", the operator - is "In", and the values array - contains only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName is - the name of the StorageClass required - by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName - may be used to set the VolumeAttributesClass - used by this claim. If specified, - the CSI driver will create or update - the volume with the attributes defined - in the corresponding VolumeAttributesClass. - This has a different purpose than - storageClassName, it can be changed - after the claim is created. An empty - string value means that no VolumeAttributesClass - will be applied to the claim but - it''s not allowed to reset this - field to empty string once it is - set. If unspecified and the PersistentVolumeClaim - is unbound, the default VolumeAttributesClass - will be set by the persistentvolume - controller if it exists. If the - resource referred to by volumeAttributesClass - does not exist, this PersistentVolumeClaim - will be set to a Pending state, - as reflected by the modifyVolumeStatus - field, until such as a resource - exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires - the VolumeAttributesClass feature - gate to be enabled.' type: string volumeMode: - description: volumeMode defines what - type of volume is required by the - claim. Value of Filesystem is implied - when not included in claim spec. type: string volumeName: - description: volumeName is the binding - reference to the PersistentVolume - backing this claim. type: string type: object required: @@ -10437,94 +3735,41 @@ spec: type: object type: object fc: - description: fc represents a Fibre Channel resource - that is attached to a kubelet's host machine - and then exposed to the pod. properties: fsType: - description: 'fsType is the filesystem type - to mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Implicitly inferred to be - "ext4" if unspecified. TODO: how do we prevent - errors in the filesystem from compromising - the machine' type: string lun: - description: 'lun is Optional: FC target lun - number' format: int32 type: integer readOnly: - description: 'readOnly is Optional: Defaults - to false (read/write). ReadOnly here will - force the ReadOnly setting in VolumeMounts.' type: boolean targetWWNs: - description: 'targetWWNs is Optional: FC target - worldwide names (WWNs)' items: type: string type: array x-kubernetes-list-type: atomic wwids: - description: 'wwids Optional: FC volume world - wide identifiers (wwids) Either wwids or - combination of targetWWNs and lun must be - set, but not both simultaneously.' items: type: string type: array x-kubernetes-list-type: atomic type: object flexVolume: - description: flexVolume represents a generic volume - resource that is provisioned/attached using - an exec based plugin. properties: driver: - description: driver is the name of the driver - to use for this volume. type: string fsType: - description: fsType is the filesystem type - to mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". The default filesystem depends - on FlexVolume script. type: string options: additionalProperties: type: string - description: 'options is Optional: this field - holds extra command options if any.' type: object readOnly: - description: 'readOnly is Optional: defaults - to false (read/write). ReadOnly here will - force the ReadOnly setting in VolumeMounts.' type: boolean secretRef: - description: 'secretRef is Optional: secretRef - is reference to the secret object containing - sensitive information to pass to the plugin - scripts. This may be empty if no secret - object is specified. If the secret object - contains more than one secret, all secrets - are passed to the plugin scripts.' properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic @@ -10532,192 +3777,79 @@ spec: - driver type: object flocker: - description: flocker represents a Flocker volume - attached to a kubelet's host machine. This depends - on the Flocker control service being running properties: datasetName: - description: datasetName is Name of the dataset - stored as metadata -> name on the dataset - for Flocker should be considered as deprecated type: string datasetUUID: - description: datasetUUID is the UUID of the - dataset. This is unique identifier of a - Flocker dataset type: string type: object gcePersistentDisk: - description: 'gcePersistentDisk represents a GCE - Disk resource that is attached to a kubelet''s - host machine and then exposed to the pod. More - info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' properties: fsType: - description: 'fsType is filesystem type of - the volume that you want to mount. Tip: - Ensure that the filesystem type is supported - by the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly inferred - to be "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string partition: - description: 'partition is the partition in - the volume that you want to mount. If omitted, - the default is to mount by volume name. - Examples: For volume /dev/sda1, you specify - the partition as "1". Similarly, the volume - partition for /dev/sda is "0" (or you can - leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' format: int32 type: integer pdName: - description: 'pdName is unique name of the - PD resource in GCE. Used to identify the - disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: string readOnly: - description: 'readOnly here will force the - ReadOnly setting in VolumeMounts. Defaults - to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: boolean required: - pdName type: object glusterfs: - description: 'glusterfs represents a Glusterfs - mount on the host that shares a pod''s lifetime. - More info: https://examples.k8s.io/volumes/glusterfs/README.md' properties: endpoints: - description: 'endpoints is the endpoint name - that details Glusterfs topology. More info: - https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string path: - description: 'path is the Glusterfs volume - path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string readOnly: - description: 'readOnly here will force the - Glusterfs volume to be mounted with read-only - permissions. Defaults to false. More info: - https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: boolean required: - endpoints - path type: object hostPath: - description: 'hostPath represents a pre-existing - file or directory on the host machine that is - directly exposed to the container. This is generally - used for system agents or other privileged things - that are allowed to see the host machine. Most - containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- TODO(jonesdl) We need to restrict who can - use host directory mounts and who can/can not - mount host directories as read/write.' properties: path: - description: 'path of the directory on the - host. If the path is a symlink, it will - follow the link to the real path. More info: - https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string type: - description: 'type for HostPath Volume Defaults - to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string required: - path type: object iscsi: - description: 'iscsi represents an ISCSI Disk resource - that is attached to a kubelet''s host machine - and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md' properties: chapAuthDiscovery: - description: chapAuthDiscovery defines whether - support iSCSI Discovery CHAP authentication type: boolean chapAuthSession: - description: chapAuthSession defines whether - support iSCSI Session CHAP authentication type: boolean fsType: - description: 'fsType is the filesystem type - of the volume that you want to mount. Tip: - Ensure that the filesystem type is supported - by the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly inferred - to be "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string initiatorName: - description: initiatorName is the custom iSCSI - Initiator Name. If initiatorName is specified - with iscsiInterface simultaneously, new - iSCSI interface : will be created for the connection. type: string iqn: - description: iqn is the target iSCSI Qualified - Name. type: string iscsiInterface: - description: iscsiInterface is the interface - Name that uses an iSCSI transport. Defaults - to 'default' (tcp). type: string lun: - description: lun represents iSCSI Target Lun - number. format: int32 type: integer portals: - description: portals is the iSCSI Target Portal - List. The portal is either an IP or ip_addr:port - if the port is other than default (typically - TCP ports 860 and 3260). items: type: string type: array x-kubernetes-list-type: atomic readOnly: - description: readOnly here will force the - ReadOnly setting in VolumeMounts. Defaults - to false. type: boolean secretRef: - description: secretRef is the CHAP Secret - for iSCSI target and initiator authentication properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic targetPortal: - description: targetPortal is iSCSI Target - Portal. The Portal is either an IP or ip_addr:port - if the port is other than default (typically - TCP ports 860 and 3260). type: string required: - iqn @@ -10725,182 +3857,68 @@ spec: - targetPortal type: object name: - description: 'name of the volume. Must be a DNS_LABEL - and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string nfs: - description: 'nfs represents an NFS mount on the - host that shares a pod''s lifetime More info: - https://kubernetes.io/docs/concepts/storage/volumes#nfs' properties: path: - description: 'path that is exported by the - NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string readOnly: - description: 'readOnly here will force the - NFS export to be mounted with read-only - permissions. Defaults to false. More info: - https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: boolean server: - description: 'server is the hostname or IP - address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string required: - path - server type: object persistentVolumeClaim: - description: 'persistentVolumeClaimVolumeSource - represents a reference to a PersistentVolumeClaim - in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: claimName: - description: 'claimName is the name of a PersistentVolumeClaim - in the same namespace as the pod using this - volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' type: string readOnly: - description: readOnly Will force the ReadOnly - setting in VolumeMounts. Default false. type: boolean required: - claimName type: object photonPersistentDisk: - description: photonPersistentDisk represents a - PhotonController persistent disk attached and - mounted on kubelets host machine properties: fsType: - description: fsType is the filesystem type - to mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Implicitly inferred to be - "ext4" if unspecified. type: string pdID: - description: pdID is the ID that identifies - Photon Controller persistent disk type: string required: - pdID type: object portworxVolume: - description: portworxVolume represents a portworx - volume attached and mounted on kubelets host - machine properties: fsType: - description: fSType represents the filesystem - type to mount Must be a filesystem type - supported by the host operating system. - Ex. "ext4", "xfs". Implicitly inferred to - be "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean volumeID: - description: volumeID uniquely identifies - a Portworx volume type: string required: - volumeID type: object projected: - description: projected items for all in one resources - secrets, configmaps, and downward API properties: defaultMode: - description: defaultMode are the mode bits - used to set permissions on created files - by default. Must be an octal value between - 0000 and 0777 or a decimal value between - 0 and 511. YAML accepts both octal and decimal - values, JSON requires decimal values for - mode bits. Directories within the path are - not affected by this setting. This might - be in conflict with other options that affect - the file mode, like fsGroup, and the result - can be other mode bits set. format: int32 type: integer sources: - description: sources is the list of volume - projections items: - description: Projection that may be projected - along with other supported volume types properties: clusterTrustBundle: - description: "ClusterTrustBundle allows - a pod to access the `.spec.trustBundle` - field of ClusterTrustBundle objects - in an auto-updating file. \n Alpha, - gated by the ClusterTrustBundleProjection - feature gate. \n ClusterTrustBundle - objects can either be selected by - name, or by the combination of signer - name and a label selector. \n Kubelet - performs aggressive normalization - of the PEM contents written into the - pod filesystem. Esoteric PEM features - such as inter-block comments and block - headers are stripped. Certificates - are deduplicated. The ordering of - certificates within the file is arbitrary, - and Kubelet may change the order over - time." properties: labelSelector: - description: Select all ClusterTrustBundles - that match this label selector. Only - has effect if signerName is set. Mutually-exclusive - with name. If unset, interpreted - as "match nothing". If set but - empty, interpreted as "match everything". properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator - represents a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is - an array of string values. - If the operator is In - or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the - values array must be - empty. This array is - replaced during a strategic - merge patch. items: type: string type: array @@ -10914,103 +3932,31 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in the - matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic name: - description: Select a single ClusterTrustBundle - by object name. Mutually-exclusive - with signerName and labelSelector. type: string optional: - description: If true, don't block - pod startup if the referenced - ClusterTrustBundle(s) aren't available. If - using name, then the named ClusterTrustBundle - is allowed not to exist. If using - signerName, then the combination - of signerName and labelSelector - is allowed to match zero ClusterTrustBundles. type: boolean path: - description: Relative path from - the volume root to write the bundle. type: string signerName: - description: Select all ClusterTrustBundles - that match this signer name. Mutually-exclusive - with name. The contents of all - selected ClusterTrustBundles will - be unified and deduplicated. type: string required: - path type: object configMap: - description: configMap information about - the configMap data to project properties: items: - description: items if unspecified, - each key-value pair in the Data - field of the referenced ConfigMap - will be projected into the volume - as a file whose name is the key - and content is the value. If specified, - the listed keys will be projected - into the specified paths, and - unlisted keys will not be present. - If a key is specified which is - not present in the ConfigMap, - the volume setup will error unless - it is marked optional. Paths must - be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key - to a path within a volume. properties: key: - description: key is the key - to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an - octal value between 0000 - and 0777 or a decimal value - between 0 and 511. YAML - accepts both octal and decimal - values, JSON requires decimal - values for mode bits. If - not specified, the volume - defaultMode will be used. - This might be in conflict - with other options that - affect the file mode, like - fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map - the key to. May not be an - absolute path. May not contain - the path element '..'. May - not start with the string - '..'. type: string required: - key @@ -11020,116 +3966,42 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether - the ConfigMap or its keys must - be defined type: boolean type: object x-kubernetes-map-type: atomic downwardAPI: - description: downwardAPI information - about the downwardAPI data to project properties: items: - description: Items is a list of - DownwardAPIVolume file items: - description: DownwardAPIVolumeFile - represents information to create - the file containing the pod - field properties: fieldRef: - description: 'Required: Selects - a field of the pod: only - annotations, labels, name, - namespace and uid are supported.' properties: apiVersion: - description: Version of - the schema the FieldPath - is written in terms - of, defaults to "v1". type: string fieldPath: - description: Path of the - field to select in the - specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode - bits used to set permissions - on this file, must be an - octal value between 0000 - and 0777 or a decimal value - between 0 and 511. YAML - accepts both octal and decimal - values, JSON requires decimal - values for mode bits. If - not specified, the volume - defaultMode will be used. - This might be in conflict - with other options that - affect the file mode, like - fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: 'Required: Path - is the relative path name - of the file to be created. - Must not be absolute or - contain the ''..'' path. - Must be utf-8 encoded. The - first item of the relative - path must not start with - ''..''' type: string resourceFieldRef: - description: 'Selects a resource - of the container: only resources - limits and requests (limits.cpu, - limits.memory, requests.cpu - and requests.memory) are - currently supported.' properties: containerName: - description: 'Container - name: required for volumes, - optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies - the output format of - the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: - resource to select' type: string required: - resource @@ -11142,60 +4014,16 @@ spec: x-kubernetes-list-type: atomic type: object secret: - description: secret information about - the secret data to project properties: items: - description: items if unspecified, - each key-value pair in the Data - field of the referenced Secret - will be projected into the volume - as a file whose name is the key - and content is the value. If specified, - the listed keys will be projected - into the specified paths, and - unlisted keys will not be present. - If a key is specified which is - not present in the Secret, the - volume setup will error unless - it is marked optional. Paths must - be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key - to a path within a volume. properties: key: - description: key is the key - to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an - octal value between 0000 - and 0777 or a decimal value - between 0 and 511. YAML - accepts both octal and decimal - values, JSON requires decimal - values for mode bits. If - not specified, the volume - defaultMode will be used. - This might be in conflict - with other options that - affect the file mode, like - fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map - the key to. May not be an - absolute path. May not contain - the path element '..'. May - not start with the string - '..'. type: string required: - key @@ -11205,61 +4033,19 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional field specify - whether the Secret or its key - must be defined type: boolean type: object x-kubernetes-map-type: atomic serviceAccountToken: - description: serviceAccountToken is - information about the serviceAccountToken - data to project properties: audience: - description: audience is the intended - audience of the token. A recipient - of a token must identify itself - with an identifier specified in - the audience of the token, and - otherwise should reject the token. - The audience defaults to the identifier - of the apiserver. type: string expirationSeconds: - description: expirationSeconds is - the requested duration of validity - of the service account token. - As the token approaches expiration, - the kubelet volume plugin will - proactively rotate the service - account token. The kubelet will - start trying to rotate the token - if the token is older than 80 - percent of its time to live or - if the token is older than 24 - hours.Defaults to 1 hour and must - be at least 10 minutes. format: int64 type: integer path: - description: path is the path relative - to the mount point of the file - to project the token into. type: string required: - path @@ -11269,179 +4055,79 @@ spec: x-kubernetes-list-type: atomic type: object quobyte: - description: quobyte represents a Quobyte mount - on the host that shares a pod's lifetime properties: group: - description: group to map volume access to - Default is no group type: string readOnly: - description: readOnly here will force the - Quobyte volume to be mounted with read-only - permissions. Defaults to false. type: boolean registry: - description: registry represents a single - or multiple Quobyte Registry services specified - as a string as host:port pair (multiple - entries are separated with commas) which - acts as the central registry for volumes type: string tenant: - description: tenant owning the given Quobyte - volume in the Backend Used with dynamically - provisioned Quobyte volumes, value is set - by the plugin type: string user: - description: user to map volume access to - Defaults to serivceaccount user type: string volume: - description: volume is a string that references - an already created Quobyte volume by name. type: string required: - registry - volume type: object rbd: - description: 'rbd represents a Rados Block Device - mount on the host that shares a pod''s lifetime. - More info: https://examples.k8s.io/volumes/rbd/README.md' properties: fsType: - description: 'fsType is the filesystem type - of the volume that you want to mount. Tip: - Ensure that the filesystem type is supported - by the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly inferred - to be "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string image: - description: 'image is the rados image name. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string keyring: - description: 'keyring is the path to key ring - for RBDUser. Default is /etc/ceph/keyring. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string monitors: - description: 'monitors is a collection of - Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic pool: - description: 'pool is the rados pool name. - Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string readOnly: - description: 'readOnly here will force the - ReadOnly setting in VolumeMounts. Defaults - to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: boolean secretRef: - description: 'secretRef is name of the authentication - secret for RBDUser. If provided overrides - keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is the rados user name. - Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string required: - image - monitors type: object scaleIO: - description: scaleIO represents a ScaleIO persistent - volume attached and mounted on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem type - to mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Default is "xfs". type: string gateway: - description: gateway is the host address of - the ScaleIO API Gateway. type: string protectionDomain: - description: protectionDomain is the name - of the ScaleIO Protection Domain for the - configured storage. type: string readOnly: - description: readOnly Defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean secretRef: - description: secretRef references to the secret - for ScaleIO user and other sensitive information. - If this is not provided, Login operation - will fail. properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic sslEnabled: - description: sslEnabled Flag enable/disable - SSL communication with Gateway, default - false type: boolean storageMode: - description: storageMode indicates whether - the storage for a volume should be ThickProvisioned - or ThinProvisioned. Default is ThinProvisioned. type: string storagePool: - description: storagePool is the ScaleIO Storage - Pool associated with the protection domain. type: string system: - description: system is the name of the storage - system as configured in ScaleIO. type: string volumeName: - description: volumeName is the name of a volume - already created in the ScaleIO system that - is associated with this volume source. type: string required: - gateway @@ -11449,65 +4135,19 @@ spec: - system type: object secret: - description: 'secret represents a secret that - should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' properties: defaultMode: - description: 'defaultMode is Optional: mode - bits used to set permissions on created - files by default. Must be an octal value - between 0000 and 0777 or a decimal value - between 0 and 511. YAML accepts both octal - and decimal values, JSON requires decimal - values for mode bits. Defaults to 0644. - Directories within the path are not affected - by this setting. This might be in conflict - with other options that affect the file - mode, like fsGroup, and the result can be - other mode bits set.' format: int32 type: integer items: - description: items If unspecified, each key-value - pair in the Data field of the referenced - Secret will be projected into the volume - as a file whose name is the key and content - is the value. If specified, the listed keys - will be projected into the specified paths, - and unlisted keys will not be present. If - a key is specified which is not present - in the Secret, the volume setup will error - unless it is marked optional. Paths must - be relative and may not contain the '..' - path or start with '..'. items: - description: Maps a string key to a path - within a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: mode - bits used to set permissions on this - file. Must be an octal value between - 0000 and 0777 or a decimal value between - 0 and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. If not - specified, the volume defaultMode - will be used. This might be in conflict - with other options that affect the - file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative path - of the file to map the key to. May - not be an absolute path. May not contain - the path element '..'. May not start - with the string '..'. type: string required: - key @@ -11516,93 +4156,37 @@ spec: type: array x-kubernetes-list-type: atomic optional: - description: optional field specify whether - the Secret or its keys must be defined type: boolean secretName: - description: 'secretName is the name of the - secret in the pod''s namespace to use. More - info: https://kubernetes.io/docs/concepts/storage/volumes#secret' type: string type: object storageos: - description: storageOS represents a StorageOS - volume attached and mounted on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem type - to mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Implicitly inferred to be - "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean secretRef: - description: secretRef specifies the secret - to use for obtaining the StorageOS API credentials. If - not specified, default values will be attempted. properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeName: - description: volumeName is the human-readable - name of the StorageOS volume. Volume names - are only unique within a namespace. type: string volumeNamespace: - description: volumeNamespace specifies the - scope of the volume within StorageOS. If - no namespace is specified then the Pod's - namespace will be used. This allows the - Kubernetes name scoping to be mirrored within - StorageOS for tighter integration. Set VolumeName - to any name to override the default behaviour. - Set to "default" if you are not using namespaces - within StorageOS. Namespaces that do not - pre-exist within StorageOS will be created. type: string type: object vsphereVolume: - description: vsphereVolume represents a vSphere - volume attached and mounted on kubelets host - machine properties: fsType: - description: fsType is filesystem type to - mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Implicitly inferred to be - "ext4" if unspecified. type: string storagePolicyID: - description: storagePolicyID is the storage - Policy Based Management (SPBM) profile ID - associated with the StoragePolicyName. type: string storagePolicyName: - description: storagePolicyName is the storage - Policy Based Management (SPBM) profile name. type: string volumePath: - description: volumePath is the path that identifies - vSphere volume vmdk type: string required: - volumePath @@ -11615,247 +4199,85 @@ spec: type: array type: object name: - description: Name specifies the name of the session type: string retryConfig: - description: RetryConfig specifies the behavior of retry in case - of a backup failure. properties: delay: - description: 'The amount of time to wait before next retry. - If you don''t specify this field, KubeStash will retry immediately. - Format: 30s, 2m, 1h etc.' type: string maxRetry: default: 1 - description: MaxRetry specifies the maximum number of times - KubeStash should retry the backup/restore process. By default, - KubeStash will retry only 1 time. format: int32 minimum: 1 type: integer type: object scheduler: - description: Scheduler specifies the configuration for backup - triggering CronJob properties: concurrencyPolicy: - description: 'Specifies how to treat concurrent executions - of a Job. Valid values are: - "Allow" (default): allows - CronJobs to run concurrently; - "Forbid": forbids concurrent - runs, skipping next run if previous run hasn''t finished - yet; - "Replace": cancels currently running job and replaces - it with a new one' type: string failedJobsHistoryLimit: - description: The number of failed finished jobs to retain. - Value must be non-negative integer. Defaults to 1. format: int32 type: integer jobTemplate: - description: Specifies the job that will be created when executing - a CronJob. properties: activeDeadlineSeconds: - description: Specifies the duration in seconds relative - to the startTime that the job may be continuously active - before the system tries to terminate it; value must - be positive integer. If a Job is suspended (at creation - or through an update), this timer will effectively be - stopped and reset when the Job is resumed again. format: int64 type: integer backoffLimit: - description: Specifies the number of retries before marking - this job failed. Defaults to 6 format: int32 type: integer completionMode: - description: "CompletionMode specifies how Pod completions - are tracked. It can be `NonIndexed` (default) or `Indexed`. - \n `NonIndexed` means that the Job is considered complete - when there have been .spec.completions successfully - completed Pods. Each Pod completion is homologous to - each other. \n `Indexed` means that the Pods of a Job - get an associated completion index from 0 to (.spec.completions - - 1), available in the annotation batch.kubernetes.io/job-completion-index. - The Job is considered complete when there is one successfully - completed Pod for each index. When value is `Indexed`, - .spec.completions must be specified and `.spec.parallelism` - must be less than or equal to 10^5. \n This field is - alpha-level and is only honored by servers that enable - the IndexedJob feature gate. More completion modes can - be added in the future. If the Job controller observes - a mode that it doesn't recognize, the controller skips - updates for the Job." type: string completions: - description: 'Specifies the desired number of successfully - finished pods the job should be run with. Setting to - nil means that the success of any pod signals the success - of all pods, and allows parallelism to have any positive - value. Setting to 1 means that parallelism is limited - to 1 and the success of that pod signals the success - of the job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/' format: int32 type: integer parallelism: - description: 'Specifies the maximum desired number of - pods the job should run at any given time. The actual - number of pods running in steady state will be less - than this number when ((.spec.completions - .status.successful) - < .spec.parallelism), i.e. when the work left to do - is less than max parallelism. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/' format: int32 type: integer suspend: - description: Suspend specifies whether the Job controller - should create Pods or not. If a Job is created with - suspend set to true, no Pods are created by the Job - controller. If a Job is suspended after creation (i.e. - the flag goes from false to true), the Job controller - will delete all active Pods associated with this Job. - Users must design their workload to gracefully handle - this. Suspending a Job will reset the StartTime field - of the Job, effectively resetting the ActiveDeadlineSeconds - timer too. This is an alpha field and requires the SuspendJob - feature gate to be enabled; otherwise this field may - not be set to true. Defaults to false. type: boolean template: - description: Describes the pod that will be created when - executing a job. properties: controller: - description: 'Workload controller''s metadata. More - info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key - value map stored with a resource that may be - set by external tools to store and retrieve - arbitrary metadata. They are not queryable and - should be preserved when modifying objects. - More info: http://kubernetes.io/docs/user-guide/annotations' type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that - can be used to organize and categorize (scope - and select) objects. May match selectors of - replication controllers and services. More info: - http://kubernetes.io/docs/user-guide/labels' type: object type: object metadata: - description: 'Standard object''s metadata. More info: - https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key - value map stored with a resource that may be - set by external tools to store and retrieve - arbitrary metadata. They are not queryable and - should be preserved when modifying objects. - More info: http://kubernetes.io/docs/user-guide/annotations' type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that - can be used to organize and categorize (scope - and select) objects. May match selectors of - replication controllers and services. More info: - http://kubernetes.io/docs/user-guide/labels' type: object type: object spec: - description: 'Specification of the desired behavior - of the pod. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' properties: affinity: - description: If specified, the pod's scheduling - constraints properties: nodeAffinity: - description: Describes node affinity scheduling - rules for the pod. properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer - to schedule pods to nodes that satisfy - the affinity expressions specified by - this field, but it may choose a node - that violates one or more of the expressions. - The node that is most preferred is the - one with the greatest sum of weights, - i.e. for each node that meets all of - the scheduling requirements (resource - request, requiredDuringScheduling affinity - expressions, etc.), compute a sum by - iterating through the elements of this - field and adding "weight" to the sum - if the node matches the corresponding - matchExpressions; the node(s) with the - highest sum are the most preferred. items: - description: An empty preferred scheduling - term matches all objects with implicit - weight 0 (i.e. it's a no-op). A null - preferred scheduling term matches - no objects (i.e. is also a no-op). properties: preference: - description: A node selector term, - associated with the corresponding - weight. properties: matchExpressions: - description: A list of node - selector requirements by node's - labels. items: - description: A node selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An array - of string values. If - the operator is In or - NotIn, the values array - must be non-empty. If - the operator is Exists - or DoesNotExist, the - values array must be - empty. If the operator - is Gt or Lt, the values - array must have a single - element, which will - be interpreted as an - integer. This array - is replaced during a - strategic merge patch. items: type: string type: array @@ -11867,46 +4289,13 @@ spec: type: array x-kubernetes-list-type: atomic matchFields: - description: A list of node - selector requirements by node's - fields. items: - description: A node selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An array - of string values. If - the operator is In or - NotIn, the values array - must be non-empty. If - the operator is Exists - or DoesNotExist, the - values array must be - empty. If the operator - is Gt or Lt, the values - array must have a single - element, which will - be interpreted as an - integer. This array - is replaced during a - strategic merge patch. items: type: string type: array @@ -11920,9 +4309,6 @@ spec: type: object x-kubernetes-map-type: atomic weight: - description: Weight associated with - matching the corresponding nodeSelectorTerm, - in the range 1-100. format: int32 type: integer required: @@ -11932,67 +4318,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements - specified by this field are not met - at scheduling time, the pod will not - be scheduled onto the node. If the affinity - requirements specified by this field - cease to be met at some point during - pod execution (e.g. due to an update), - the system may or may not try to eventually - evict the pod from its node. properties: nodeSelectorTerms: - description: Required. A list of node - selector terms. The terms are ORed. items: - description: A null or empty node - selector term matches no objects. - The requirements of them are ANDed. - The TopologySelectorTerm type - implements a subset of the NodeSelectorTerm. properties: matchExpressions: - description: A list of node - selector requirements by node's - labels. items: - description: A node selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An array - of string values. If - the operator is In or - NotIn, the values array - must be non-empty. If - the operator is Exists - or DoesNotExist, the - values array must be - empty. If the operator - is Gt or Lt, the values - array must have a single - element, which will - be interpreted as an - integer. This array - is replaced during a - strategic merge patch. items: type: string type: array @@ -12004,46 +4341,13 @@ spec: type: array x-kubernetes-list-type: atomic matchFields: - description: A list of node - selector requirements by node's - fields. items: - description: A node selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An array - of string values. If - the operator is In or - NotIn, the values array - must be non-empty. If - the operator is Exists - or DoesNotExist, the - values array must be - empty. If the operator - is Gt or Lt, the values - array must have a single - element, which will - be interpreted as an - integer. This array - is replaced during a - strategic merge patch. items: type: string type: array @@ -12064,87 +4368,22 @@ spec: x-kubernetes-map-type: atomic type: object podAffinity: - description: Describes pod affinity scheduling - rules (e.g. co-locate this pod in the same - node, zone, etc. as some other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer - to schedule pods to nodes that satisfy - the affinity expressions specified by - this field, but it may choose a node - that violates one or more of the expressions. - The node that is most preferred is the - one with the greatest sum of weights, - i.e. for each node that meets all of - the scheduling requirements (resource - request, requiredDuringScheduling affinity - expressions, etc.), compute a sum by - iterating through the elements of this - field and adding "weight" to the sum - if the node has pods which matches the - corresponding podAffinityTerm; the node(s) - with the highest sum are the most preferred. items: - description: The weights of all of the - matched WeightedPodAffinityTerm fields - are added per-node to find the most - preferred node(s) properties: podAffinityTerm: - description: Required. A pod affinity - term, associated with the corresponding - weight. properties: labelSelector: - description: A label query over - a set of resources, in this - case pods. If it's null, this - PodAffinityTerm matches with - no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key - and values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, Exists - and DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -12158,136 +4397,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an element - of matchExpressions, whose - key field is "key", the - operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming pod - labels, those key-value labels - are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods - which pods will be taken into - consideration for the incoming - pod's pod (anti) affinity. - Keys that don't exist in the - incoming pod labels will be - ignored. The default value - is empty. The same key is - forbidden to exist in both - matchLabelKeys and labelSelector. - Also, matchLabelKeys cannot - be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming pod - labels, those key-value labels - are merged with `labelSelector` - as `key notin (value)` to - select the group of existing - pods which pods will be taken - into consideration for the - incoming pod's pod (anti) - affinity. Keys that don't - exist in the incoming pod - labels will be ignored. The - default value is empty. The - same key is forbidden to exist - in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over - the set of namespaces that - the term applies to. The term - is applied to the union of - the namespaces selected by - this field and the ones listed - in the namespaces field. null - selector and null or empty - namespaces list means "this - pod's namespace". An empty - selector ({}) matches all - namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key - and values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, Exists - and DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -12301,57 +4433,20 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an element - of matchExpressions, whose - key field is "key", the - operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace - names that the term applies - to. The term is applied to - the union of the namespaces - listed in this field and the - ones selected by namespaceSelector. - null or empty namespaces list - and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should - be co-located (affinity) or - not co-located (anti-affinity) - with the pods matching the - labelSelector in the specified - namespaces, where co-located - is defined as running on a - node whose value of the label - with key topologyKey matches - that of any node on which - any of the selected pods is - running. Empty topologyKey - is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated with - matching the corresponding podAffinityTerm, - in the range 1-100. format: int32 type: integer required: @@ -12361,74 +4456,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements - specified by this field are not met - at scheduling time, the pod will not - be scheduled onto the node. If the affinity - requirements specified by this field - cease to be met at some point during - pod execution (e.g. due to a pod label - update), the system may or may not try - to eventually evict the pod from its - node. When there are multiple elements, - the lists of nodes corresponding to - each podAffinityTerm are intersected, - i.e. all terms must be satisfied. items: - description: Defines a set of pods (namely - those matching the labelSelector relative - to the given namespace(s)) that this - pod should be co-located (affinity) - or not co-located (anti-affinity) - with, where co-located is defined - as running on a node whose value of - the label with key matches - that of any node on which a pod of - the set of pods is running properties: labelSelector: - description: A label query over - a set of resources, in this case - pods. If it's null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator - represents a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is - an array of string values. - If the operator is In - or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the - values array must be - empty. This array is - replaced during a strategic - merge patch. items: type: string type: array @@ -12442,120 +4481,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in the - matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is a - set of pod label keys to select - which pods will be taken into - consideration. The keys are used - to lookup values from the incoming - pod labels, those key-value labels - are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, matchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys is - a set of pod label keys to select - which pods will be taken into - consideration. The keys are used - to lookup values from the incoming - pod labels, those key-value labels - are merged with `labelSelector` - as `key notin (value)` to select - the group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over - the set of namespaces that the - term applies to. The term is applied - to the union of the namespaces - selected by this field and the - ones listed in the namespaces - field. null selector and null - or empty namespaces list means - "this pod's namespace". An empty - selector ({}) matches all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator - represents a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is - an array of string values. - If the operator is In - or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the - values array must be - empty. This array is - replaced during a strategic - merge patch. items: type: string type: array @@ -12569,45 +4517,15 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in the - matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace names - that the term applies to. The - term is applied to the union of - the namespaces listed in this - field and the ones selected by - namespaceSelector. null or empty - namespaces list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be - co-located (affinity) or not co-located - (anti-affinity) with the pods - matching the labelSelector in - the specified namespaces, where - co-located is defined as running - on a node whose value of the label - with key topologyKey matches that - of any node on which any of the - selected pods is running. Empty - topologyKey is not allowed. type: string required: - topologyKey @@ -12616,87 +4534,22 @@ spec: x-kubernetes-list-type: atomic type: object podAntiAffinity: - description: Describes pod anti-affinity scheduling - rules (e.g. avoid putting this pod in the - same node, zone, etc. as some other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer - to schedule pods to nodes that satisfy - the anti-affinity expressions specified - by this field, but it may choose a node - that violates one or more of the expressions. - The node that is most preferred is the - one with the greatest sum of weights, - i.e. for each node that meets all of - the scheduling requirements (resource - request, requiredDuringScheduling anti-affinity - expressions, etc.), compute a sum by - iterating through the elements of this - field and adding "weight" to the sum - if the node has pods which matches the - corresponding podAffinityTerm; the node(s) - with the highest sum are the most preferred. items: - description: The weights of all of the - matched WeightedPodAffinityTerm fields - are added per-node to find the most - preferred node(s) properties: podAffinityTerm: - description: Required. A pod affinity - term, associated with the corresponding - weight. properties: labelSelector: - description: A label query over - a set of resources, in this - case pods. If it's null, this - PodAffinityTerm matches with - no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key - and values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, Exists - and DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -12710,136 +4563,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an element - of matchExpressions, whose - key field is "key", the - operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming pod - labels, those key-value labels - are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods - which pods will be taken into - consideration for the incoming - pod's pod (anti) affinity. - Keys that don't exist in the - incoming pod labels will be - ignored. The default value - is empty. The same key is - forbidden to exist in both - matchLabelKeys and labelSelector. - Also, matchLabelKeys cannot - be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming pod - labels, those key-value labels - are merged with `labelSelector` - as `key notin (value)` to - select the group of existing - pods which pods will be taken - into consideration for the - incoming pod's pod (anti) - affinity. Keys that don't - exist in the incoming pod - labels will be ignored. The - default value is empty. The - same key is forbidden to exist - in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over - the set of namespaces that - the term applies to. The term - is applied to the union of - the namespaces selected by - this field and the ones listed - in the namespaces field. null - selector and null or empty - namespaces list means "this - pod's namespace". An empty - selector ({}) matches all - namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key - and values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, Exists - and DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -12853,57 +4599,20 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an element - of matchExpressions, whose - key field is "key", the - operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace - names that the term applies - to. The term is applied to - the union of the namespaces - listed in this field and the - ones selected by namespaceSelector. - null or empty namespaces list - and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should - be co-located (affinity) or - not co-located (anti-affinity) - with the pods matching the - labelSelector in the specified - namespaces, where co-located - is defined as running on a - node whose value of the label - with key topologyKey matches - that of any node on which - any of the selected pods is - running. Empty topologyKey - is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated with - matching the corresponding podAffinityTerm, - in the range 1-100. format: int32 type: integer required: @@ -12913,74 +4622,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the anti-affinity requirements - specified by this field are not met - at scheduling time, the pod will not - be scheduled onto the node. If the anti-affinity - requirements specified by this field - cease to be met at some point during - pod execution (e.g. due to a pod label - update), the system may or may not try - to eventually evict the pod from its - node. When there are multiple elements, - the lists of nodes corresponding to - each podAffinityTerm are intersected, - i.e. all terms must be satisfied. items: - description: Defines a set of pods (namely - those matching the labelSelector relative - to the given namespace(s)) that this - pod should be co-located (affinity) - or not co-located (anti-affinity) - with, where co-located is defined - as running on a node whose value of - the label with key matches - that of any node on which a pod of - the set of pods is running properties: labelSelector: - description: A label query over - a set of resources, in this case - pods. If it's null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator - represents a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is - an array of string values. - If the operator is In - or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the - values array must be - empty. This array is - replaced during a strategic - merge patch. items: type: string type: array @@ -12994,120 +4647,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in the - matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is a - set of pod label keys to select - which pods will be taken into - consideration. The keys are used - to lookup values from the incoming - pod labels, those key-value labels - are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, matchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys is - a set of pod label keys to select - which pods will be taken into - consideration. The keys are used - to lookup values from the incoming - pod labels, those key-value labels - are merged with `labelSelector` - as `key notin (value)` to select - the group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over - the set of namespaces that the - term applies to. The term is applied - to the union of the namespaces - selected by this field and the - ones listed in the namespaces - field. null selector and null - or empty namespaces list means - "this pod's namespace". An empty - selector ({}) matches all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator - represents a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is - an array of string values. - If the operator is In - or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the - values array must be - empty. This array is - replaced during a strategic - merge patch. items: type: string type: array @@ -13121,45 +4683,15 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in the - matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace names - that the term applies to. The - term is applied to the union of - the namespaces listed in this - field and the ones selected by - namespaceSelector. null or empty - namespaces list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be - co-located (affinity) or not co-located - (anti-affinity) with the pods - matching the labelSelector in - the specified namespaces, where - co-located is defined as running - on a node whose value of the label - with key topologyKey matches that - of any node on which any of the - selected pods is running. Empty - topologyKey is not allowed. type: string required: - topologyKey @@ -13169,273 +4701,92 @@ spec: type: object type: object args: - description: 'Arguments to the entrypoint. The - docker image''s CMD is used if this is not provided. - Variable references $(VAR_NAME) are expanded - using the container''s environment. If a variable - cannot be resolved, the reference in the input - string will be unchanged. The $(VAR_NAME) syntax - can be escaped with a double $$, ie: $$(VAR_NAME). - Escaped references will never be expanded, regardless - of whether the variable exists or not. Cannot - be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' items: type: string type: array containerSecurityContext: - description: 'Security options the pod should - run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: allowPrivilegeEscalation: - description: 'AllowPrivilegeEscalation controls - whether a process can gain more privileges - than its parent process. This bool directly - controls if the no_new_privs flag will be - set on the container process. AllowPrivilegeEscalation - is true always when the container is: 1) - run as Privileged 2) has CAP_SYS_ADMIN Note - that this field cannot be set when spec.os.name - is windows.' type: boolean appArmorProfile: - description: appArmorProfile is the AppArmor - options to use by this container. If set, - this profile overrides the pod's appArmorProfile. - Note that this field cannot be set when - spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile loaded on the node that should - be used. The profile must be preconfigured - on the node to work. Must match the - loaded name of the profile. Must be - set if and only if type is "Localhost". type: string type: - description: 'type indicates which kind - of AppArmor profile will be applied. - Valid options are: Localhost - a profile - pre-loaded on the node. RuntimeDefault - - the container runtime''s default profile. - Unconfined - no AppArmor enforcement.' type: string required: - type type: object capabilities: - description: The capabilities to add/drop - when running containers. Defaults to the - default set of capabilities granted by the - container runtime. Note that this field - cannot be set when spec.os.name is windows. properties: add: - description: Added capabilities items: - description: Capability represent POSIX - capabilities type type: string type: array x-kubernetes-list-type: atomic drop: - description: Removed capabilities items: - description: Capability represent POSIX - capabilities type type: string type: array x-kubernetes-list-type: atomic type: object privileged: - description: Run container in privileged mode. - Processes in privileged containers are essentially - equivalent to root on the host. Defaults - to false. Note that this field cannot be - set when spec.os.name is windows. type: boolean procMount: - description: procMount denotes the type of - proc mount to use for the containers. The - default is DefaultProcMount which uses the - container runtime defaults for readonly - paths and masked paths. This requires the - ProcMountType feature flag to be enabled. - Note that this field cannot be set when - spec.os.name is windows. type: string readOnlyRootFilesystem: - description: Whether this container has a - read-only root filesystem. Default is false. - Note that this field cannot be set when - spec.os.name is windows. type: boolean runAsGroup: - description: The GID to run the entrypoint - of the container process. Uses runtime default - if unset. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. Note that this field cannot - be set when spec.os.name is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container - must run as a non-root user. If true, the - Kubelet will validate the image at runtime - to ensure that it does not run as UID 0 - (root) and fail to start the container if - it does. If unset or false, no such validation - will be performed. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. type: boolean runAsUser: - description: The UID to run the entrypoint - of the container process. Defaults to user - specified in image metadata if unspecified. - May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. Note that this field cannot - be set when spec.os.name is windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be applied - to the container. If unspecified, the container - runtime will allocate a random SELinux context - for each container. May also be set in - PodSecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. Note - that this field cannot be set when spec.os.name - is windows. properties: level: - description: Level is SELinux level label - that applies to the container. type: string role: - description: Role is a SELinux role label - that applies to the container. type: string type: - description: Type is a SELinux type label - that applies to the container. type: string user: - description: User is a SELinux user label - that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to use by - this container. If seccomp options are provided - at both the pod & container level, the container - options override the pod options. Note that - this field cannot be set when spec.os.name - is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile defined in a file on the node - should be used. The profile must be - preconfigured on the node to work. Must - be a descending path, relative to the - kubelet's configured seccomp profile - location. Must be set if type is "Localhost". - Must NOT be set for any other type. type: string type: - description: "type indicates which kind - of seccomp profile will be applied. - Valid options are: \n Localhost - a - profile defined in a file on the node - should be used. RuntimeDefault - the - container runtime default profile should - be used. Unconfined - no profile should - be applied." type: string required: - type type: object windowsOptions: - description: The Windows specific settings - applied to all containers. If unspecified, - the options from the PodSecurityContext - will be used. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. Note - that this field cannot be set when spec.os.name - is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is where - the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA credential - spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName is - the name of the GMSA credential spec - to use. type: string hostProcess: - description: HostProcess determines if - a container should be run as a 'Host - Process' container. All of a Pod's containers - must have the same effective HostProcess - value (it is not allowed to have a mix - of HostProcess containers and non-HostProcess - containers). In addition, if HostProcess - is true then HostNetwork must also be - set to true. type: boolean runAsUserName: - description: The UserName in Windows to - run the entrypoint of the container - process. Defaults to the user specified - in image metadata if unspecified. May - also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: string type: object type: object dnsConfig: - description: Specifies the DNS parameters of a - pod. Parameters specified here will be merged - to the generated DNS configuration based on - DNSPolicy. properties: nameservers: - description: A list of DNS name server IP - addresses. This will be appended to the - base nameservers generated from DNSPolicy. - Duplicated nameservers will be removed. items: type: string type: array x-kubernetes-list-type: atomic options: - description: A list of DNS resolver options. - This will be merged with the base options - generated from DNSPolicy. Duplicated entries - will be removed. Resolution options given - in Options will override those that appear - in the base DNSPolicy. items: - description: PodDNSConfigOption defines - DNS resolver options of a pod. properties: name: - description: Required. type: string value: type: string @@ -13443,169 +4794,71 @@ spec: type: array x-kubernetes-list-type: atomic searches: - description: A list of DNS search domains - for host-name lookup. This will be appended - to the base search paths generated from - DNSPolicy. Duplicated search paths will - be removed. items: type: string type: array x-kubernetes-list-type: atomic type: object dnsPolicy: - description: Set DNS policy for the pod. Defaults - to "ClusterFirst". Valid values are 'ClusterFirstWithHostNet', - 'ClusterFirst', 'Default' or 'None'. DNS parameters - given in DNSConfig will be merged with the policy - selected with DNSPolicy. To have DNS options - set along with hostNetwork, you have to specify - DNS policy explicitly to 'ClusterFirstWithHostNet'. type: string enableServiceLinks: - description: 'EnableServiceLinks indicates whether - information about services should be injected - into pod''s environment variables, matching - the syntax of Docker links. Optional: Defaults - to true.' type: boolean env: - description: List of environment variables to - set in the container. Cannot be updated. items: - description: EnvVar represents an environment - variable present in a Container. properties: name: - description: Name of the environment variable. - Must be a C_IDENTIFIER. type: string value: - description: 'Variable references $(VAR_NAME) - are expanded using the previously defined - environment variables in the container - and any service environment variables. - If a variable cannot be resolved, the - reference in the input string will be - unchanged. Double $$ are reduced to a - single $, which allows for escaping the - $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" - will produce the string literal "$(VAR_NAME)". - Escaped references will never be expanded, - regardless of whether the variable exists - or not. Defaults to "".' type: string valueFrom: - description: Source for the environment - variable's value. Cannot be used if value - is not empty. properties: configMapKeyRef: - description: Selects a key of a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the - ConfigMap or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field of the - pod: supports metadata.name, metadata.namespace, - `metadata.labels['''']`, `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, - status.hostIP, status.podIP, status.podIPs.' properties: apiVersion: - description: Version of the schema - the FieldPath is written in terms - of, defaults to "v1". type: string fieldPath: - description: Path of the field to - select in the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource of - the container: only resources limits - and requests (limits.cpu, limits.memory, - limits.ephemeral-storage, requests.cpu, - requests.memory and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: required - for volumes, optional for env - vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource - to select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret - in the pod's namespace properties: key: - description: The key of the secret - to select from. Must be a valid - secret key. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the - Secret or its key must be defined type: boolean required: - key @@ -13617,258 +4870,89 @@ spec: type: object type: array hostIPC: - description: 'Use the host''s ipc namespace. Optional: - Default to false.' type: boolean hostNetwork: - description: Host networking requested for this - pod. Use the host's network namespace. If this - option is set, the ports that will be used must - be specified. Default to false. type: boolean hostPID: - description: 'Use the host''s pid namespace. Optional: - Default to false.' type: boolean imagePullSecrets: - description: 'ImagePullSecrets is an optional - list of references to secrets in the same namespace - to use for pulling any of the images used by - this PodSpec. If specified, these secrets will - be passed to individual puller implementations - for them to use. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod' items: - description: LocalObjectReference contains enough - information to let you locate the referenced - object inside the same namespace. properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type with - an empty value here are almost certainly - wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic type: array initContainers: - description: 'List of initialization containers - belonging to the pod. Init containers are executed - in order prior to containers being started. - If any init container fails, the pod is considered - to have failed and is handled according to its - restartPolicy. The name for an init container - or normal container must be unique among all - containers. Init containers may not have Lifecycle - actions, Readiness probes, or Liveness probes. - The resourceRequirements of an init container - are taken into account during scheduling by - finding the highest request/limit for each resource - type, and then using the max of of that value - or the sum of the normal containers. Limits - are applied to init containers in a similar - fashion. Init containers cannot currently be - added or removed. Cannot be updated. More info: - https://kubernetes.io/docs/concepts/workloads/pods/init-containers/' items: - description: A single application container - that you want to run within a pod. properties: args: - description: 'Arguments to the entrypoint. - The container image''s CMD is used if - this is not provided. Variable references - $(VAR_NAME) are expanded using the container''s - environment. If a variable cannot be resolved, - the reference in the input string will - be unchanged. Double $$ are reduced to - a single $, which allows for escaping - the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" - will produce the string literal "$(VAR_NAME)". - Escaped references will never be expanded, - regardless of whether the variable exists - or not. Cannot be updated. More info: - https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' items: type: string type: array x-kubernetes-list-type: atomic command: - description: 'Entrypoint array. Not executed - within a shell. The container image''s - ENTRYPOINT is used if this is not provided. - Variable references $(VAR_NAME) are expanded - using the container''s environment. If - a variable cannot be resolved, the reference - in the input string will be unchanged. - Double $$ are reduced to a single $, which - allows for escaping the $(VAR_NAME) syntax: - i.e. "$$(VAR_NAME)" will produce the string - literal "$(VAR_NAME)". Escaped references - will never be expanded, regardless of - whether the variable exists or not. Cannot - be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' items: type: string type: array x-kubernetes-list-type: atomic env: - description: List of environment variables - to set in the container. Cannot be updated. items: - description: EnvVar represents an environment - variable present in a Container. properties: name: - description: Name of the environment - variable. Must be a C_IDENTIFIER. type: string value: - description: 'Variable references - $(VAR_NAME) are expanded using the - previously defined environment variables - in the container and any service - environment variables. If a variable - cannot be resolved, the reference - in the input string will be unchanged. - Double $$ are reduced to a single - $, which allows for escaping the - $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" - will produce the string literal - "$(VAR_NAME)". Escaped references - will never be expanded, regardless - of whether the variable exists or - not. Defaults to "".' type: string valueFrom: - description: Source for the environment - variable's value. Cannot be used - if value is not empty. properties: configMapKeyRef: - description: Selects a key of - a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the - referent. This field is - effectively required, but - due to backwards compatibility - is allowed to be empty. - Instances of this type with - an empty value here are - almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether - the ConfigMap or its key - must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field - of the pod: supports metadata.name, - metadata.namespace, `metadata.labels['''']`, - `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, - status.hostIP, status.podIP, - status.podIPs.' properties: apiVersion: - description: Version of the - schema the FieldPath is - written in terms of, defaults - to "v1". type: string fieldPath: - description: Path of the field - to select in the specified - API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource - of the container: only resources - limits and requests (limits.cpu, - limits.memory, limits.ephemeral-storage, - requests.cpu, requests.memory - and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: - required for volumes, optional - for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the - output format of the exposed - resources, defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource - to select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of - a secret in the pod's namespace properties: key: - description: The key of the - secret to select from. Must - be a valid secret key. type: string name: default: "" - description: 'Name of the - referent. This field is - effectively required, but - due to backwards compatibility - is allowed to be empty. - Instances of this type with - an empty value here are - almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether - the Secret or its key must - be defined type: boolean required: - key @@ -13883,72 +4967,25 @@ spec: - name x-kubernetes-list-type: map envFrom: - description: List of sources to populate - environment variables in the container. - The keys defined within a source must - be a C_IDENTIFIER. All invalid keys will - be reported as an event when the container - is starting. When a key exists in multiple - sources, the value associated with the - last source will take precedence. Values - defined by an Env with a duplicate key - will take precedence. Cannot be updated. items: - description: EnvFromSource represents - the source of a set of ConfigMaps properties: configMapRef: - description: The ConfigMap to select - from properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the - ConfigMap must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: - description: An optional identifier - to prepend to each key in the ConfigMap. - Must be a C_IDENTIFIER. type: string secretRef: - description: The Secret to select - from properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the - Secret must be defined type: boolean type: object x-kubernetes-map-type: atomic @@ -13956,88 +4993,31 @@ spec: type: array x-kubernetes-list-type: atomic image: - description: 'Container image name. More - info: https://kubernetes.io/docs/concepts/containers/images - This field is optional to allow higher - level config management to default or - override container images in workload - controllers like Deployments and StatefulSets.' type: string imagePullPolicy: - description: 'Image pull policy. One of - Always, Never, IfNotPresent. Defaults - to Always if :latest tag is specified, - or IfNotPresent otherwise. Cannot be updated. - More info: https://kubernetes.io/docs/concepts/containers/images#updating-images' type: string lifecycle: - description: Actions that the management - system should take in response to container - lifecycle events. Cannot be updated. properties: postStart: - description: 'PostStart is called immediately - after a container is created. If the - handler fails, the container is terminated - and restarted according to its restart - policy. Other management of the container - blocks until the hook completes. More - info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the - action to take. properties: command: - description: Command is the - command line to execute inside - the container, the working - directory for the command is - root ('/') in the container's - filesystem. The command is - simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, - you need to explicitly call - out to that shell. Exit status - of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the - http request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. - You probably want to set "Host" - in httpHeaders instead. type: string httpHeaders: - description: Custom headers - to set in the request. HTTP - allows repeated headers. items: - description: HTTPHeader describes - a custom header to be used - in HTTP probes properties: name: - description: The header - field name. This will - be canonicalized upon - output, so case-variant - names will be understood - as the same header. type: string value: - description: The header - field value type: string required: - name @@ -14046,141 +5026,58 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access - on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number - of the port to access on the - container. Number must be - in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for - connecting to the host. Defaults - to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the - duration that the container should - sleep before being terminated. properties: seconds: - description: Seconds is the - number of seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket - is NOT supported as a LifecycleHandler - and kept for the backward compatibility. - There are no validation of this - field and lifecycle hooks will - fail in runtime when tcp handler - is specified. properties: host: - description: 'Optional: Host - name to connect to, defaults - to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name - of the port to access on the - container. Number must be - in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object type: object preStop: - description: 'PreStop is called immediately - before a container is terminated due - to an API request or management event - such as liveness/startup probe failure, - preemption, resource contention, etc. - The handler is not called if the container - crashes or exits. The Pod''s termination - grace period countdown begins before - the PreStop hook is executed. Regardless - of the outcome of the handler, the - container will eventually terminate - within the Pod''s termination grace - period (unless delayed by finalizers). - Other management of the container - blocks until the hook completes or - until the termination grace period - is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the - action to take. properties: command: - description: Command is the - command line to execute inside - the container, the working - directory for the command is - root ('/') in the container's - filesystem. The command is - simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, - you need to explicitly call - out to that shell. Exit status - of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the - http request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. - You probably want to set "Host" - in httpHeaders instead. type: string httpHeaders: - description: Custom headers - to set in the request. HTTP - allows repeated headers. items: - description: HTTPHeader describes - a custom header to be used - in HTTP probes properties: name: - description: The header - field name. This will - be canonicalized upon - output, so case-variant - names will be understood - as the same header. type: string value: - description: The header - field value type: string required: - name @@ -14189,63 +5086,33 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access - on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number - of the port to access on the - container. Number must be - in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for - connecting to the host. Defaults - to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the - duration that the container should - sleep before being terminated. properties: seconds: - description: Seconds is the - number of seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket - is NOT supported as a LifecycleHandler - and kept for the backward compatibility. - There are no validation of this - field and lifecycle hooks will - fail in runtime when tcp handler - is specified. properties: host: - description: 'Optional: Host - name to connect to, defaults - to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name - of the port to access on the - container. Number must be - in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port @@ -14253,91 +5120,38 @@ spec: type: object type: object livenessProbe: - description: 'Periodic probe of container - liveness. Container will be restarted - if the probe fails. Cannot be updated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the - command is root ('/') in the - container's filesystem. The command - is simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, you - need to explicitly call out to - that shell. Exit status of 0 is - treated as live/healthy and non-zero - is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults to - 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action - involving a GRPC port. properties: port: - description: Port number of the - gRPC service. Number must be in - the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name - of the service to place in the - gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the - default behavior is defined by - gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in - httpHeaders instead. type: string httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood - as the same header. type: string value: - description: The header field - value type: string required: - name @@ -14346,152 +5160,62 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the - HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after - the container has started before liveness - probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) - to perform the probe. Default to 10 - seconds. Minimum value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. - Must be 1 for liveness and startup. - Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an - action involving a TCP port. properties: host: - description: 'Optional: Host name - to connect to, defaults to the - pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully - upon probe failure. The grace period - is the duration in seconds after the - processes running in the pod are sent - a termination signal and the time - when the processes are forcibly halted - with a kill signal. Set this value - longer than the expected cleanup time - for your process. If this value is - nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value - overrides the value provided by the - pod spec. Value must be non-negative - integer. The value zero indicates - stop immediately via the kill signal - (no opportunity to shut down). This - is a beta field and requires enabling - ProbeTerminationGracePeriod feature - gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after - which the probe times out. Defaults - to 1 second. Minimum value is 1. More - info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object name: - description: Name of the container specified - as a DNS_LABEL. Each container in a pod - must have a unique name (DNS_LABEL). Cannot - be updated. type: string ports: - description: List of ports to expose from - the container. Not specifying a port here - DOES NOT prevent that port from being - exposed. Any port which is listening on - the default "0.0.0.0" address inside a - container will be accessible from the - network. Modifying this array with strategic - merge patch may corrupt the data. For - more information See https://github.com/kubernetes/kubernetes/issues/108255. - Cannot be updated. items: - description: ContainerPort represents - a network port in a single container. properties: containerPort: - description: Number of port to expose - on the pod's IP address. This must - be a valid port number, 0 < x < - 65536. format: int32 type: integer hostIP: - description: What host IP to bind - the external port to. type: string hostPort: - description: Number of port to expose - on the host. If specified, this - must be a valid port number, 0 < - x < 65536. If HostNetwork is specified, - this must match ContainerPort. Most - containers do not need this. format: int32 type: integer name: - description: If specified, this must - be an IANA_SVC_NAME and unique within - the pod. Each named port in a pod - must have a unique name. Name for - the port that can be referred to - by services. type: string protocol: default: TCP - description: Protocol for port. Must - be UDP, TCP, or SCTP. Defaults to - "TCP". type: string required: - containerPort @@ -14502,91 +5226,38 @@ spec: - protocol x-kubernetes-list-type: map readinessProbe: - description: 'Periodic probe of container - service readiness. Container will be removed - from service endpoints if the probe fails. - Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the - command is root ('/') in the - container's filesystem. The command - is simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, you - need to explicitly call out to - that shell. Exit status of 0 is - treated as live/healthy and non-zero - is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults to - 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action - involving a GRPC port. properties: port: - description: Port number of the - gRPC service. Number must be in - the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name - of the service to place in the - gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the - default behavior is defined by - gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in - httpHeaders instead. type: string httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood - as the same header. type: string value: - description: The header field - value type: string required: - name @@ -14595,116 +5266,51 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the - HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after - the container has started before liveness - probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) - to perform the probe. Default to 10 - seconds. Minimum value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. - Must be 1 for liveness and startup. - Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an - action involving a TCP port. properties: host: - description: 'Optional: Host name - to connect to, defaults to the - pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully - upon probe failure. The grace period - is the duration in seconds after the - processes running in the pod are sent - a termination signal and the time - when the processes are forcibly halted - with a kill signal. Set this value - longer than the expected cleanup time - for your process. If this value is - nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value - overrides the value provided by the - pod spec. Value must be non-negative - integer. The value zero indicates - stop immediately via the kill signal - (no opportunity to shut down). This - is a beta field and requires enabling - ProbeTerminationGracePeriod feature - gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after - which the probe times out. Defaults - to 1 second. Minimum value is 1. More - info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object resizePolicy: - description: Resources resize policy for - the container. items: - description: ContainerResizePolicy represents - resource resize policy for the container. properties: resourceName: - description: 'Name of the resource - to which this resource resize policy - applies. Supported values: cpu, - memory.' type: string restartPolicy: - description: Restart policy to apply - when specified resource is resized. - If not specified, it defaults to - NotRequired. type: string required: - resourceName @@ -14713,28 +5319,11 @@ spec: type: array x-kubernetes-list-type: atomic resources: - description: 'Compute Resources required - by this container. Cannot be updated. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' properties: claims: - description: "Claims lists the names - of resources, defined in spec.resourceClaims, - that are used by this container. \n - This is an alpha field and requires - enabling the DynamicResourceAllocation - feature gate. \n This field is immutable. - It can only be set for containers." items: - description: ResourceClaim references - one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the - name of one entry in pod.spec.resourceClaims - of the Pod where this field - is used. It makes that resource - available inside a container. type: string required: - name @@ -14750,9 +5339,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum - amount of compute resources allowed. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -14761,388 +5347,115 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the - minimum amount of compute resources - required. If Requests is omitted for - a container, it defaults to Limits - if that is explicitly specified, otherwise - to an implementation-defined value. - Requests cannot exceed Limits. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object restartPolicy: - description: 'RestartPolicy defines the - restart behavior of individual containers - in a pod. This field may only be set for - init containers, and the only allowed - value is "Always". For non-init containers - or when this field is not specified, the - restart behavior is defined by the Pod''s - restart policy and the container type. - Setting the RestartPolicy as "Always" - for the init container will have the following - effect: this init container will be continually - restarted on exit until all regular containers - have terminated. Once all regular containers - have completed, all init containers with - restartPolicy "Always" will be shut down. - This lifecycle differs from normal init - containers and is often referred to as - a "sidecar" container. Although this init - container still starts in the init container - sequence, it does not wait for the container - to complete before proceeding to the next - init container. Instead, the next init - container starts immediately after this - init container is started, or after any - startupProbe has successfully completed.' type: string securityContext: - description: 'SecurityContext defines the - security options the container should - be run with. If set, the fields of SecurityContext - override the equivalent fields of PodSecurityContext. - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: allowPrivilegeEscalation: - description: 'AllowPrivilegeEscalation - controls whether a process can gain - more privileges than its parent process. - This bool directly controls if the - no_new_privs flag will be set on the - container process. AllowPrivilegeEscalation - is true always when the container - is: 1) run as Privileged 2) has CAP_SYS_ADMIN - Note that this field cannot be set - when spec.os.name is windows.' type: boolean appArmorProfile: - description: appArmorProfile is the - AppArmor options to use by this container. - If set, this profile overrides the - pod's appArmorProfile. Note that this - field cannot be set when spec.os.name - is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile loaded on the node that - should be used. The profile must - be preconfigured on the node to - work. Must match the loaded name - of the profile. Must be set if - and only if type is "Localhost". type: string type: - description: 'type indicates which - kind of AppArmor profile will - be applied. Valid options are: - Localhost - a profile pre-loaded - on the node. RuntimeDefault - - the container runtime''s default - profile. Unconfined - no AppArmor - enforcement.' type: string required: - type type: object capabilities: - description: The capabilities to add/drop - when running containers. Defaults - to the default set of capabilities - granted by the container runtime. - Note that this field cannot be set - when spec.os.name is windows. properties: add: - description: Added capabilities items: - description: Capability represent - POSIX capabilities type type: string type: array x-kubernetes-list-type: atomic drop: - description: Removed capabilities items: - description: Capability represent - POSIX capabilities type type: string type: array x-kubernetes-list-type: atomic type: object privileged: - description: Run container in privileged - mode. Processes in privileged containers - are essentially equivalent to root - on the host. Defaults to false. Note - that this field cannot be set when - spec.os.name is windows. type: boolean procMount: - description: procMount denotes the type - of proc mount to use for the containers. - The default is DefaultProcMount which - uses the container runtime defaults - for readonly paths and masked paths. - This requires the ProcMountType feature - flag to be enabled. Note that this - field cannot be set when spec.os.name - is windows. type: string readOnlyRootFilesystem: - description: Whether this container - has a read-only root filesystem. Default - is false. Note that this field cannot - be set when spec.os.name is windows. type: boolean runAsGroup: - description: The GID to run the entrypoint - of the container process. Uses runtime - default if unset. May also be set - in PodSecurityContext. If set in - both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is - windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container - must run as a non-root user. If true, - the Kubelet will validate the image - at runtime to ensure that it does - not run as UID 0 (root) and fail to - start the container if it does. If - unset or false, no such validation - will be performed. May also be set - in PodSecurityContext. If set in - both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: boolean runAsUser: - description: The UID to run the entrypoint - of the container process. Defaults - to user specified in image metadata - if unspecified. May also be set in - PodSecurityContext. If set in both - SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is - windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to - be applied to the container. If unspecified, - the container runtime will allocate - a random SELinux context for each - container. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is - windows. properties: level: - description: Level is SELinux level - label that applies to the container. type: string role: - description: Role is a SELinux role - label that applies to the container. type: string type: - description: Type is a SELinux type - label that applies to the container. type: string user: - description: User is a SELinux user - label that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to - use by this container. If seccomp - options are provided at both the pod - & container level, the container options - override the pod options. Note that - this field cannot be set when spec.os.name - is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile defined in a file on - the node should be used. The profile - must be preconfigured on the node - to work. Must be a descending - path, relative to the kubelet's - configured seccomp profile location. - Must be set if type is "Localhost". - Must NOT be set for any other - type. type: string type: - description: "type indicates which - kind of seccomp profile will be - applied. Valid options are: \n - Localhost - a profile defined - in a file on the node should be - used. RuntimeDefault - the container - runtime default profile should - be used. Unconfined - no profile - should be applied." type: string required: - type type: object windowsOptions: - description: The Windows specific settings - applied to all containers. If unspecified, - the options from the PodSecurityContext - will be used. If set in both SecurityContext - and PodSecurityContext, the value - specified in SecurityContext takes - precedence. Note that this field cannot - be set when spec.os.name is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec - is where the GMSA admission webhook - (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA - credential spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName - is the name of the GMSA credential - spec to use. type: string hostProcess: - description: HostProcess determines - if a container should be run as - a 'Host Process' container. All - of a Pod's containers must have - the same effective HostProcess - value (it is not allowed to have - a mix of HostProcess containers - and non-HostProcess containers). - In addition, if HostProcess is - true then HostNetwork must also - be set to true. type: boolean runAsUserName: - description: The UserName in Windows - to run the entrypoint of the container - process. Defaults to the user - specified in image metadata if - unspecified. May also be set in - PodSecurityContext. If set in - both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: string type: object type: object startupProbe: - description: 'StartupProbe indicates that - the Pod has successfully initialized. - If specified, no other probes are executed - until this completes successfully. If - this probe fails, the Pod will be restarted, - just as if the livenessProbe failed. This - can be used to provide different probe - parameters at the beginning of a Pod''s - lifecycle, when it might take a long time - to load data or warm a cache, than during - steady-state operation. This cannot be - updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the - command is root ('/') in the - container's filesystem. The command - is simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, you - need to explicitly call out to - that shell. Exit status of 0 is - treated as live/healthy and non-zero - is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults to - 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action - involving a GRPC port. properties: port: - description: Port number of the - gRPC service. Number must be in - the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name - of the service to place in the - gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the - default behavior is defined by - gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in - httpHeaders instead. type: string httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood - as the same header. type: string value: - description: The header field - value type: string required: - name @@ -15151,170 +5464,61 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the - HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after - the container has started before liveness - probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) - to perform the probe. Default to 10 - seconds. Minimum value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. - Must be 1 for liveness and startup. - Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an - action involving a TCP port. properties: host: - description: 'Optional: Host name - to connect to, defaults to the - pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully - upon probe failure. The grace period - is the duration in seconds after the - processes running in the pod are sent - a termination signal and the time - when the processes are forcibly halted - with a kill signal. Set this value - longer than the expected cleanup time - for your process. If this value is - nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value - overrides the value provided by the - pod spec. Value must be non-negative - integer. The value zero indicates - stop immediately via the kill signal - (no opportunity to shut down). This - is a beta field and requires enabling - ProbeTerminationGracePeriod feature - gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after - which the probe times out. Defaults - to 1 second. Minimum value is 1. More - info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object stdin: - description: Whether this container should - allocate a buffer for stdin in the container - runtime. If this is not set, reads from - stdin in the container will always result - in EOF. Default is false. type: boolean stdinOnce: - description: Whether the container runtime - should close the stdin channel after it - has been opened by a single attach. When - stdin is true the stdin stream will remain - open across multiple attach sessions. - If stdinOnce is set to true, stdin is - opened on container start, is empty until - the first client attaches to stdin, and - then remains open and accepts data until - the client disconnects, at which time - stdin is closed and remains closed until - the container is restarted. If this flag - is false, a container processes that reads - from stdin will never receive an EOF. - Default is false type: boolean terminationMessagePath: - description: 'Optional: Path at which the - file to which the container''s termination - message will be written is mounted into - the container''s filesystem. Message written - is intended to be brief final status, - such as an assertion failure message. - Will be truncated by the node if greater - than 4096 bytes. The total message length - across all containers will be limited - to 12kb. Defaults to /dev/termination-log. - Cannot be updated.' type: string terminationMessagePolicy: - description: Indicate how the termination - message should be populated. File will - use the contents of terminationMessagePath - to populate the container status message - on both success and failure. FallbackToLogsOnError - will use the last chunk of container log - output if the termination message file - is empty and the container exited with - an error. The log output is limited to - 2048 bytes or 80 lines, whichever is smaller. - Defaults to File. Cannot be updated. type: string tty: - description: Whether this container should - allocate a TTY for itself, also requires - 'stdin' to be true. Default is false. type: boolean volumeDevices: - description: volumeDevices is the list of - block devices to be used by the container. items: - description: volumeDevice describes a - mapping of a raw block device within - a container. properties: devicePath: - description: devicePath is the path - inside of the container that the - device will be mapped to. type: string name: - description: name must match the name - of a persistentVolumeClaim in the - pod type: string required: - devicePath @@ -15325,78 +5529,21 @@ spec: - devicePath x-kubernetes-list-type: map volumeMounts: - description: Pod volumes to mount into the - container's filesystem. Cannot be updated. items: - description: VolumeMount describes a mounting - of a Volume within a container. properties: mountPath: - description: Path within the container - at which the volume should be mounted. Must - not contain ':'. type: string mountPropagation: - description: mountPropagation determines - how mounts are propagated from the - host to container and the other - way around. When not set, MountPropagationNone - is used. This field is beta in 1.10. - When RecursiveReadOnly is set to - IfPossible or to Enabled, MountPropagation - must be None or unspecified (which - defaults to None). type: string name: - description: This must match the Name - of a Volume. type: string readOnly: - description: Mounted read-only if - true, read-write otherwise (false - or unspecified). Defaults to false. type: boolean recursiveReadOnly: - description: "RecursiveReadOnly specifies - whether read-only mounts should - be handled recursively. \n If ReadOnly - is false, this field has no meaning - and must be unspecified. \n If ReadOnly - is true, and this field is set to - Disabled, the mount is not made - recursively read-only. If this - field is set to IfPossible, the - mount is made recursively read-only, - if it is supported by the container - runtime. If this field is set to - Enabled, the mount is made recursively - read-only if it is supported by - the container runtime, otherwise - the pod will not be started and - an error will be generated to indicate - the reason. \n If this field is - set to IfPossible or Enabled, MountPropagation - must be set to None (or be unspecified, - which defaults to None). \n If this - field is not specified, it is treated - as an equivalent of Disabled." type: string subPath: - description: Path within the volume - from which the container's volume - should be mounted. Defaults to "" - (volume's root). type: string subPathExpr: - description: Expanded path within - the volume from which the container's - volume should be mounted. Behaves - similarly to SubPath but environment - variable references $(VAR_NAME) - are expanded using the container's - environment. Defaults to "" (volume's - root). SubPathExpr and SubPath are - mutually exclusive. type: string required: - mountPath @@ -15407,78 +5554,33 @@ spec: - mountPath x-kubernetes-list-type: map workingDir: - description: Container's working directory. - If not specified, the container runtime's - default will be used, which might be configured - in the container image. Cannot be updated. type: string required: - name type: object type: array lifecycle: - description: Actions that the management system - should take in response to container lifecycle - events. Cannot be updated. properties: postStart: - description: 'PostStart is called immediately - after a container is created. If the handler - fails, the container is terminated and restarted - according to its restart policy. Other management - of the container blocks until the hook completes. - More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it - is not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to - explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in httpHeaders - instead. type: string httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood as - the same header. type: string value: - description: The header field - value type: string required: - name @@ -15487,131 +5589,58 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the - HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 to - 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration - that the container should sleep before - being terminated. properties: seconds: - description: Seconds is the number - of seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is - NOT supported as a LifecycleHandler - and kept for the backward compatibility. - There are no validation of this field - and lifecycle hooks will fail in runtime - when tcp handler is specified. properties: host: - description: 'Optional: Host name - to connect to, defaults to the pod - IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 to - 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object type: object preStop: - description: 'PreStop is called immediately - before a container is terminated due to - an API request or management event such - as liveness/startup probe failure, preemption, - resource contention, etc. The handler is - not called if the container crashes or exits. - The Pod''s termination grace period countdown - begins before the PreStop hook is executed. - Regardless of the outcome of the handler, - the container will eventually terminate - within the Pod''s termination grace period - (unless delayed by finalizers). Other management - of the container blocks until the hook completes - or until the termination grace period is - reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it - is not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to - explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in httpHeaders - instead. type: string httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood as - the same header. type: string value: - description: The header field - value type: string required: - name @@ -15620,59 +5649,33 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the - HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 to - 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration - that the container should sleep before - being terminated. properties: seconds: - description: Seconds is the number - of seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is - NOT supported as a LifecycleHandler - and kept for the backward compatibility. - There are no validation of this field - and lifecycle hooks will fail in runtime - when tcp handler is specified. properties: host: - description: 'Optional: Host name - to connect to, defaults to the pod - IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 to - 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port @@ -15680,85 +5683,38 @@ spec: type: object type: object livenessProbe: - description: 'Periodic probe of container liveness. - Container will be restarted if the probe fails. - Controllers may set default LivenessProbe if - no liveness probe is provided. To ignore defaulting, - set the value to empty LivenessProbe "{}". Cannot - be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to - take. properties: command: - description: Command is the command line - to execute inside the container, the - working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it is - not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to explicitly - call out to that shell. Exit status - of 0 is treated as live/healthy and - non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed after - having succeeded. Defaults to 3. Minimum - value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving - a GRPC port. properties: port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name of the - service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default - behavior is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http request - to perform. properties: host: - description: Host name to connect to, - defaults to the pod IP. You probably - want to set "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated headers. items: - description: HTTPHeader describes a - custom header to be used in HTTP probes properties: name: - description: The header field name. - This will be canonicalized upon - output, so case-variant names - will be understood as the same - header. type: string value: - description: The header field value type: string required: - name @@ -15767,222 +5723,95 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP - server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the - container has started before liveness probes - are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform - the probe. Default to 10 seconds. Minimum - value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. Must - be 1 for liveness and startup. Minimum value - is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action - involving a TCP port. properties: host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully upon - probe failure. The grace period is the duration - in seconds after the processes running in - the pod are sent a termination signal and - the time when the processes are forcibly - halted with a kill signal. Set this value - longer than the expected cleanup time for - your process. If this value is nil, the - pod's terminationGracePeriodSeconds will - be used. Otherwise, this value overrides - the value provided by the pod spec. Value - must be non-negative integer. The value - zero indicates stop immediately via the - kill signal (no opportunity to shut down). - This is a beta field and requires enabling - ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which - the probe times out. Defaults to 1 second. - Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object nodeSelector: additionalProperties: type: string - description: 'NodeSelector is a selector which - must be true for the pod to fit on a node. Selector - which must match a node''s labels for the pod - to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/' type: object x-kubernetes-map-type: atomic podPlacementPolicy: - description: PodPlacementPolicy is the reference - of the podPlacementPolicy properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other - useful fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic priority: - description: The priority value. Various system - components use this field to find the priority - of the pod. When Priority Admission Controller - is enabled, it prevents users from setting this - field. The admission controller populates this - field from PriorityClassName. The higher the - value, the higher the priority. format: int32 type: integer priorityClassName: - description: If specified, indicates the pod's - priority. "system-node-critical" and "system-cluster-critical" - are two special keywords which indicate the - highest priorities with the former being the - highest priority. Any other name must be defined - by creating a PriorityClass object with that - name. If not specified, the pod priority will - be default or zero if there is no default. type: string readinessProbe: - description: 'Periodic probe of container service - readiness. Container will be removed from service - endpoints if the probe fails. Cannot be updated. - Controllers may set default ReadinessProbe if - no readyness probe is provided. To ignore defaulting, - set the value to empty ReadynessProbe "{}". - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to - take. properties: command: - description: Command is the command line - to execute inside the container, the - working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it is - not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to explicitly - call out to that shell. Exit status - of 0 is treated as live/healthy and - non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed after - having succeeded. Defaults to 3. Minimum - value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving - a GRPC port. properties: port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name of the - service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default - behavior is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http request - to perform. properties: host: - description: Host name to connect to, - defaults to the pod IP. You probably - want to set "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated headers. items: - description: HTTPHeader describes a - custom header to be used in HTTP probes properties: name: - description: The header field name. - This will be canonicalized upon - output, so case-variant names - will be understood as the same - header. type: string value: - description: The header field value type: string required: - name @@ -15991,115 +5820,51 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP - server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the - container has started before liveness probes - are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform - the probe. Default to 10 seconds. Minimum - value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. Must - be 1 for liveness and startup. Minimum value - is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action - involving a TCP port. properties: host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully upon - probe failure. The grace period is the duration - in seconds after the processes running in - the pod are sent a termination signal and - the time when the processes are forcibly - halted with a kill signal. Set this value - longer than the expected cleanup time for - your process. If this value is nil, the - pod's terminationGracePeriodSeconds will - be used. Otherwise, this value overrides - the value provided by the pod spec. Value - must be non-negative integer. The value - zero indicates stop immediately via the - kill signal (no opportunity to shut down). - This is a beta field and requires enabling - ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which - the probe times out. Defaults to 1 second. - Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object resources: - description: Compute Resources required by the - sidecar container. properties: claims: - description: "Claims lists the names of resources, - defined in spec.resourceClaims, that are - used by this container. \n This is an alpha - field and requires enabling the DynamicResourceAllocation - feature gate. \n This field is immutable. - It can only be set for containers." items: - description: ResourceClaim references one - entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name - of one entry in pod.spec.resourceClaims - of the Pod where this field is used. - It makes that resource available inside - a container. type: string required: - name @@ -16115,9 +5880,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum - amount of compute resources allowed. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -16126,216 +5888,68 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum - amount of compute resources required. If - Requests is omitted for a container, it - defaults to Limits if that is explicitly - specified, otherwise to an implementation-defined - value. Requests cannot exceed Limits. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object runtimeClassName: - description: 'RuntimeClassName refers to a RuntimeClass - object in the node.k8s.io group, which should - be used to run this pod. If no RuntimeClass - resource matches the named class, the pod will - not be run. If unset or empty, the "legacy" - RuntimeClass will be used, which is an implicit - class with an empty definition that uses the - default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class' type: string schedulerName: - description: If specified, the pod will be dispatched - by specified scheduler. If not specified, the - pod will be dispatched by default scheduler. type: string securityContext: - description: 'SecurityContext holds pod-level - security attributes and common container settings. - Optional: Defaults to empty. See type description - for default values of each field.' properties: appArmorProfile: - description: appArmorProfile is the AppArmor - options to use by the containers in this - pod. Note that this field cannot be set - when spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile loaded on the node that should - be used. The profile must be preconfigured - on the node to work. Must match the - loaded name of the profile. Must be - set if and only if type is "Localhost". type: string type: - description: 'type indicates which kind - of AppArmor profile will be applied. - Valid options are: Localhost - a profile - pre-loaded on the node. RuntimeDefault - - the container runtime''s default profile. - Unconfined - no AppArmor enforcement.' type: string required: - type type: object fsGroup: - description: "A special supplemental group - that applies to all containers in a pod. - Some volume types allow the Kubelet to change - the ownership of that volume to be owned - by the pod: \n 1. The owning GID will be - the FSGroup 2. The setgid bit is set (new - files created in the volume will be owned - by FSGroup) 3. The permission bits are OR'd - with rw-rw---- \n If unset, the Kubelet - will not modify the ownership and permissions - of any volume. Note that this field cannot - be set when spec.os.name is windows." format: int64 type: integer fsGroupChangePolicy: - description: 'fsGroupChangePolicy defines - behavior of changing ownership and permission - of the volume before being exposed inside - Pod. This field will only apply to volume - types which support fsGroup based ownership(and - permissions). It will have no effect on - ephemeral volume types such as: secret, - configmaps and emptydir. Valid values are - "OnRootMismatch" and "Always". If not specified, - "Always" is used. Note that this field cannot - be set when spec.os.name is windows.' type: string runAsGroup: - description: The GID to run the entrypoint - of the container process. Uses runtime default - if unset. May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence for that container. Note that - this field cannot be set when spec.os.name - is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container - must run as a non-root user. If true, the - Kubelet will validate the image at runtime - to ensure that it does not run as UID 0 - (root) and fail to start the container if - it does. If unset or false, no such validation - will be performed. May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. type: boolean runAsUser: - description: The UID to run the entrypoint - of the container process. Defaults to user - specified in image metadata if unspecified. - May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence for that container. Note that - this field cannot be set when spec.os.name - is windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be applied - to all containers. If unspecified, the container - runtime will allocate a random SELinux context - for each container. May also be set in - SecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence for - that container. Note that this field cannot - be set when spec.os.name is windows. properties: level: - description: Level is SELinux level label - that applies to the container. type: string role: - description: Role is a SELinux role label - that applies to the container. type: string type: - description: Type is a SELinux type label - that applies to the container. type: string user: - description: User is a SELinux user label - that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to use by - the containers in this pod. Note that this - field cannot be set when spec.os.name is - windows. properties: localhostProfile: - description: localhostProfile indicates - a profile defined in a file on the node - should be used. The profile must be - preconfigured on the node to work. Must - be a descending path, relative to the - kubelet's configured seccomp profile - location. Must be set if type is "Localhost". - Must NOT be set for any other type. type: string type: - description: "type indicates which kind - of seccomp profile will be applied. - Valid options are: \n Localhost - a - profile defined in a file on the node - should be used. RuntimeDefault - the - container runtime default profile should - be used. Unconfined - no profile should - be applied." type: string required: - type type: object supplementalGroups: - description: A list of groups applied to the - first process run in each container, in - addition to the container's primary GID, - the fsGroup (if specified), and group memberships - defined in the container image for the uid - of the container process. If unspecified, - no additional groups are added to any container. - Note that group memberships defined in the - container image for the uid of the container - process are still effective, even if they - are not included in this list. Note that - this field cannot be set when spec.os.name - is windows. items: format: int64 type: integer type: array x-kubernetes-list-type: atomic sysctls: - description: Sysctls hold a list of namespaced - sysctls used for the pod. Pods with unsupported - sysctls (by the container runtime) might - fail to launch. Note that this field cannot - be set when spec.os.name is windows. items: - description: Sysctl defines a kernel parameter - to be set properties: name: - description: Name of a property to set type: string value: - description: Value of a property to - set type: string required: - name @@ -16344,178 +5958,53 @@ spec: type: array x-kubernetes-list-type: atomic windowsOptions: - description: The Windows specific settings - applied to all containers. If unspecified, - the options within a container's SecurityContext - will be used. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. Note - that this field cannot be set when spec.os.name - is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is where - the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA credential - spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName is - the name of the GMSA credential spec - to use. type: string hostProcess: - description: HostProcess determines if - a container should be run as a 'Host - Process' container. All of a Pod's containers - must have the same effective HostProcess - value (it is not allowed to have a mix - of HostProcess containers and non-HostProcess - containers). In addition, if HostProcess - is true then HostNetwork must also be - set to true. type: boolean runAsUserName: - description: The UserName in Windows to - run the entrypoint of the container - process. Defaults to the user specified - in image metadata if unspecified. May - also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: string type: object type: object serviceAccountName: - description: 'ServiceAccountName is the name of - the ServiceAccount to use to run this pod. More - info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/' type: string shareProcessNamespace: - description: 'Share a single process namespace - between all of the containers in a pod. When - this is set containers will be able to view - and signal processes from other containers in - the same pod, and the first process in each - container will not be assigned PID 1. HostPID - and ShareProcessNamespace cannot both be set. - Optional: Default to false.' type: boolean terminationGracePeriodSeconds: - description: Optional duration in seconds the - pod needs to terminate gracefully. May be decreased - in delete request. Value must be non-negative - integer. The value zero indicates stop immediately - via the kill signal (no opportunity to shut - down). If this value is nil, the default grace - period will be used instead. The grace period - is the duration in seconds after the processes - running in the pod are sent a termination signal - and the time when the processes are forcibly - halted with a kill signal. Set this value longer - than the expected cleanup time for your process. - Defaults to 30 seconds. format: int64 type: integer tolerations: - description: If specified, the pod's tolerations. items: - description: The pod this Toleration is attached - to tolerates any taint that matches the triple - using the matching operator - . properties: effect: - description: Effect indicates the taint - effect to match. Empty means match all - taint effects. When specified, allowed - values are NoSchedule, PreferNoSchedule - and NoExecute. type: string key: - description: Key is the taint key that the - toleration applies to. Empty means match - all taint keys. If the key is empty, operator - must be Exists; this combination means - to match all values and all keys. type: string operator: - description: Operator represents a key's - relationship to the value. Valid operators - are Exists and Equal. Defaults to Equal. - Exists is equivalent to wildcard for value, - so that a pod can tolerate all taints - of a particular category. type: string tolerationSeconds: - description: TolerationSeconds represents - the period of time the toleration (which - must be of effect NoExecute, otherwise - this field is ignored) tolerates the taint. - By default, it is not set, which means - tolerate the taint forever (do not evict). - Zero and negative values will be treated - as 0 (evict immediately) by the system. format: int64 type: integer value: - description: Value is the taint value the - toleration matches to. If the operator - is Exists, the value should be empty, - otherwise just a regular string. type: string type: object type: array topologySpreadConstraints: - description: TopologySpreadConstraints describes - how a group of pods ought to spread across topology - domains. Scheduler will schedule pods in a way - which abides by the constraints. All topologySpreadConstraints - are ANDed. items: - description: TopologySpreadConstraint specifies - how to spread matching pods among the given - topology. properties: labelSelector: - description: LabelSelector is used to find - matching pods. Pods that match this label - selector are counted to determine the - number of pods in their corresponding - topology domain. properties: matchExpressions: - description: matchExpressions is a list - of label selector requirements. The - requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to a set - of values. Valid operators are - In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array - of string values. If the operator - is In or NotIn, the values array - must be non-empty. If the operator - is Exists or DoesNotExist, the - values array must be empty. - This array is replaced during - a strategic merge patch. items: type: string type: array @@ -16529,172 +6018,27 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of - {key,value} pairs. A single {key,value} - in the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: "MatchLabelKeys is a set of - pod label keys to select the pods over - which spreading will be calculated. The - keys are used to lookup values from the - incoming pod labels, those key-value labels - are ANDed with labelSelector to select - the group of existing pods over which - spreading will be calculated for the incoming - pod. The same key is forbidden to exist - in both MatchLabelKeys and LabelSelector. - MatchLabelKeys cannot be set when LabelSelector - isn't set. Keys that don't exist in the - incoming pod labels will be ignored. A - null or empty list means only match against - labelSelector. \n This is a beta field - and requires the MatchLabelKeysInPodTopologySpread - feature gate to be enabled (enabled by - default)." items: type: string type: array x-kubernetes-list-type: atomic maxSkew: - description: 'MaxSkew describes the degree - to which pods may be unevenly distributed. - When `whenUnsatisfiable=DoNotSchedule`, - it is the maximum permitted difference - between the number of matching pods in - the target topology and the global minimum. - The global minimum is the minimum number - of matching pods in an eligible domain - or zero if the number of eligible domains - is less than MinDomains. For example, - in a 3-zone cluster, MaxSkew is set to - 1, and pods with the same labelSelector - spread as 2/2/1: In this case, the global - minimum is 1. | zone1 | zone2 | zone3 - | | P P | P P | P | - if MaxSkew - is 1, incoming pod can only be scheduled - to zone3 to become 2/2/2; scheduling it - onto zone1(zone2) would make the ActualSkew(3-1) - on zone1(zone2) violate MaxSkew(1). - - if MaxSkew is 2, incoming pod can be scheduled - onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, - it is used to give higher precedence to - topologies that satisfy it. It''s a required - field. Default value is 1 and 0 is not - allowed.' format: int32 type: integer minDomains: - description: "MinDomains indicates a minimum - number of eligible domains. When the number - of eligible domains with matching topology - keys is less than minDomains, Pod Topology - Spread treats \"global minimum\" as 0, - and then the calculation of Skew is performed. - And when the number of eligible domains - with matching topology keys equals or - greater than minDomains, this value has - no effect on scheduling. As a result, - when the number of eligible domains is - less than minDomains, scheduler won't - schedule more than maxSkew Pods to those - domains. If value is nil, the constraint - behaves as if MinDomains is equal to 1. - Valid values are integers greater than - 0. When value is not nil, WhenUnsatisfiable - must be DoNotSchedule. \n For example, - in a 3-zone cluster, MaxSkew is set to - 2, MinDomains is set to 5 and pods with - the same labelSelector spread as 2/2/2: - | zone1 | zone2 | zone3 | | P P | P - P | P P | The number of domains is - less than 5(MinDomains), so \"global minimum\" - is treated as 0. In this situation, new - pod with the same labelSelector cannot - be scheduled, because computed skew will - be 3(3 - 0) if new Pod is scheduled to - any of the three zones, it will violate - MaxSkew." format: int32 type: integer nodeAffinityPolicy: - description: "NodeAffinityPolicy indicates - how we will treat Pod's nodeAffinity/nodeSelector - when calculating pod topology spread skew. - Options are: - Honor: only nodes matching - nodeAffinity/nodeSelector are included - in the calculations. - Ignore: nodeAffinity/nodeSelector - are ignored. All nodes are included in - the calculations. \n If this value is - nil, the behavior is equivalent to the - Honor policy. This is a beta-level feature - default enabled by the NodeInclusionPolicyInPodTopologySpread - feature flag." type: string nodeTaintsPolicy: - description: "NodeTaintsPolicy indicates - how we will treat node taints when calculating - pod topology spread skew. Options are: - - Honor: nodes without taints, along with - tainted nodes for which the incoming pod - has a toleration, are included. - Ignore: - node taints are ignored. All nodes are - included. \n If this value is nil, the - behavior is equivalent to the Ignore policy. - This is a beta-level feature default enabled - by the NodeInclusionPolicyInPodTopologySpread - feature flag." type: string topologyKey: - description: TopologyKey is the key of node - labels. Nodes that have a label with this - key and identical values are considered - to be in the same topology. We consider - each as a "bucket", and try - to put balanced number of pods into each - bucket. We define a domain as a particular - instance of a topology. Also, we define - an eligible domain as a domain whose nodes - meet the requirements of nodeAffinityPolicy - and nodeTaintsPolicy. e.g. If TopologyKey - is "kubernetes.io/hostname", each Node - is a domain of that topology. And, if - TopologyKey is "topology.kubernetes.io/zone", - each zone is a domain of that topology. - It's a required field. type: string whenUnsatisfiable: - description: 'WhenUnsatisfiable indicates - how to deal with a pod if it doesn''t - satisfy the spread constraint. - DoNotSchedule - (default) tells the scheduler not to schedule - it. - ScheduleAnyway tells the scheduler - to schedule the pod in any location, but - giving higher precedence to topologies - that would help reduce the skew. A constraint - is considered "Unsatisfiable" for an incoming - pod if and only if every possible node - assignment for that pod would violate - "MaxSkew" on some topology. For example, - in a 3-zone cluster, MaxSkew is set to - 1, and pods with the same labelSelector - spread as 3/1/1: | zone1 | zone2 | zone3 - | | P P P | P | P | If WhenUnsatisfiable - is set to DoNotSchedule, incoming pod - can only be scheduled to zone2(zone3) - to become 3/2/1(3/1/2) as ActualSkew(2-1) - on zone2(zone3) satisfies MaxSkew(1). - In other words, the cluster can still - be imbalanced, but scheduler won''t make - it *more* imbalanced. It''s a required - field.' type: string required: - maxSkew @@ -16707,72 +6051,21 @@ spec: - whenUnsatisfiable x-kubernetes-list-type: map volumeMounts: - description: Pod volumes to mount into the container's - filesystem. Cannot be updated. items: - description: VolumeMount describes a mounting - of a Volume within a container. properties: mountPath: - description: Path within the container at - which the volume should be mounted. Must - not contain ':'. type: string mountPropagation: - description: mountPropagation determines - how mounts are propagated from the host - to container and the other way around. - When not set, MountPropagationNone is - used. This field is beta in 1.10. When - RecursiveReadOnly is set to IfPossible - or to Enabled, MountPropagation must be - None or unspecified (which defaults to - None). type: string name: - description: This must match the Name of - a Volume. type: string readOnly: - description: Mounted read-only if true, - read-write otherwise (false or unspecified). - Defaults to false. type: boolean recursiveReadOnly: - description: "RecursiveReadOnly specifies - whether read-only mounts should be handled - recursively. \n If ReadOnly is false, - this field has no meaning and must be - unspecified. \n If ReadOnly is true, and - this field is set to Disabled, the mount - is not made recursively read-only. If - this field is set to IfPossible, the mount - is made recursively read-only, if it is - supported by the container runtime. If - this field is set to Enabled, the mount - is made recursively read-only if it is - supported by the container runtime, otherwise - the pod will not be started and an error - will be generated to indicate the reason. - \n If this field is set to IfPossible - or Enabled, MountPropagation must be set - to None (or be unspecified, which defaults - to None). \n If this field is not specified, - it is treated as an equivalent of Disabled." type: string subPath: - description: Path within the volume from - which the container's volume should be - mounted. Defaults to "" (volume's root). type: string subPathExpr: - description: Expanded path within the volume - from which the container's volume should - be mounted. Behaves similarly to SubPath - but environment variable references $(VAR_NAME) - are expanded using the container's environment. - Defaults to "" (volume's root). SubPathExpr - and SubPath are mutually exclusive. type: string required: - mountPath @@ -16780,300 +6073,109 @@ spec: type: object type: array volumes: - description: 'List of volumes that can be mounted - by containers belonging to the pod. More info: - https://kubernetes.io/docs/concepts/storage/volumes' items: - description: Volume represents a named volume - in a pod that may be accessed by any container - in the pod. properties: awsElasticBlockStore: - description: 'awsElasticBlockStore represents - an AWS Disk resource that is attached - to a kubelet''s host machine and then - exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' properties: fsType: - description: 'fsType is the filesystem - type of the volume that you want to - mount. Tip: Ensure that the filesystem - type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in - the filesystem from compromising the - machine' type: string partition: - description: 'partition is the partition - in the volume that you want to mount. - If omitted, the default is to mount - by volume name. Examples: For volume - /dev/sda1, you specify the partition - as "1". Similarly, the volume partition - for /dev/sda is "0" (or you can leave - the property empty).' format: int32 type: integer readOnly: - description: 'readOnly value true will - force the readOnly setting in VolumeMounts. - More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: boolean volumeID: - description: 'volumeID is unique ID - of the persistent disk resource in - AWS (Amazon EBS volume). More info: - https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: string required: - volumeID type: object azureDisk: - description: azureDisk represents an Azure - Data Disk mount on the host and bind mount - to the pod. properties: cachingMode: - description: 'cachingMode is the Host - Caching mode: None, Read Only, Read - Write.' type: string diskName: - description: diskName is the Name of - the data disk in the blob storage type: string diskURI: - description: diskURI is the URI of data - disk in the blob storage type: string fsType: - description: fsType is Filesystem type - to mount. Must be a filesystem type - supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string kind: - description: 'kind expected values are - Shared: multiple blob disks per storage - account Dedicated: single blob disk - per storage account Managed: azure - managed data disk (only in managed - availability set). defaults to shared' type: string readOnly: - description: readOnly Defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean required: - diskName - diskURI type: object azureFile: - description: azureFile represents an Azure - File Service mount on the host and bind - mount to the pod. properties: readOnly: - description: readOnly defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean secretName: - description: secretName is the name - of secret that contains Azure Storage - Account Name and Key type: string shareName: - description: shareName is the azure - share Name type: string required: - secretName - shareName type: object cephfs: - description: cephFS represents a Ceph FS - mount on the host that shares a pod's - lifetime properties: monitors: - description: 'monitors is Required: - Monitors is a collection of Ceph monitors - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic path: - description: 'path is Optional: Used - as the mounted root, rather than the - full Ceph tree, default is /' type: string readOnly: - description: 'readOnly is Optional: - Defaults to false (read/write). ReadOnly - here will force the ReadOnly setting - in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: boolean secretFile: - description: 'secretFile is Optional: - SecretFile is the path to key ring - for User, default is /etc/ceph/user.secret - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string secretRef: - description: 'secretRef is Optional: - SecretRef is reference to the authentication - secret for User, default is empty. - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is optional: User - is the rados user name, default is - admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string required: - monitors type: object cinder: - description: 'cinder represents a cinder - volume attached and mounted on kubelets - host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' properties: fsType: - description: 'fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string readOnly: - description: 'readOnly defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. - More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: boolean secretRef: - description: 'secretRef is optional: - points to a secret object containing - parameters used to connect to OpenStack.' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeID: - description: 'volumeID used to identify - the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string required: - volumeID type: object configMap: - description: configMap represents a configMap - that should populate this volume properties: defaultMode: - description: 'defaultMode is optional: - mode bits used to set permissions - on created files by default. Must - be an octal value between 0000 and - 0777 or a decimal value between 0 - and 511. YAML accepts both octal and - decimal values, JSON requires decimal - values for mode bits. Defaults to - 0644. Directories within the path - are not affected by this setting. - This might be in conflict with other - options that affect the file mode, - like fsGroup, and the result can be - other mode bits set.' format: int32 type: integer items: - description: items if unspecified, each - key-value pair in the Data field of - the referenced ConfigMap will be projected - into the volume as a file whose name - is the key and content is the value. - If specified, the listed keys will - be projected into the specified paths, - and unlisted keys will not be present. - If a key is specified which is not - present in the ConfigMap, the volume - setup will error unless it is marked - optional. Paths must be relative and - may not contain the '..' path or start - with '..'. items: - description: Maps a string key to - a path within a volume. properties: key: - description: key is the key to - project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an octal - value between 0000 and 0777 - or a decimal value between 0 - and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. - If not specified, the volume - defaultMode will be used. This - might be in conflict with other - options that affect the file - mode, like fsGroup, and the - result can be other mode bits - set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the - key to. May not be an absolute - path. May not contain the path - element '..'. May not start - with the string '..'. type: string required: - key @@ -17083,191 +6185,67 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value here - are almost certainly wrong. TODO: - Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether - the ConfigMap or its keys must be - defined type: boolean type: object x-kubernetes-map-type: atomic csi: - description: csi (Container Storage Interface) - represents ephemeral storage that is handled - by certain external CSI drivers (Beta - feature). properties: driver: - description: driver is the name of the - CSI driver that handles this volume. - Consult with your admin for the correct - name as registered in the cluster. type: string fsType: - description: fsType to mount. Ex. "ext4", - "xfs", "ntfs". If not provided, the - empty value is passed to the associated - CSI driver which will determine the - default filesystem to apply. type: string nodePublishSecretRef: - description: nodePublishSecretRef is - a reference to the secret object containing - sensitive information to pass to the - CSI driver to complete the CSI NodePublishVolume - and NodeUnpublishVolume calls. This - field is optional, and may be empty - if no secret is required. If the secret - object contains more than one secret, - all secret references are passed. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic readOnly: - description: readOnly specifies a read-only - configuration for the volume. Defaults - to false (read/write). type: boolean volumeAttributes: additionalProperties: type: string - description: volumeAttributes stores - driver-specific properties that are - passed to the CSI driver. Consult - your driver's documentation for supported - values. type: object required: - driver type: object downwardAPI: - description: downwardAPI represents downward - API about the pod that should populate - this volume properties: defaultMode: - description: 'Optional: mode bits to - use on created files by default. Must - be a Optional: mode bits used to set - permissions on created files by default. - Must be an octal value between 0000 - and 0777 or a decimal value between - 0 and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. Defaults - to 0644. Directories within the path - are not affected by this setting. - This might be in conflict with other - options that affect the file mode, - like fsGroup, and the result can be - other mode bits set.' format: int32 type: integer items: - description: Items is a list of downward - API volume file items: - description: DownwardAPIVolumeFile - represents information to create - the file containing the pod field properties: fieldRef: - description: 'Required: Selects - a field of the pod: only annotations, - labels, name, namespace and - uid are supported.' properties: apiVersion: - description: Version of the - schema the FieldPath is - written in terms of, defaults - to "v1". type: string fieldPath: - description: Path of the field - to select in the specified - API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode bits - used to set permissions on this - file, must be an octal value - between 0000 and 0777 or a decimal - value between 0 and 511. YAML - accepts both octal and decimal - values, JSON requires decimal - values for mode bits. If not - specified, the volume defaultMode - will be used. This might be - in conflict with other options - that affect the file mode, like - fsGroup, and the result can - be other mode bits set.' format: int32 type: integer path: - description: 'Required: Path is the - relative path name of the file - to be created. Must not be absolute - or contain the ''..'' path. - Must be utf-8 encoded. The first - item of the relative path must - not start with ''..''' type: string resourceFieldRef: - description: 'Selects a resource - of the container: only resources - limits and requests (limits.cpu, - limits.memory, requests.cpu - and requests.memory) are currently - supported.' properties: containerName: - description: 'Container name: - required for volumes, optional - for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the - output format of the exposed - resources, defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource - to select' type: string required: - resource @@ -17280,251 +6258,50 @@ spec: x-kubernetes-list-type: atomic type: object emptyDir: - description: 'emptyDir represents a temporary - directory that shares a pod''s lifetime. - More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' properties: medium: - description: 'medium represents what - type of storage medium should back - this directory. The default is "" - which means to use the node''s default - medium. Must be an empty string (default) - or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' type: string sizeLimit: anyOf: - type: integer - type: string - description: 'sizeLimit is the total - amount of local storage required for - this EmptyDir volume. The size limit - is also applicable for memory medium. - The maximum usage on memory medium - EmptyDir would be the minimum value - between the SizeLimit specified here - and the sum of memory limits of all - containers in a pod. The default is - nil which means that the limit is - undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object ephemeral: - description: "ephemeral represents a volume - that is handled by a cluster storage driver. - The volume's lifecycle is tied to the - pod that defines it - it will be created - before the pod starts, and deleted when - the pod is removed. \n Use this if: a) - the volume is only needed while the pod - runs, b) features of normal volumes like - restoring from snapshot or capacity tracking - are needed, c) the storage driver is specified - through a storage class, and d) the storage - driver supports dynamic volume provisioning - through a PersistentVolumeClaim (see EphemeralVolumeSource - for more information on the connection - between this volume type and PersistentVolumeClaim). - \n Use PersistentVolumeClaim or one of - the vendor-specific APIs for volumes that - persist for longer than the lifecycle - of an individual pod. \n Use CSI for light-weight - local ephemeral volumes if the CSI driver - is meant to be used that way - see the - documentation of the driver for more information. - \n A pod can use both types of ephemeral - volumes and persistent volumes at the - same time." properties: volumeClaimTemplate: - description: "Will be used to create - a stand-alone PVC to provision the - volume. The pod in which this EphemeralVolumeSource - is embedded will be the owner of the - PVC, i.e. the PVC will be deleted - together with the pod. The name of - the PVC will be `-` where `` is the - name from the `PodSpec.Volumes` array - entry. Pod validation will reject - the pod if the concatenated name is - not valid for a PVC (for example, - too long). \n An existing PVC with - that name that is not owned by the - pod will *not* be used for the pod - to avoid using an unrelated volume - by mistake. Starting the pod is then - blocked until the unrelated PVC is - removed. If such a pre-created PVC - is meant to be used by the pod, the - PVC has to updated with an owner reference - to the pod once the pod exists. Normally - this should not be necessary, but - it may be useful when manually reconstructing - a broken cluster. \n This field is - read-only and no changes will be made - by Kubernetes to the PVC after it - has been created. \n Required, must - not be nil." properties: metadata: - description: May contain labels - and annotations that will be copied - into the PVC when creating it. - No other fields are allowed and - will be rejected during validation. properties: annotations: additionalProperties: type: string - description: 'Annotations is - an unstructured key value - map stored with a resource - that may be set by external - tools to store and retrieve - arbitrary metadata. They are - not queryable and should be - preserved when modifying objects. - More info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName is - an optional prefix, used by - the server, to generate a - unique name ONLY IF the Name - field has not been provided. - If this field is used, the - name returned to the client - will be different than the - name passed. This value will - also be combined with a unique - suffix. The provided value - has the same validation rules - as the Name field, and may - be truncated by the length - of the suffix required to - make the value unique on the - server. \n If this field is - specified and the generated - name exists, the server will - NOT return a 409 - instead, - it will either return 201 - Created or 500 with Reason - ServerTimeout indicating a - unique name could not be found - in the time allotted, and - the client should retry (optionally - after the time indicated in - the Retry-After header). \n - Applied only if Name is not - specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string - keys and values that can be - used to organize and categorize - (scope and select) objects. - May match selectors of replication - controllers and services. - More info: http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must be unique - within a namespace. Is required - when creating resources, although - some resources may allow a - client to request the generation - of an appropriate name automatically. - Name is primarily intended - for creation idempotence and - configuration definition. - Cannot be updated. More info: - http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace defines - the space within each name - must be unique. An empty namespace - is equivalent to the \"default\" - namespace, but \"default\" - is the canonical representation. - Not all objects are required - to be scoped to a namespace - - the value of this field - for those objects will be - empty. \n Must be a DNS_LABEL. - Cannot be updated. More info: - http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects - depended by this object. If - ALL objects in the list have - been deleted, this object - will be garbage collected. - If this object is managed - by a controller, then an entry - in this list will point to - this controller, with the - controller field set to true. - There cannot be more than - one managing controller. items: - description: OwnerReference - contains enough information - to let you identify an owning - object. An owning object - must be in the same namespace - as the dependent, or be - cluster-scoped, so there - is no namespace field. properties: apiVersion: - description: API version - of the referent. type: string blockOwnerDeletion: - description: If true, - AND if the owner has - the "foregroundDeletion" - finalizer, then the - owner cannot be deleted - from the key-value store - until this reference - is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage - collector interacts - with this field and - enforces the foreground - deletion. Defaults to - false. To set this field, - a user needs "delete" - permission of the owner, - otherwise 422 (Unprocessable - Entity) will be returned. type: boolean controller: - description: If true, - this reference points - to the managing controller. type: boolean kind: - description: 'Kind of - the referent. More info: - https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of - the referent. More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the - referent. More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -17536,63 +6313,19 @@ spec: type: array type: object spec: - description: The specification for - the PersistentVolumeClaim. The - entire content is copied unchanged - into the PVC that gets created - from this template. The same fields - as in a PersistentVolumeClaim - are also valid here. properties: accessModes: - description: 'accessModes contains - the desired access modes the - volume should have. More info: - https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource field - can be used to specify either: - * An existing VolumeSnapshot - object (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an external - controller can support the - specified data source, it - will create a new volume based - on the contents of the specified - data source. When the AnyVolumeDataSource - feature gate is enabled, dataSource - contents will be copied to - dataSourceRef, and dataSourceRef - contents will be copied to - dataSource when dataSourceRef.namespace - is not specified. If the namespace - is specified, then dataSourceRef - will not be copied to dataSource.' properties: apiGroup: - description: APIGroup is - the group for the resource - being referenced. If APIGroup - is not specified, the - specified Kind must be - in the core API group. - For any other third-party - types, APIGroup is required. type: string kind: - description: Kind is the - type of resource being - referenced type: string name: - description: Name is the - name of resource being - referenced type: string required: - kind @@ -17600,110 +6333,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef - specifies the object from - which to populate the volume - with data, if a non-empty - volume is desired. This may - be any object from a non-empty - API group (non core object) - or a PersistentVolumeClaim - object. When this field is - specified, volume binding - will only succeed if the type - of the specified object matches - some installed volume populator - or dynamic provisioner. This - field will replace the functionality - of the dataSource field and - as such if both fields are - non-empty, they must have - the same value. For backwards - compatibility, when namespace - isn''t specified in dataSourceRef, - both fields (dataSource and - dataSourceRef) will be set - to the same value automatically - if one of them is empty and - the other is non-empty. When - namespace is specified in - dataSourceRef, dataSource - isn''t set to the same value - and must be empty. There are - three important differences - between dataSource and dataSourceRef: - * While dataSource only allows - two specific types of objects, - dataSourceRef allows any non-core - object, as well as PersistentVolumeClaim - objects. * While dataSource - ignores disallowed values - (dropping them), dataSourceRef - preserves all values, and - generates an error if a disallowed - value is specified. * While - dataSource only allows local - objects, dataSourceRef allows - objects in any namespaces. - (Beta) Using this field requires - the AnyVolumeDataSource feature - gate to be enabled. (Alpha) - Using the namespace field - of dataSourceRef requires - the CrossNamespaceVolumeDataSource - feature gate to be enabled.' properties: apiGroup: - description: APIGroup is - the group for the resource - being referenced. If APIGroup - is not specified, the - specified Kind must be - in the core API group. - For any other third-party - types, APIGroup is required. type: string kind: - description: Kind is the - type of resource being - referenced type: string name: - description: Name is the - name of resource being - referenced type: string namespace: - description: Namespace is - the namespace of resource - being referenced Note - that when a namespace - is specified, a gateway.networking.k8s.io/ReferenceGrant - object is required in - the referent namespace - to allow that namespace's - owner to accept the reference. - See the ReferenceGrant - documentation for details. - (Alpha) This field requires - the CrossNamespaceVolumeDataSource - feature gate to be enabled. type: string required: - kind - name type: object resources: - description: 'resources represents - the minimum resources the - volume should have. If RecoverVolumeExpansionFailure - feature is enabled users are - allowed to specify resource - requirements that are lower - than previous value but must - still be higher than capacity - recorded in the status field - of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -17712,10 +6355,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes - the maximum amount of - compute resources allowed. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -17724,66 +6363,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes - the minimum amount of - compute resources required. - If Requests is omitted - for a container, it defaults - to Limits if that is explicitly - specified, otherwise to - an implementation-defined - value. Requests cannot - exceed Limits. More info: - https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is a label - query over volumes to consider - for binding. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key - and values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, Exists - and DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -17797,69 +6388,16 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an element - of matchExpressions, whose - key field is "key", the - operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName - is the name of the StorageClass - required by the claim. More - info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName - may be used to set the VolumeAttributesClass - used by this claim. If specified, - the CSI driver will create - or update the volume with - the attributes defined in - the corresponding VolumeAttributesClass. - This has a different purpose - than storageClassName, it - can be changed after the claim - is created. An empty string - value means that no VolumeAttributesClass - will be applied to the claim - but it''s not allowed to reset - this field to empty string - once it is set. If unspecified - and the PersistentVolumeClaim - is unbound, the default VolumeAttributesClass - will be set by the persistentvolume - controller if it exists. If - the resource referred to by - volumeAttributesClass does - not exist, this PersistentVolumeClaim - will be set to a Pending state, - as reflected by the modifyVolumeStatus - field, until such as a resource - exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires - the VolumeAttributesClass - feature gate to be enabled.' type: string volumeMode: - description: volumeMode defines - what type of volume is required - by the claim. Value of Filesystem - is implied when not included - in claim spec. type: string volumeName: - description: volumeName is the - binding reference to the PersistentVolume - backing this claim. type: string type: object required: @@ -17867,103 +6405,41 @@ spec: type: object type: object fc: - description: fc represents a Fibre Channel - resource that is attached to a kubelet's - host machine and then exposed to the pod. properties: fsType: - description: 'fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. TODO: how do we prevent - errors in the filesystem from compromising - the machine' type: string lun: - description: 'lun is Optional: FC target - lun number' format: int32 type: integer readOnly: - description: 'readOnly is Optional: - Defaults to false (read/write). ReadOnly - here will force the ReadOnly setting - in VolumeMounts.' type: boolean targetWWNs: - description: 'targetWWNs is Optional: - FC target worldwide names (WWNs)' items: type: string type: array x-kubernetes-list-type: atomic wwids: - description: 'wwids Optional: FC volume - world wide identifiers (wwids) Either - wwids or combination of targetWWNs - and lun must be set, but not both - simultaneously.' items: type: string type: array x-kubernetes-list-type: atomic type: object flexVolume: - description: flexVolume represents a generic - volume resource that is provisioned/attached - using an exec based plugin. properties: driver: - description: driver is the name of the - driver to use for this volume. type: string fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - The default filesystem depends on - FlexVolume script. type: string options: additionalProperties: type: string - description: 'options is Optional: this - field holds extra command options - if any.' type: object readOnly: - description: 'readOnly is Optional: - defaults to false (read/write). ReadOnly - here will force the ReadOnly setting - in VolumeMounts.' type: boolean secretRef: - description: 'secretRef is Optional: - secretRef is reference to the secret - object containing sensitive information - to pass to the plugin scripts. This - may be empty if no secret object is - specified. If the secret object contains - more than one secret, all secrets - are passed to the plugin scripts.' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic @@ -17971,207 +6447,79 @@ spec: - driver type: object flocker: - description: flocker represents a Flocker - volume attached to a kubelet's host machine. - This depends on the Flocker control service - being running properties: datasetName: - description: datasetName is Name of - the dataset stored as metadata -> - name on the dataset for Flocker should - be considered as deprecated type: string datasetUUID: - description: datasetUUID is the UUID - of the dataset. This is unique identifier - of a Flocker dataset type: string type: object gcePersistentDisk: - description: 'gcePersistentDisk represents - a GCE Disk resource that is attached to - a kubelet''s host machine and then exposed - to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' properties: fsType: - description: 'fsType is filesystem type - of the volume that you want to mount. - Tip: Ensure that the filesystem type - is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in - the filesystem from compromising the - machine' type: string partition: - description: 'partition is the partition - in the volume that you want to mount. - If omitted, the default is to mount - by volume name. Examples: For volume - /dev/sda1, you specify the partition - as "1". Similarly, the volume partition - for /dev/sda is "0" (or you can leave - the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' format: int32 type: integer pdName: - description: 'pdName is unique name - of the PD resource in GCE. Used to - identify the disk in GCE. More info: - https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: string readOnly: - description: 'readOnly here will force - the ReadOnly setting in VolumeMounts. - Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: boolean required: - pdName type: object glusterfs: - description: 'glusterfs represents a Glusterfs - mount on the host that shares a pod''s - lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md' properties: endpoints: - description: 'endpoints is the endpoint - name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string path: - description: 'path is the Glusterfs - volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string readOnly: - description: 'readOnly here will force - the Glusterfs volume to be mounted - with read-only permissions. Defaults - to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: boolean required: - endpoints - path type: object hostPath: - description: 'hostPath represents a pre-existing - file or directory on the host machine - that is directly exposed to the container. - This is generally used for system agents - or other privileged things that are allowed - to see the host machine. Most containers - will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- TODO(jonesdl) We need to restrict - who can use host directory mounts and - who can/can not mount host directories - as read/write.' properties: path: - description: 'path of the directory - on the host. If the path is a symlink, - it will follow the link to the real - path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string type: - description: 'type for HostPath Volume - Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string required: - path type: object iscsi: - description: 'iscsi represents an ISCSI - Disk resource that is attached to a kubelet''s - host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md' properties: chapAuthDiscovery: - description: chapAuthDiscovery defines - whether support iSCSI Discovery CHAP - authentication type: boolean chapAuthSession: - description: chapAuthSession defines - whether support iSCSI Session CHAP - authentication type: boolean fsType: - description: 'fsType is the filesystem - type of the volume that you want to - mount. Tip: Ensure that the filesystem - type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in - the filesystem from compromising the - machine' type: string initiatorName: - description: initiatorName is the custom - iSCSI Initiator Name. If initiatorName - is specified with iscsiInterface simultaneously, - new iSCSI interface : will be created for the connection. type: string iqn: - description: iqn is the target iSCSI - Qualified Name. type: string iscsiInterface: - description: iscsiInterface is the interface - Name that uses an iSCSI transport. - Defaults to 'default' (tcp). type: string lun: - description: lun represents iSCSI Target - Lun number. format: int32 type: integer portals: - description: portals is the iSCSI Target - Portal List. The portal is either - an IP or ip_addr:port if the port - is other than default (typically TCP - ports 860 and 3260). items: type: string type: array x-kubernetes-list-type: atomic readOnly: - description: readOnly here will force - the ReadOnly setting in VolumeMounts. - Defaults to false. type: boolean secretRef: - description: secretRef is the CHAP Secret - for iSCSI target and initiator authentication properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic targetPortal: - description: targetPortal is iSCSI Target - Portal. The Portal is either an IP - or ip_addr:port if the port is other - than default (typically TCP ports - 860 and 3260). type: string required: - iqn @@ -18179,204 +6527,68 @@ spec: - targetPortal type: object name: - description: 'name of the volume. Must be - a DNS_LABEL and unique within the pod. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string nfs: - description: 'nfs represents an NFS mount - on the host that shares a pod''s lifetime - More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' properties: path: - description: 'path that is exported - by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string readOnly: - description: 'readOnly here will force - the NFS export to be mounted with - read-only permissions. Defaults to - false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: boolean server: - description: 'server is the hostname - or IP address of the NFS server. More - info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string required: - path - server type: object persistentVolumeClaim: - description: 'persistentVolumeClaimVolumeSource - represents a reference to a PersistentVolumeClaim - in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: claimName: - description: 'claimName is the name - of a PersistentVolumeClaim in the - same namespace as the pod using this - volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' type: string readOnly: - description: readOnly Will force the - ReadOnly setting in VolumeMounts. - Default false. type: boolean required: - claimName type: object photonPersistentDisk: - description: photonPersistentDisk represents - a PhotonController persistent disk attached - and mounted on kubelets host machine properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. type: string pdID: - description: pdID is the ID that identifies - Photon Controller persistent disk type: string required: - pdID type: object portworxVolume: - description: portworxVolume represents a - portworx volume attached and mounted on - kubelets host machine properties: fsType: - description: fSType represents the filesystem - type to mount Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs". Implicitly - inferred to be "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean volumeID: - description: volumeID uniquely identifies - a Portworx volume type: string required: - volumeID type: object projected: - description: projected items for all in - one resources secrets, configmaps, and - downward API properties: defaultMode: - description: defaultMode are the mode - bits used to set permissions on created - files by default. Must be an octal - value between 0000 and 0777 or a decimal - value between 0 and 511. YAML accepts - both octal and decimal values, JSON - requires decimal values for mode bits. - Directories within the path are not - affected by this setting. This might - be in conflict with other options - that affect the file mode, like fsGroup, - and the result can be other mode bits - set. format: int32 type: integer sources: - description: sources is the list of - volume projections items: - description: Projection that may be - projected along with other supported - volume types properties: clusterTrustBundle: - description: "ClusterTrustBundle - allows a pod to access the `.spec.trustBundle` - field of ClusterTrustBundle - objects in an auto-updating - file. \n Alpha, gated by the - ClusterTrustBundleProjection - feature gate. \n ClusterTrustBundle - objects can either be selected - by name, or by the combination - of signer name and a label selector. - \n Kubelet performs aggressive - normalization of the PEM contents - written into the pod filesystem. - \ Esoteric PEM features such - as inter-block comments and - block headers are stripped. - \ Certificates are deduplicated. - The ordering of certificates - within the file is arbitrary, - and Kubelet may change the order - over time." properties: labelSelector: - description: Select all ClusterTrustBundles - that match this label selector. Only - has effect if signerName - is set. Mutually-exclusive - with name. If unset, interpreted - as "match nothing". If - set but empty, interpreted - as "match everything". properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: key - is the label key - that the selector - applies to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values - is an array of - string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -18390,123 +6602,31 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an - element of matchExpressions, - whose key field is "key", - the operator is "In", - and the values array - contains only "value". - The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic name: - description: Select a single - ClusterTrustBundle by object - name. Mutually-exclusive - with signerName and labelSelector. type: string optional: - description: If true, don't - block pod startup if the - referenced ClusterTrustBundle(s) - aren't available. If using - name, then the named ClusterTrustBundle - is allowed not to exist. If - using signerName, then the - combination of signerName - and labelSelector is allowed - to match zero ClusterTrustBundles. type: boolean path: - description: Relative path - from the volume root to - write the bundle. type: string signerName: - description: Select all ClusterTrustBundles - that match this signer name. - Mutually-exclusive with - name. The contents of all - selected ClusterTrustBundles - will be unified and deduplicated. type: string required: - path type: object configMap: - description: configMap information - about the configMap data to - project properties: items: - description: items if unspecified, - each key-value pair in the - Data field of the referenced - ConfigMap will be projected - into the volume as a file - whose name is the key and - content is the value. If - specified, the listed keys - will be projected into the - specified paths, and unlisted - keys will not be present. - If a key is specified which - is not present in the ConfigMap, - the volume setup will error - unless it is marked optional. - Paths must be relative and - may not contain the '..' - path or start with '..'. items: - description: Maps a string - key to a path within a - volume. properties: key: - description: key is - the key to project. type: string mode: - description: 'mode is - Optional: mode bits - used to set permissions - on this file. Must - be an octal value - between 0000 and 0777 - or a decimal value - between 0 and 511. - YAML accepts both - octal and decimal - values, JSON requires - decimal values for - mode bits. If not - specified, the volume - defaultMode will be - used. This might be - in conflict with other - options that affect - the file mode, like - fsGroup, and the result - can be other mode - bits set.' format: int32 type: integer path: - description: path is - the relative path - of the file to map - the key to. May not - be an absolute path. - May not contain the - path element '..'. - May not start with - the string '..'. type: string required: - key @@ -18516,134 +6636,42 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the - referent. This field is - effectively required, but - due to backwards compatibility - is allowed to be empty. - Instances of this type with - an empty value here are - almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify - whether the ConfigMap or - its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic downwardAPI: - description: downwardAPI information - about the downwardAPI data to - project properties: items: - description: Items is a list - of DownwardAPIVolume file items: - description: DownwardAPIVolumeFile - represents information - to create the file containing - the pod field properties: fieldRef: - description: 'Required: - Selects a field of - the pod: only annotations, - labels, name, namespace - and uid are supported.' properties: apiVersion: - description: Version - of the schema - the FieldPath - is written in - terms of, defaults - to "v1". type: string fieldPath: - description: Path - of the field to - select in the - specified API - version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: - mode bits used to - set permissions on - this file, must be - an octal value between - 0000 and 0777 or a - decimal value between - 0 and 511. YAML accepts - both octal and decimal - values, JSON requires - decimal values for - mode bits. If not - specified, the volume - defaultMode will be - used. This might be - in conflict with other - options that affect - the file mode, like - fsGroup, and the result - can be other mode - bits set.' format: int32 type: integer path: - description: 'Required: - Path is the relative - path name of the file - to be created. Must - not be absolute or - contain the ''..'' - path. Must be utf-8 - encoded. The first - item of the relative - path must not start - with ''..''' type: string resourceFieldRef: - description: 'Selects - a resource of the - container: only resources - limits and requests - (limits.cpu, limits.memory, - requests.cpu and requests.memory) - are currently supported.' properties: containerName: - description: 'Container - name: required - for volumes, optional - for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies - the output format - of the exposed - resources, defaults - to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: - resource to select' type: string required: - resource @@ -18656,72 +6684,16 @@ spec: x-kubernetes-list-type: atomic type: object secret: - description: secret information - about the secret data to project properties: items: - description: items if unspecified, - each key-value pair in the - Data field of the referenced - Secret will be projected - into the volume as a file - whose name is the key and - content is the value. If - specified, the listed keys - will be projected into the - specified paths, and unlisted - keys will not be present. - If a key is specified which - is not present in the Secret, - the volume setup will error - unless it is marked optional. - Paths must be relative and - may not contain the '..' - path or start with '..'. items: - description: Maps a string - key to a path within a - volume. properties: key: - description: key is - the key to project. type: string mode: - description: 'mode is - Optional: mode bits - used to set permissions - on this file. Must - be an octal value - between 0000 and 0777 - or a decimal value - between 0 and 511. - YAML accepts both - octal and decimal - values, JSON requires - decimal values for - mode bits. If not - specified, the volume - defaultMode will be - used. This might be - in conflict with other - options that affect - the file mode, like - fsGroup, and the result - can be other mode - bits set.' format: int32 type: integer path: - description: path is - the relative path - of the file to map - the key to. May not - be an absolute path. - May not contain the - path element '..'. - May not start with - the string '..'. type: string required: - key @@ -18731,68 +6703,19 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the - referent. This field is - effectively required, but - due to backwards compatibility - is allowed to be empty. - Instances of this type with - an empty value here are - almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional field - specify whether the Secret - or its key must be defined type: boolean type: object x-kubernetes-map-type: atomic serviceAccountToken: - description: serviceAccountToken - is information about the serviceAccountToken - data to project properties: audience: - description: audience is the - intended audience of the - token. A recipient of a - token must identify itself - with an identifier specified - in the audience of the token, - and otherwise should reject - the token. The audience - defaults to the identifier - of the apiserver. type: string expirationSeconds: - description: expirationSeconds - is the requested duration - of validity of the service - account token. As the token - approaches expiration, the - kubelet volume plugin will - proactively rotate the service - account token. The kubelet - will start trying to rotate - the token if the token is - older than 80 percent of - its time to live or if the - token is older than 24 hours.Defaults - to 1 hour and must be at - least 10 minutes. format: int64 type: integer path: - description: path is the path - relative to the mount point - of the file to project the - token into. type: string required: - path @@ -18802,196 +6725,79 @@ spec: x-kubernetes-list-type: atomic type: object quobyte: - description: quobyte represents a Quobyte - mount on the host that shares a pod's - lifetime properties: group: - description: group to map volume access - to Default is no group type: string readOnly: - description: readOnly here will force - the Quobyte volume to be mounted with - read-only permissions. Defaults to - false. type: boolean registry: - description: registry represents a single - or multiple Quobyte Registry services - specified as a string as host:port - pair (multiple entries are separated - with commas) which acts as the central - registry for volumes type: string tenant: - description: tenant owning the given - Quobyte volume in the Backend Used - with dynamically provisioned Quobyte - volumes, value is set by the plugin type: string user: - description: user to map volume access - to Defaults to serivceaccount user type: string volume: - description: volume is a string that - references an already created Quobyte - volume by name. type: string required: - registry - volume type: object rbd: - description: 'rbd represents a Rados Block - Device mount on the host that shares a - pod''s lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md' properties: fsType: - description: 'fsType is the filesystem - type of the volume that you want to - mount. Tip: Ensure that the filesystem - type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in - the filesystem from compromising the - machine' type: string image: - description: 'image is the rados image - name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string keyring: - description: 'keyring is the path to - key ring for RBDUser. Default is /etc/ceph/keyring. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string monitors: - description: 'monitors is a collection - of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic pool: - description: 'pool is the rados pool - name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string readOnly: - description: 'readOnly here will force - the ReadOnly setting in VolumeMounts. - Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: boolean secretRef: - description: 'secretRef is name of the - authentication secret for RBDUser. - If provided overrides keyring. Default - is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is the rados user - name. Default is admin. More info: - https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string required: - image - monitors type: object scaleIO: - description: scaleIO represents a ScaleIO - persistent volume attached and mounted - on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Default is "xfs". type: string gateway: - description: gateway is the host address - of the ScaleIO API Gateway. type: string protectionDomain: - description: protectionDomain is the - name of the ScaleIO Protection Domain - for the configured storage. type: string readOnly: - description: readOnly Defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean secretRef: - description: secretRef references to - the secret for ScaleIO user and other - sensitive information. If this is - not provided, Login operation will - fail. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic sslEnabled: - description: sslEnabled Flag enable/disable - SSL communication with Gateway, default - false type: boolean storageMode: - description: storageMode indicates whether - the storage for a volume should be - ThickProvisioned or ThinProvisioned. - Default is ThinProvisioned. type: string storagePool: - description: storagePool is the ScaleIO - Storage Pool associated with the protection - domain. type: string system: - description: system is the name of the - storage system as configured in ScaleIO. type: string volumeName: - description: volumeName is the name - of a volume already created in the - ScaleIO system that is associated - with this volume source. type: string required: - gateway @@ -18999,75 +6805,19 @@ spec: - system type: object secret: - description: 'secret represents a secret - that should populate this volume. More - info: https://kubernetes.io/docs/concepts/storage/volumes#secret' properties: defaultMode: - description: 'defaultMode is Optional: - mode bits used to set permissions - on created files by default. Must - be an octal value between 0000 and - 0777 or a decimal value between 0 - and 511. YAML accepts both octal and - decimal values, JSON requires decimal - values for mode bits. Defaults to - 0644. Directories within the path - are not affected by this setting. - This might be in conflict with other - options that affect the file mode, - like fsGroup, and the result can be - other mode bits set.' format: int32 type: integer items: - description: items If unspecified, each - key-value pair in the Data field of - the referenced Secret will be projected - into the volume as a file whose name - is the key and content is the value. - If specified, the listed keys will - be projected into the specified paths, - and unlisted keys will not be present. - If a key is specified which is not - present in the Secret, the volume - setup will error unless it is marked - optional. Paths must be relative and - may not contain the '..' path or start - with '..'. items: - description: Maps a string key to - a path within a volume. properties: key: - description: key is the key to - project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an octal - value between 0000 and 0777 - or a decimal value between 0 - and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. - If not specified, the volume - defaultMode will be used. This - might be in conflict with other - options that affect the file - mode, like fsGroup, and the - result can be other mode bits - set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the - key to. May not be an absolute - path. May not contain the path - element '..'. May not start - with the string '..'. type: string required: - key @@ -19076,102 +6826,37 @@ spec: type: array x-kubernetes-list-type: atomic optional: - description: optional field specify - whether the Secret or its keys must - be defined type: boolean secretName: - description: 'secretName is the name - of the secret in the pod''s namespace - to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' type: string type: object storageos: - description: storageOS represents a StorageOS - volume attached and mounted on Kubernetes - nodes. properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. type: string readOnly: - description: readOnly defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean secretRef: - description: secretRef specifies the - secret to use for obtaining the StorageOS - API credentials. If not specified, - default values will be attempted. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeName: - description: volumeName is the human-readable - name of the StorageOS volume. Volume - names are only unique within a namespace. type: string volumeNamespace: - description: volumeNamespace specifies - the scope of the volume within StorageOS. If - no namespace is specified then the - Pod's namespace will be used. This - allows the Kubernetes name scoping - to be mirrored within StorageOS for - tighter integration. Set VolumeName - to any name to override the default - behaviour. Set to "default" if you - are not using namespaces within StorageOS. - Namespaces that do not pre-exist within - StorageOS will be created. type: string type: object vsphereVolume: - description: vsphereVolume represents a - vSphere volume attached and mounted on - kubelets host machine properties: fsType: - description: fsType is filesystem type - to mount. Must be a filesystem type - supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string storagePolicyID: - description: storagePolicyID is the - storage Policy Based Management (SPBM) - profile ID associated with the StoragePolicyName. type: string storagePolicyName: - description: storagePolicyName is the - storage Policy Based Management (SPBM) - profile name. type: string volumePath: - description: volumePath is the path - that identifies vSphere volume vmdk type: string required: - volumePath @@ -19183,38 +6868,18 @@ spec: type: object type: object ttlSecondsAfterFinished: - description: ttlSecondsAfterFinished limits the lifetime - of a Job that has finished execution (either Complete - or Failed). If this field is set, ttlSecondsAfterFinished - after the Job finishes, it is eligible to be automatically - deleted. When the Job is being deleted, its lifecycle - guarantees (e.g. finalizers) will be honored. If this - field is unset, the Job won't be automatically deleted. - If this field is set to zero, the Job becomes eligible - to be deleted immediately after it finishes. This field - is alpha-level and is only honored by servers that enable - the TTLAfterFinished feature. format: int32 type: integer type: object schedule: - description: The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron. type: string startingDeadlineSeconds: - description: Optional deadline in seconds for starting the - job if it misses scheduled time for any reason. Missed - jobs executions will be counted as failed ones. format: int64 type: integer successfulJobsHistoryLimit: - description: The number of successful finished jobs to retain. - Value must be non-negative integer. Defaults to 3. format: int32 type: integer suspend: - description: This flag tells the controller to suspend subsequent - executions, it does not apply to already started executions. Defaults - to false. type: boolean required: - jobTemplate @@ -19222,157 +6887,71 @@ spec: type: object sessionHistoryLimit: default: 1 - description: SessionHistoryLimit specifies how many backup Jobs - and associate resources KubeStash should keep for debugging - purpose. The default value is 1. format: int32 type: integer targets: - description: Targets specifies a list of target backup specification. items: - description: TargetBackupSpec specifies the information needed - to backup a target. properties: addon: - description: Addon specifies addon configuration that will - be used to backup this target. properties: containerRuntimeSettings: - description: ContainerRuntimeSettings specifies runtime - settings for the backup/restore executor container properties: env: - description: List of environment variables to set - in the container. Cannot be updated. items: - description: EnvVar represents an environment - variable present in a Container. properties: name: - description: Name of the environment variable. - Must be a C_IDENTIFIER. type: string value: - description: 'Variable references $(VAR_NAME) - are expanded using the previously defined - environment variables in the container and - any service environment variables. If a - variable cannot be resolved, the reference - in the input string will be unchanged. Double - $$ are reduced to a single $, which allows - for escaping the $(VAR_NAME) syntax: i.e. - "$$(VAR_NAME)" will produce the string literal - "$(VAR_NAME)". Escaped references will never - be expanded, regardless of whether the variable - exists or not. Defaults to "".' type: string valueFrom: - description: Source for the environment variable's - value. Cannot be used if value is not empty. properties: configMapKeyRef: - description: Selects a key of a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap - or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field of the pod: - supports metadata.name, metadata.namespace, - `metadata.labels['''']`, `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, - status.hostIP, status.podIP, status.podIPs.' properties: apiVersion: - description: Version of the schema - the FieldPath is written in terms - of, defaults to "v1". type: string fieldPath: - description: Path of the field to - select in the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource of the - container: only resources limits and - requests (limits.cpu, limits.memory, - limits.ephemeral-storage, requests.cpu, - requests.memory and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: required - for volumes, optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource to - select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret - in the pod's namespace properties: key: - description: The key of the secret - to select from. Must be a valid - secret key. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret - or its key must be defined type: boolean required: - key @@ -19384,74 +6963,31 @@ spec: type: object type: array envFrom: - description: List of sources to populate environment - variables in the container. The keys defined within - a source must be a C_IDENTIFIER. All invalid keys - will be reported as an event when the container - is starting. When a key exists in multiple sources, - the value associated with the last source will - take precedence. Values defined by an Env with - a duplicate key will take precedence. Cannot be - updated. items: - description: EnvFromSource represents the source - of a set of ConfigMaps properties: configMapRef: - description: The ConfigMap to select from properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap - must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: - description: An optional identifier to prepend - to each key in the ConfigMap. Must be a - C_IDENTIFIER. type: string secretRef: - description: The Secret to select from properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret - must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array ionice: - description: 'Settings to configure `ionice` to - throttle the load on disk. More info: http://kennystechtalk.blogspot.com/2015/04/throttling-cpu-usage-with-linux-cgroups.html - More info: https://oakbytes.wordpress.com/2012/06/06/linux-scheduler-cfs-and-nice/' properties: class: format: int32 @@ -19461,68 +6997,27 @@ spec: type: integer type: object lifecycle: - description: Actions that the management system - should take in response to container lifecycle - events. Cannot be updated. properties: postStart: - description: 'PostStart is called immediately - after a container is created. If the handler - fails, the container is terminated and restarted - according to its restart policy. Other management - of the container blocks until the hook completes. - More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action to - take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it is - not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to - explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect to, - defaults to the pod IP. You probably - want to set "Host" in httpHeaders - instead. type: string httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in HTTP - probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood as - the same header. type: string value: - description: The header field - value type: string required: - name @@ -19531,129 +7026,58 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP - server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port - to access on the container. Number - must be in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration - that the container should sleep before - being terminated. properties: seconds: - description: Seconds is the number of - seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is NOT - supported as a LifecycleHandler and kept - for the backward compatibility. There - are no validation of this field and lifecycle - hooks will fail in runtime when tcp handler - is specified. properties: host: - description: 'Optional: Host name to - connect to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port - to access on the container. Number - must be in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object type: object preStop: - description: 'PreStop is called immediately - before a container is terminated due to an - API request or management event such as liveness/startup - probe failure, preemption, resource contention, - etc. The handler is not called if the container - crashes or exits. The Pod''s termination grace - period countdown begins before the PreStop - hook is executed. Regardless of the outcome - of the handler, the container will eventually - terminate within the Pod''s termination grace - period (unless delayed by finalizers). Other - management of the container blocks until the - hook completes or until the termination grace - period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action to - take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it is - not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to - explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect to, - defaults to the pod IP. You probably - want to set "Host" in httpHeaders - instead. type: string httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in HTTP - probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood as - the same header. type: string value: - description: The header field - value type: string required: - name @@ -19662,58 +7086,33 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP - server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port - to access on the container. Number - must be in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration - that the container should sleep before - being terminated. properties: seconds: - description: Seconds is the number of - seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is NOT - supported as a LifecycleHandler and kept - for the backward compatibility. There - are no validation of this field and lifecycle - hooks will fail in runtime when tcp handler - is specified. properties: host: - description: 'Optional: Host name to - connect to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port - to access on the container. Number - must be in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port @@ -19721,79 +7120,38 @@ spec: type: object type: object livenessProbe: - description: 'Periodic probe of container liveness. - Container will be restarted if the probe fails. - Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to take. properties: command: - description: Command is the command line - to execute inside the container, the working - directory for the command is root ('/') - in the container's filesystem. The command - is simply exec'd, it is not run inside - a shell, so traditional shell instructions - ('|', etc) won't work. To use a shell, - you need to explicitly call out to that - shell. Exit status of 0 is treated as - live/healthy and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures for - the probe to be considered failed after having - succeeded. Defaults to 3. Minimum value is - 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving - a GRPC port. properties: port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name of the - service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default - behavior is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http request - to perform. properties: host: - description: Host name to connect to, defaults - to the pod IP. You probably want to set - "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in the - request. HTTP allows repeated headers. items: - description: HTTPHeader describes a custom - header to be used in HTTP probes properties: name: - description: The header field name. - This will be canonicalized upon - output, so case-variant names will - be understood as the same header. type: string value: - description: The header field value type: string required: - name @@ -19802,175 +7160,84 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP - server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the container - has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform - the probe. Default to 10 seconds. Minimum - value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes for - the probe to be considered successful after - having failed. Defaults to 1. Must be 1 for - liveness and startup. Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. properties: host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds the - pod needs to terminate gracefully upon probe - failure. The grace period is the duration - in seconds after the processes running in - the pod are sent a termination signal and - the time when the processes are forcibly halted - with a kill signal. Set this value longer - than the expected cleanup time for your process. - If this value is nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value overrides - the value provided by the pod spec. Value - must be non-negative integer. The value zero - indicates stop immediately via the kill signal - (no opportunity to shut down). This is a beta - field and requires enabling ProbeTerminationGracePeriod - feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which - the probe times out. Defaults to 1 second. - Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object nice: - description: 'Settings to configure `nice` to throttle - the load on cpu. More info: http://kennystechtalk.blogspot.com/2015/04/throttling-cpu-usage-with-linux-cgroups.html - More info: https://oakbytes.wordpress.com/2012/06/06/linux-scheduler-cfs-and-nice/' properties: adjustment: format: int32 type: integer type: object readinessProbe: - description: 'Periodic probe of container service - readiness. Container will be removed from service - endpoints if the probe fails. Cannot be updated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to take. properties: command: - description: Command is the command line - to execute inside the container, the working - directory for the command is root ('/') - in the container's filesystem. The command - is simply exec'd, it is not run inside - a shell, so traditional shell instructions - ('|', etc) won't work. To use a shell, - you need to explicitly call out to that - shell. Exit status of 0 is treated as - live/healthy and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures for - the probe to be considered failed after having - succeeded. Defaults to 3. Minimum value is - 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving - a GRPC port. properties: port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name of the - service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default - behavior is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http request - to perform. properties: host: - description: Host name to connect to, defaults - to the pod IP. You probably want to set - "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in the - request. HTTP allows repeated headers. items: - description: HTTPHeader describes a custom - header to be used in HTTP probes properties: name: - description: The header field name. - This will be canonicalized upon - output, so case-variant names will - be understood as the same header. type: string value: - description: The header field value type: string required: - name @@ -19979,112 +7246,51 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP - server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the container - has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform - the probe. Default to 10 seconds. Minimum - value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes for - the probe to be considered successful after - having failed. Defaults to 1. Must be 1 for - liveness and startup. Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. properties: host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds the - pod needs to terminate gracefully upon probe - failure. The grace period is the duration - in seconds after the processes running in - the pod are sent a termination signal and - the time when the processes are forcibly halted - with a kill signal. Set this value longer - than the expected cleanup time for your process. - If this value is nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value overrides - the value provided by the pod spec. Value - must be non-negative integer. The value zero - indicates stop immediately via the kill signal - (no opportunity to shut down). This is a beta - field and requires enabling ProbeTerminationGracePeriod - feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which - the probe times out. Defaults to 1 second. - Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object resources: - description: 'Compute Resources required by container. - Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' properties: claims: - description: "Claims lists the names of resources, - defined in spec.resourceClaims, that are used - by this container. \n This is an alpha field - and requires enabling the DynamicResourceAllocation - feature gate. \n This field is immutable. - It can only be set for containers." items: - description: ResourceClaim references one - entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name - of one entry in pod.spec.resourceClaims - of the Pod where this field is used. - It makes that resource available inside - a container. type: string required: - name @@ -20100,8 +7306,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount - of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -20110,373 +7314,124 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum - amount of compute resources required. If Requests - is omitted for a container, it defaults to - Limits if that is explicitly specified, otherwise - to an implementation-defined value. Requests - cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object securityContext: - description: 'Security options the pod should run - with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: allowPrivilegeEscalation: - description: 'AllowPrivilegeEscalation controls - whether a process can gain more privileges - than its parent process. This bool directly - controls if the no_new_privs flag will be - set on the container process. AllowPrivilegeEscalation - is true always when the container is: 1) run - as Privileged 2) has CAP_SYS_ADMIN Note that - this field cannot be set when spec.os.name - is windows.' type: boolean appArmorProfile: - description: appArmorProfile is the AppArmor - options to use by this container. If set, - this profile overrides the pod's appArmorProfile. - Note that this field cannot be set when spec.os.name - is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile loaded on the node that should - be used. The profile must be preconfigured - on the node to work. Must match the loaded - name of the profile. Must be set if and - only if type is "Localhost". type: string type: - description: 'type indicates which kind - of AppArmor profile will be applied. Valid - options are: Localhost - a profile pre-loaded - on the node. RuntimeDefault - the container - runtime''s default profile. Unconfined - - no AppArmor enforcement.' type: string required: - type type: object capabilities: - description: The capabilities to add/drop when - running containers. Defaults to the default - set of capabilities granted by the container - runtime. Note that this field cannot be set - when spec.os.name is windows. properties: add: - description: Added capabilities items: - description: Capability represent POSIX - capabilities type type: string type: array x-kubernetes-list-type: atomic drop: - description: Removed capabilities items: - description: Capability represent POSIX - capabilities type type: string type: array x-kubernetes-list-type: atomic type: object privileged: - description: Run container in privileged mode. - Processes in privileged containers are essentially - equivalent to root on the host. Defaults to - false. Note that this field cannot be set - when spec.os.name is windows. type: boolean procMount: - description: procMount denotes the type of proc - mount to use for the containers. The default - is DefaultProcMount which uses the container - runtime defaults for readonly paths and masked - paths. This requires the ProcMountType feature - flag to be enabled. Note that this field cannot - be set when spec.os.name is windows. type: string readOnlyRootFilesystem: - description: Whether this container has a read-only - root filesystem. Default is false. Note that - this field cannot be set when spec.os.name - is windows. type: boolean runAsGroup: - description: The GID to run the entrypoint of - the container process. Uses runtime default - if unset. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. Note that this field cannot be - set when spec.os.name is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container must - run as a non-root user. If true, the Kubelet - will validate the image at runtime to ensure - that it does not run as UID 0 (root) and fail - to start the container if it does. If unset - or false, no such validation will be performed. - May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. type: boolean runAsUser: - description: The UID to run the entrypoint of - the container process. Defaults to user specified - in image metadata if unspecified. May also - be set in PodSecurityContext. If set in both - SecurityContext and PodSecurityContext, the - value specified in SecurityContext takes precedence. - Note that this field cannot be set when spec.os.name - is windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be applied - to the container. If unspecified, the container - runtime will allocate a random SELinux context - for each container. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. Note that this field cannot be - set when spec.os.name is windows. properties: level: - description: Level is SELinux level label - that applies to the container. type: string role: - description: Role is a SELinux role label - that applies to the container. type: string type: - description: Type is a SELinux type label - that applies to the container. type: string user: - description: User is a SELinux user label - that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to use by this - container. If seccomp options are provided - at both the pod & container level, the container - options override the pod options. Note that - this field cannot be set when spec.os.name - is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile defined in a file on the node - should be used. The profile must be preconfigured - on the node to work. Must be a descending - path, relative to the kubelet's configured - seccomp profile location. Must be set - if type is "Localhost". Must NOT be set - for any other type. type: string type: - description: "type indicates which kind - of seccomp profile will be applied. Valid - options are: \n Localhost - a profile - defined in a file on the node should be - used. RuntimeDefault - the container runtime - default profile should be used. Unconfined - - no profile should be applied." type: string required: - type type: object windowsOptions: - description: The Windows specific settings applied - to all containers. If unspecified, the options - from the PodSecurityContext will be used. - If set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. Note that this field cannot be - set when spec.os.name is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is where - the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA credential - spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName is the - name of the GMSA credential spec to use. type: string hostProcess: - description: HostProcess determines if a - container should be run as a 'Host Process' - container. All of a Pod's containers must - have the same effective HostProcess value - (it is not allowed to have a mix of HostProcess - containers and non-HostProcess containers). - In addition, if HostProcess is true then - HostNetwork must also be set to true. type: boolean runAsUserName: - description: The UserName in Windows to - run the entrypoint of the container process. - Defaults to the user specified in image - metadata if unspecified. May also be set - in PodSecurityContext. If set in both - SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: string type: object type: object type: object jobTemplate: - description: JobTemplate specifies runtime configurations - for the backup/restore Job properties: controller: - description: 'Workload controller''s metadata. More - info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured - key value map stored with a resource that - may be set by external tools to store and - retrieve arbitrary metadata. They are not - queryable and should be preserved when modifying - objects. More info: http://kubernetes.io/docs/user-guide/annotations' type: object labels: additionalProperties: type: string - description: 'Map of string keys and values - that can be used to organize and categorize - (scope and select) objects. May match selectors - of replication controllers and services. More - info: http://kubernetes.io/docs/user-guide/labels' type: object type: object metadata: - description: 'Standard object''s metadata. More - info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured - key value map stored with a resource that - may be set by external tools to store and - retrieve arbitrary metadata. They are not - queryable and should be preserved when modifying - objects. More info: http://kubernetes.io/docs/user-guide/annotations' type: object labels: additionalProperties: type: string - description: 'Map of string keys and values - that can be used to organize and categorize - (scope and select) objects. May match selectors - of replication controllers and services. More - info: http://kubernetes.io/docs/user-guide/labels' type: object type: object spec: - description: 'Specification of the desired behavior - of the pod. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' properties: affinity: - description: If specified, the pod's scheduling - constraints properties: nodeAffinity: - description: Describes node affinity scheduling - rules for the pod. properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer - to schedule pods to nodes that satisfy - the affinity expressions specified - by this field, but it may choose a - node that violates one or more of - the expressions. The node that is - most preferred is the one with the - greatest sum of weights, i.e. for - each node that meets all of the scheduling - requirements (resource request, requiredDuringScheduling - affinity expressions, etc.), compute - a sum by iterating through the elements - of this field and adding "weight" - to the sum if the node matches the - corresponding matchExpressions; the - node(s) with the highest sum are the - most preferred. items: - description: An empty preferred scheduling - term matches all objects with implicit - weight 0 (i.e. it's a no-op). A - null preferred scheduling term matches - no objects (i.e. is also a no-op). properties: preference: - description: A node selector term, - associated with the corresponding - weight. properties: matchExpressions: - description: A list of node - selector requirements by - node's labels. items: - description: A node selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists, - DoesNotExist. Gt, - and Lt. type: string values: - description: An array - of string values. - If the operator is - In or NotIn, the values - array must be non-empty. - If the operator is - Exists or DoesNotExist, - the values array must - be empty. If the operator - is Gt or Lt, the values - array must have a - single element, which - will be interpreted - as an integer. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -20488,49 +7443,13 @@ spec: type: array x-kubernetes-list-type: atomic matchFields: - description: A list of node - selector requirements by - node's fields. items: - description: A node selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists, - DoesNotExist. Gt, - and Lt. type: string values: - description: An array - of string values. - If the operator is - In or NotIn, the values - array must be non-empty. - If the operator is - Exists or DoesNotExist, - the values array must - be empty. If the operator - is Gt or Lt, the values - array must have a - single element, which - will be interpreted - as an integer. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -20544,10 +7463,6 @@ spec: type: object x-kubernetes-map-type: atomic weight: - description: Weight associated - with matching the corresponding - nodeSelectorTerm, in the range - 1-100. format: int32 type: integer required: @@ -20557,73 +7472,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements - specified by this field are not met - at scheduling time, the pod will not - be scheduled onto the node. If the - affinity requirements specified by - this field cease to be met at some - point during pod execution (e.g. due - to an update), the system may or may - not try to eventually evict the pod - from its node. properties: nodeSelectorTerms: - description: Required. A list of - node selector terms. The terms - are ORed. items: - description: A null or empty node - selector term matches no objects. - The requirements of them are - ANDed. The TopologySelectorTerm - type implements a subset of - the NodeSelectorTerm. properties: matchExpressions: - description: A list of node - selector requirements by - node's labels. items: - description: A node selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists, - DoesNotExist. Gt, - and Lt. type: string values: - description: An array - of string values. - If the operator is - In or NotIn, the values - array must be non-empty. - If the operator is - Exists or DoesNotExist, - the values array must - be empty. If the operator - is Gt or Lt, the values - array must have a - single element, which - will be interpreted - as an integer. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -20635,49 +7495,13 @@ spec: type: array x-kubernetes-list-type: atomic matchFields: - description: A list of node - selector requirements by - node's fields. items: - description: A node selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists, - DoesNotExist. Gt, - and Lt. type: string values: - description: An array - of string values. - If the operator is - In or NotIn, the values - array must be non-empty. - If the operator is - Exists or DoesNotExist, - the values array must - be empty. If the operator - is Gt or Lt, the values - array must have a - single element, which - will be interpreted - as an integer. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -20698,91 +7522,22 @@ spec: x-kubernetes-map-type: atomic type: object podAffinity: - description: Describes pod affinity scheduling - rules (e.g. co-locate this pod in the - same node, zone, etc. as some other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer - to schedule pods to nodes that satisfy - the affinity expressions specified - by this field, but it may choose a - node that violates one or more of - the expressions. The node that is - most preferred is the one with the - greatest sum of weights, i.e. for - each node that meets all of the scheduling - requirements (resource request, requiredDuringScheduling - affinity expressions, etc.), compute - a sum by iterating through the elements - of this field and adding "weight" - to the sum if the node has pods which - matches the corresponding podAffinityTerm; - the node(s) with the highest sum are - the most preferred. items: - description: The weights of all of - the matched WeightedPodAffinityTerm - fields are added per-node to find - the most preferred node(s) properties: podAffinityTerm: - description: Required. A pod affinity - term, associated with the corresponding - weight. properties: labelSelector: - description: A label query - over a set of resources, - in this case pods. If it's - null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: key - is the label key - that the selector - applies to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values - is an array of - string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -20796,141 +7551,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an - element of matchExpressions, - whose key field is "key", - the operator is "In", - and the values array - contains only "value". - The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming - pod labels, those key-value - labels are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods - which pods will be taken - into consideration for the - incoming pod's pod (anti) - affinity. Keys that don't - exist in the incoming pod - labels will be ignored. - The default value is empty. - The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, - matchLabelKeys cannot be - set when labelSelector isn't - set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming - pod labels, those key-value - labels are merged with `labelSelector` - as `key notin (value)` to - select the group of existing - pods which pods will be - taken into consideration - for the incoming pod's pod - (anti) affinity. Keys that - don't exist in the incoming - pod labels will be ignored. - The default value is empty. - The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, - mismatchLabelKeys cannot - be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query - over the set of namespaces - that the term applies to. - The term is applied to the - union of the namespaces - selected by this field and - the ones listed in the namespaces - field. null selector and - null or empty namespaces - list means "this pod's namespace". - An empty selector ({}) matches - all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: key - is the label key - that the selector - applies to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values - is an array of - string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -20944,59 +7587,20 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an - element of matchExpressions, - whose key field is "key", - the operator is "In", - and the values array - contains only "value". - The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace - names that the term applies - to. The term is applied - to the union of the namespaces - listed in this field and - the ones selected by namespaceSelector. - null or empty namespaces - list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should - be co-located (affinity) - or not co-located (anti-affinity) - with the pods matching the - labelSelector in the specified - namespaces, where co-located - is defined as running on - a node whose value of the - label with key topologyKey - matches that of any node - on which any of the selected - pods is running. Empty topologyKey - is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated - with matching the corresponding - podAffinityTerm, in the range - 1-100. format: int32 type: integer required: @@ -21006,81 +7610,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements - specified by this field are not met - at scheduling time, the pod will not - be scheduled onto the node. If the - affinity requirements specified by - this field cease to be met at some - point during pod execution (e.g. due - to a pod label update), the system - may or may not try to eventually evict - the pod from its node. When there - are multiple elements, the lists of - nodes corresponding to each podAffinityTerm - are intersected, i.e. all terms must - be satisfied. items: - description: Defines a set of pods - (namely those matching the labelSelector - relative to the given namespace(s)) - that this pod should be co-located - (affinity) or not co-located (anti-affinity) - with, where co-located is defined - as running on a node whose value - of the label with key - matches that of any node on which - a pod of the set of pods is running properties: labelSelector: - description: A label query over - a set of resources, in this - case pods. If it's null, this - PodAffinityTerm matches with - no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to a - set of values. Valid - operators are In, - NotIn, Exists and - DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, the - values array must - be non-empty. If the - operator is Exists - or DoesNotExist, the - values array must - be empty. This array - is replaced during - a strategic merge - patch. items: type: string type: array @@ -21094,129 +7635,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in - the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is - a set of pod label keys to select - which pods will be taken into - consideration. The keys are - used to lookup values from the - incoming pod labels, those key-value - labels are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, matchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label keys to - select which pods will be taken - into consideration. The keys - are used to lookup values from - the incoming pod labels, those - key-value labels are merged - with `labelSelector` as `key - notin (value)` to select the - group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over - the set of namespaces that the - term applies to. The term is - applied to the union of the - namespaces selected by this - field and the ones listed in - the namespaces field. null selector - and null or empty namespaces - list means "this pod's namespace". - An empty selector ({}) matches - all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to a - set of values. Valid - operators are In, - NotIn, Exists and - DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, the - values array must - be non-empty. If the - operator is Exists - or DoesNotExist, the - values array must - be empty. This array - is replaced during - a strategic merge - patch. items: type: string type: array @@ -21230,47 +7671,15 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in - the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace names - that the term applies to. The - term is applied to the union - of the namespaces listed in - this field and the ones selected - by namespaceSelector. null or - empty namespaces list and null - namespaceSelector means "this - pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be - co-located (affinity) or not - co-located (anti-affinity) with - the pods matching the labelSelector - in the specified namespaces, - where co-located is defined - as running on a node whose value - of the label with key topologyKey - matches that of any node on - which any of the selected pods - is running. Empty topologyKey - is not allowed. type: string required: - topologyKey @@ -21279,92 +7688,22 @@ spec: x-kubernetes-list-type: atomic type: object podAntiAffinity: - description: Describes pod anti-affinity - scheduling rules (e.g. avoid putting this - pod in the same node, zone, etc. as some - other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer - to schedule pods to nodes that satisfy - the anti-affinity expressions specified - by this field, but it may choose a - node that violates one or more of - the expressions. The node that is - most preferred is the one with the - greatest sum of weights, i.e. for - each node that meets all of the scheduling - requirements (resource request, requiredDuringScheduling - anti-affinity expressions, etc.), - compute a sum by iterating through - the elements of this field and adding - "weight" to the sum if the node has - pods which matches the corresponding - podAffinityTerm; the node(s) with - the highest sum are the most preferred. items: - description: The weights of all of - the matched WeightedPodAffinityTerm - fields are added per-node to find - the most preferred node(s) properties: podAffinityTerm: - description: Required. A pod affinity - term, associated with the corresponding - weight. properties: labelSelector: - description: A label query - over a set of resources, - in this case pods. If it's - null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: key - is the label key - that the selector - applies to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values - is an array of - string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -21378,141 +7717,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an - element of matchExpressions, - whose key field is "key", - the operator is "In", - and the values array - contains only "value". - The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming - pod labels, those key-value - labels are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods - which pods will be taken - into consideration for the - incoming pod's pod (anti) - affinity. Keys that don't - exist in the incoming pod - labels will be ignored. - The default value is empty. - The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, - matchLabelKeys cannot be - set when labelSelector isn't - set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming - pod labels, those key-value - labels are merged with `labelSelector` - as `key notin (value)` to - select the group of existing - pods which pods will be - taken into consideration - for the incoming pod's pod - (anti) affinity. Keys that - don't exist in the incoming - pod labels will be ignored. - The default value is empty. - The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, - mismatchLabelKeys cannot - be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query - over the set of namespaces - that the term applies to. - The term is applied to the - union of the namespaces - selected by this field and - the ones listed in the namespaces - field. null selector and - null or empty namespaces - list means "this pod's namespace". - An empty selector ({}) matches - all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: key - is the label key - that the selector - applies to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values - is an array of - string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -21526,59 +7753,20 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an - element of matchExpressions, - whose key field is "key", - the operator is "In", - and the values array - contains only "value". - The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace - names that the term applies - to. The term is applied - to the union of the namespaces - listed in this field and - the ones selected by namespaceSelector. - null or empty namespaces - list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should - be co-located (affinity) - or not co-located (anti-affinity) - with the pods matching the - labelSelector in the specified - namespaces, where co-located - is defined as running on - a node whose value of the - label with key topologyKey - matches that of any node - on which any of the selected - pods is running. Empty topologyKey - is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated - with matching the corresponding - podAffinityTerm, in the range - 1-100. format: int32 type: integer required: @@ -21588,81 +7776,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the anti-affinity requirements - specified by this field are not met - at scheduling time, the pod will not - be scheduled onto the node. If the - anti-affinity requirements specified - by this field cease to be met at some - point during pod execution (e.g. due - to a pod label update), the system - may or may not try to eventually evict - the pod from its node. When there - are multiple elements, the lists of - nodes corresponding to each podAffinityTerm - are intersected, i.e. all terms must - be satisfied. items: - description: Defines a set of pods - (namely those matching the labelSelector - relative to the given namespace(s)) - that this pod should be co-located - (affinity) or not co-located (anti-affinity) - with, where co-located is defined - as running on a node whose value - of the label with key - matches that of any node on which - a pod of the set of pods is running properties: labelSelector: - description: A label query over - a set of resources, in this - case pods. If it's null, this - PodAffinityTerm matches with - no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to a - set of values. Valid - operators are In, - NotIn, Exists and - DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, the - values array must - be non-empty. If the - operator is Exists - or DoesNotExist, the - values array must - be empty. This array - is replaced during - a strategic merge - patch. items: type: string type: array @@ -21676,129 +7801,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in - the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is - a set of pod label keys to select - which pods will be taken into - consideration. The keys are - used to lookup values from the - incoming pod labels, those key-value - labels are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, matchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label keys to - select which pods will be taken - into consideration. The keys - are used to lookup values from - the incoming pod labels, those - key-value labels are merged - with `labelSelector` as `key - notin (value)` to select the - group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over - the set of namespaces that the - term applies to. The term is - applied to the union of the - namespaces selected by this - field and the ones listed in - the namespaces field. null selector - and null or empty namespaces - list means "this pod's namespace". - An empty selector ({}) matches - all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to a - set of values. Valid - operators are In, - NotIn, Exists and - DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, the - values array must - be non-empty. If the - operator is Exists - or DoesNotExist, the - values array must - be empty. This array - is replaced during - a strategic merge - patch. items: type: string type: array @@ -21812,47 +7837,15 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in - the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace names - that the term applies to. The - term is applied to the union - of the namespaces listed in - this field and the ones selected - by namespaceSelector. null or - empty namespaces list and null - namespaceSelector means "this - pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be - co-located (affinity) or not - co-located (anti-affinity) with - the pods matching the labelSelector - in the specified namespaces, - where co-located is defined - as running on a node whose value - of the label with key topologyKey - matches that of any node on - which any of the selected pods - is running. Empty topologyKey - is not allowed. type: string required: - topologyKey @@ -21862,281 +7855,92 @@ spec: type: object type: object args: - description: 'Arguments to the entrypoint. The - docker image''s CMD is used if this is not - provided. Variable references $(VAR_NAME) - are expanded using the container''s environment. - If a variable cannot be resolved, the reference - in the input string will be unchanged. The - $(VAR_NAME) syntax can be escaped with a double - $$, ie: $$(VAR_NAME). Escaped references will - never be expanded, regardless of whether the - variable exists or not. Cannot be updated. - More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' items: type: string type: array containerSecurityContext: - description: 'Security options the pod should - run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: allowPrivilegeEscalation: - description: 'AllowPrivilegeEscalation controls - whether a process can gain more privileges - than its parent process. This bool directly - controls if the no_new_privs flag will - be set on the container process. AllowPrivilegeEscalation - is true always when the container is: - 1) run as Privileged 2) has CAP_SYS_ADMIN - Note that this field cannot be set when - spec.os.name is windows.' type: boolean appArmorProfile: - description: appArmorProfile is the AppArmor - options to use by this container. If set, - this profile overrides the pod's appArmorProfile. - Note that this field cannot be set when - spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile loaded on the node that - should be used. The profile must be - preconfigured on the node to work. - Must match the loaded name of the - profile. Must be set if and only if - type is "Localhost". type: string type: - description: 'type indicates which kind - of AppArmor profile will be applied. - Valid options are: Localhost - a profile - pre-loaded on the node. RuntimeDefault - - the container runtime''s default - profile. Unconfined - no AppArmor - enforcement.' type: string required: - type type: object capabilities: - description: The capabilities to add/drop - when running containers. Defaults to the - default set of capabilities granted by - the container runtime. Note that this - field cannot be set when spec.os.name - is windows. properties: add: - description: Added capabilities items: - description: Capability represent - POSIX capabilities type type: string type: array x-kubernetes-list-type: atomic drop: - description: Removed capabilities items: - description: Capability represent - POSIX capabilities type type: string type: array x-kubernetes-list-type: atomic type: object privileged: - description: Run container in privileged - mode. Processes in privileged containers - are essentially equivalent to root on - the host. Defaults to false. Note that - this field cannot be set when spec.os.name - is windows. type: boolean procMount: - description: procMount denotes the type - of proc mount to use for the containers. - The default is DefaultProcMount which - uses the container runtime defaults for - readonly paths and masked paths. This - requires the ProcMountType feature flag - to be enabled. Note that this field cannot - be set when spec.os.name is windows. type: string readOnlyRootFilesystem: - description: Whether this container has - a read-only root filesystem. Default is - false. Note that this field cannot be - set when spec.os.name is windows. type: boolean runAsGroup: - description: The GID to run the entrypoint - of the container process. Uses runtime - default if unset. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container - must run as a non-root user. If true, - the Kubelet will validate the image at - runtime to ensure that it does not run - as UID 0 (root) and fail to start the - container if it does. If unset or false, - no such validation will be performed. - May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: boolean runAsUser: - description: The UID to run the entrypoint - of the container process. Defaults to - user specified in image metadata if unspecified. - May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be applied - to the container. If unspecified, the - container runtime will allocate a random - SELinux context for each container. May - also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is windows. properties: level: - description: Level is SELinux level - label that applies to the container. type: string role: - description: Role is a SELinux role - label that applies to the container. type: string type: - description: Type is a SELinux type - label that applies to the container. type: string user: - description: User is a SELinux user - label that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to use - by this container. If seccomp options - are provided at both the pod & container - level, the container options override - the pod options. Note that this field - cannot be set when spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile defined in a file on the - node should be used. The profile must - be preconfigured on the node to work. - Must be a descending path, relative - to the kubelet's configured seccomp - profile location. Must be set if type - is "Localhost". Must NOT be set for - any other type. type: string type: - description: "type indicates which kind - of seccomp profile will be applied. - Valid options are: \n Localhost - - a profile defined in a file on the - node should be used. RuntimeDefault - - the container runtime default profile - should be used. Unconfined - no profile - should be applied." type: string required: - type type: object windowsOptions: - description: The Windows specific settings - applied to all containers. If unspecified, - the options from the PodSecurityContext - will be used. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. Note - that this field cannot be set when spec.os.name - is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is where - the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA credential - spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName - is the name of the GMSA credential - spec to use. type: string hostProcess: - description: HostProcess determines - if a container should be run as a - 'Host Process' container. All of a - Pod's containers must have the same - effective HostProcess value (it is - not allowed to have a mix of HostProcess - containers and non-HostProcess containers). - In addition, if HostProcess is true - then HostNetwork must also be set - to true. type: boolean runAsUserName: - description: The UserName in Windows - to run the entrypoint of the container - process. Defaults to the user specified - in image metadata if unspecified. - May also be set in PodSecurityContext. - If set in both SecurityContext and - PodSecurityContext, the value specified - in SecurityContext takes precedence. type: string type: object type: object dnsConfig: - description: Specifies the DNS parameters of - a pod. Parameters specified here will be merged - to the generated DNS configuration based on - DNSPolicy. properties: nameservers: - description: A list of DNS name server IP - addresses. This will be appended to the - base nameservers generated from DNSPolicy. - Duplicated nameservers will be removed. items: type: string type: array x-kubernetes-list-type: atomic options: - description: A list of DNS resolver options. - This will be merged with the base options - generated from DNSPolicy. Duplicated entries - will be removed. Resolution options given - in Options will override those that appear - in the base DNSPolicy. items: - description: PodDNSConfigOption defines - DNS resolver options of a pod. properties: name: - description: Required. type: string value: type: string @@ -22144,171 +7948,71 @@ spec: type: array x-kubernetes-list-type: atomic searches: - description: A list of DNS search domains - for host-name lookup. This will be appended - to the base search paths generated from - DNSPolicy. Duplicated search paths will - be removed. items: type: string type: array x-kubernetes-list-type: atomic type: object dnsPolicy: - description: Set DNS policy for the pod. Defaults - to "ClusterFirst". Valid values are 'ClusterFirstWithHostNet', - 'ClusterFirst', 'Default' or 'None'. DNS parameters - given in DNSConfig will be merged with the - policy selected with DNSPolicy. To have DNS - options set along with hostNetwork, you have - to specify DNS policy explicitly to 'ClusterFirstWithHostNet'. type: string enableServiceLinks: - description: 'EnableServiceLinks indicates whether - information about services should be injected - into pod''s environment variables, matching - the syntax of Docker links. Optional: Defaults - to true.' type: boolean env: - description: List of environment variables to - set in the container. Cannot be updated. items: - description: EnvVar represents an environment - variable present in a Container. properties: name: - description: Name of the environment variable. - Must be a C_IDENTIFIER. type: string value: - description: 'Variable references $(VAR_NAME) - are expanded using the previously defined - environment variables in the container - and any service environment variables. - If a variable cannot be resolved, the - reference in the input string will be - unchanged. Double $$ are reduced to - a single $, which allows for escaping - the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" - will produce the string literal "$(VAR_NAME)". - Escaped references will never be expanded, - regardless of whether the variable exists - or not. Defaults to "".' type: string valueFrom: - description: Source for the environment - variable's value. Cannot be used if - value is not empty. properties: configMapKeyRef: - description: Selects a key of a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the - ConfigMap or its key must be - defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field of the - pod: supports metadata.name, metadata.namespace, - `metadata.labels['''']`, `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, - status.hostIP, status.podIP, status.podIPs.' properties: apiVersion: - description: Version of the schema - the FieldPath is written in - terms of, defaults to "v1". type: string fieldPath: - description: Path of the field - to select in the specified API - version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource of - the container: only resources limits - and requests (limits.cpu, limits.memory, - limits.ephemeral-storage, requests.cpu, - requests.memory and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: - required for volumes, optional - for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource - to select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret - in the pod's namespace properties: key: - description: The key of the secret - to select from. Must be a valid - secret key. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the - Secret or its key must be defined type: boolean required: - key @@ -22320,264 +8024,89 @@ spec: type: object type: array hostIPC: - description: 'Use the host''s ipc namespace. - Optional: Default to false.' type: boolean hostNetwork: - description: Host networking requested for this - pod. Use the host's network namespace. If - this option is set, the ports that will be - used must be specified. Default to false. type: boolean hostPID: - description: 'Use the host''s pid namespace. - Optional: Default to false.' type: boolean imagePullSecrets: - description: 'ImagePullSecrets is an optional - list of references to secrets in the same - namespace to use for pulling any of the images - used by this PodSpec. If specified, these - secrets will be passed to individual puller - implementations for them to use. More info: - https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod' items: - description: LocalObjectReference contains - enough information to let you locate the - referenced object inside the same namespace. properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic type: array initContainers: - description: 'List of initialization containers - belonging to the pod. Init containers are - executed in order prior to containers being - started. If any init container fails, the - pod is considered to have failed and is handled - according to its restartPolicy. The name for - an init container or normal container must - be unique among all containers. Init containers - may not have Lifecycle actions, Readiness - probes, or Liveness probes. The resourceRequirements - of an init container are taken into account - during scheduling by finding the highest request/limit - for each resource type, and then using the - max of of that value or the sum of the normal - containers. Limits are applied to init containers - in a similar fashion. Init containers cannot - currently be added or removed. Cannot be updated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/' items: - description: A single application container - that you want to run within a pod. properties: args: - description: 'Arguments to the entrypoint. - The container image''s CMD is used if - this is not provided. Variable references - $(VAR_NAME) are expanded using the container''s - environment. If a variable cannot be - resolved, the reference in the input - string will be unchanged. Double $$ - are reduced to a single $, which allows - for escaping the $(VAR_NAME) syntax: - i.e. "$$(VAR_NAME)" will produce the - string literal "$(VAR_NAME)". Escaped - references will never be expanded, regardless - of whether the variable exists or not. - Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' items: type: string type: array x-kubernetes-list-type: atomic command: - description: 'Entrypoint array. Not executed - within a shell. The container image''s - ENTRYPOINT is used if this is not provided. - Variable references $(VAR_NAME) are - expanded using the container''s environment. - If a variable cannot be resolved, the - reference in the input string will be - unchanged. Double $$ are reduced to - a single $, which allows for escaping - the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" - will produce the string literal "$(VAR_NAME)". - Escaped references will never be expanded, - regardless of whether the variable exists - or not. Cannot be updated. More info: - https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' items: type: string type: array x-kubernetes-list-type: atomic env: - description: List of environment variables - to set in the container. Cannot be updated. items: - description: EnvVar represents an environment - variable present in a Container. properties: name: - description: Name of the environment - variable. Must be a C_IDENTIFIER. type: string value: - description: 'Variable references - $(VAR_NAME) are expanded using - the previously defined environment - variables in the container and - any service environment variables. - If a variable cannot be resolved, - the reference in the input string - will be unchanged. Double $$ are - reduced to a single $, which allows - for escaping the $(VAR_NAME) syntax: - i.e. "$$(VAR_NAME)" will produce - the string literal "$(VAR_NAME)". - Escaped references will never - be expanded, regardless of whether - the variable exists or not. Defaults - to "".' type: string valueFrom: - description: Source for the environment - variable's value. Cannot be used - if value is not empty. properties: configMapKeyRef: - description: Selects a key of - a ConfigMap. properties: key: - description: The key to - select. type: string name: default: "" - description: 'Name of the - referent. This field is - effectively required, - but due to backwards compatibility - is allowed to be empty. - Instances of this type - with an empty value here - are almost certainly wrong. - TODO: Add other useful - fields. apiVersion, kind, - uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether - the ConfigMap or its key - must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field - of the pod: supports metadata.name, - metadata.namespace, `metadata.labels['''']`, - `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, - status.hostIP, status.podIP, - status.podIPs.' properties: apiVersion: - description: Version of - the schema the FieldPath - is written in terms of, - defaults to "v1". type: string fieldPath: - description: Path of the - field to select in the - specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource - of the container: only resources - limits and requests (limits.cpu, - limits.memory, limits.ephemeral-storage, - requests.cpu, requests.memory - and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container - name: required for volumes, - optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the - output format of the exposed - resources, defaults to - "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: - resource to select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of - a secret in the pod's namespace properties: key: - description: The key of - the secret to select from. Must - be a valid secret key. type: string name: default: "" - description: 'Name of the - referent. This field is - effectively required, - but due to backwards compatibility - is allowed to be empty. - Instances of this type - with an empty value here - are almost certainly wrong. - TODO: Add other useful - fields. apiVersion, kind, - uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether - the Secret or its key - must be defined type: boolean required: - key @@ -22592,75 +8121,25 @@ spec: - name x-kubernetes-list-type: map envFrom: - description: List of sources to populate - environment variables in the container. - The keys defined within a source must - be a C_IDENTIFIER. All invalid keys - will be reported as an event when the - container is starting. When a key exists - in multiple sources, the value associated - with the last source will take precedence. - Values defined by an Env with a duplicate - key will take precedence. Cannot be - updated. items: - description: EnvFromSource represents - the source of a set of ConfigMaps properties: configMapRef: - description: The ConfigMap to select - from properties: name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether - the ConfigMap must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: - description: An optional identifier - to prepend to each key in the - ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: - description: The Secret to select - from properties: name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether - the Secret must be defined type: boolean type: object x-kubernetes-map-type: atomic @@ -22668,91 +8147,31 @@ spec: type: array x-kubernetes-list-type: atomic image: - description: 'Container image name. More - info: https://kubernetes.io/docs/concepts/containers/images - This field is optional to allow higher - level config management to default or - override container images in workload - controllers like Deployments and StatefulSets.' type: string imagePullPolicy: - description: 'Image pull policy. One of - Always, Never, IfNotPresent. Defaults - to Always if :latest tag is specified, - or IfNotPresent otherwise. Cannot be - updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images' type: string lifecycle: - description: Actions that the management - system should take in response to container - lifecycle events. Cannot be updated. properties: postStart: - description: 'PostStart is called - immediately after a container is - created. If the handler fails, the - container is terminated and restarted - according to its restart policy. - Other management of the container - blocks until the hook completes. - More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the - action to take. properties: command: - description: Command is the - command line to execute - inside the container, the - working directory for the - command is root ('/') in - the container's filesystem. - The command is simply exec'd, - it is not run inside a shell, - so traditional shell instructions - ('|', etc) won't work. To - use a shell, you need to - explicitly call out to that - shell. Exit status of 0 - is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies - the http request to perform. properties: host: - description: Host name to - connect to, defaults to - the pod IP. You probably - want to set "Host" in httpHeaders - instead. type: string httpHeaders: - description: Custom headers - to set in the request. HTTP - allows repeated headers. items: - description: HTTPHeader - describes a custom header - to be used in HTTP probes properties: name: - description: The header - field name. This will - be canonicalized upon - output, so case-variant - names will be understood - as the same header. type: string value: - description: The header - field value type: string required: - name @@ -22761,144 +8180,58 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access - on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number - of the port to access on - the container. Number must - be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use - for connecting to the host. - Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents - the duration that the container - should sleep before being terminated. properties: seconds: - description: Seconds is the - number of seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket - is NOT supported as a LifecycleHandler - and kept for the backward compatibility. - There are no validation of this - field and lifecycle hooks will - fail in runtime when tcp handler - is specified. properties: host: - description: 'Optional: Host - name to connect to, defaults - to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name - of the port to access on - the container. Number must - be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object type: object preStop: - description: 'PreStop is called immediately - before a container is terminated - due to an API request or management - event such as liveness/startup probe - failure, preemption, resource contention, - etc. The handler is not called if - the container crashes or exits. - The Pod''s termination grace period - countdown begins before the PreStop - hook is executed. Regardless of - the outcome of the handler, the - container will eventually terminate - within the Pod''s termination grace - period (unless delayed by finalizers). - Other management of the container - blocks until the hook completes - or until the termination grace period - is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the - action to take. properties: command: - description: Command is the - command line to execute - inside the container, the - working directory for the - command is root ('/') in - the container's filesystem. - The command is simply exec'd, - it is not run inside a shell, - so traditional shell instructions - ('|', etc) won't work. To - use a shell, you need to - explicitly call out to that - shell. Exit status of 0 - is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies - the http request to perform. properties: host: - description: Host name to - connect to, defaults to - the pod IP. You probably - want to set "Host" in httpHeaders - instead. type: string httpHeaders: - description: Custom headers - to set in the request. HTTP - allows repeated headers. items: - description: HTTPHeader - describes a custom header - to be used in HTTP probes properties: name: - description: The header - field name. This will - be canonicalized upon - output, so case-variant - names will be understood - as the same header. type: string value: - description: The header - field value type: string required: - name @@ -22907,63 +8240,33 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access - on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number - of the port to access on - the container. Number must - be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use - for connecting to the host. - Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents - the duration that the container - should sleep before being terminated. properties: seconds: - description: Seconds is the - number of seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket - is NOT supported as a LifecycleHandler - and kept for the backward compatibility. - There are no validation of this - field and lifecycle hooks will - fail in runtime when tcp handler - is specified. properties: host: - description: 'Optional: Host - name to connect to, defaults - to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name - of the port to access on - the container. Number must - be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port @@ -22971,93 +8274,38 @@ spec: type: object type: object livenessProbe: - description: 'Periodic probe of container - liveness. Container will be restarted - if the probe fails. Cannot be updated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the - command is root ('/') in the - container's filesystem. The - command is simply exec'd, it - is not run inside a shell, so - traditional shell instructions - ('|', etc) won't work. To use - a shell, you need to explicitly - call out to that shell. Exit - status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults - to 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action - involving a GRPC port. properties: port: - description: Port number of the - gRPC service. Number must be - in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name - of the service to place in the - gRPC HealthCheckRequest (see - https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, - the default behavior is defined - by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the - http request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. - You probably want to set "Host" - in httpHeaders instead. type: string httpHeaders: - description: Custom headers to - set in the request. HTTP allows - repeated headers. items: - description: HTTPHeader describes - a custom header to be used - in HTTP probes properties: name: - description: The header - field name. This will - be canonicalized upon - output, so case-variant - names will be understood - as the same header. type: string value: - description: The header - field value type: string required: - name @@ -23066,157 +8314,62 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on - the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of - the port to access on the container. - Number must be in the range - 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for - connecting to the host. Defaults - to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after - the container has started before - liveness probes are initiated. More - info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) - to perform the probe. Default to - 10 seconds. Minimum value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to - 1. Must be 1 for liveness and startup. - Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an - action involving a TCP port. properties: host: - description: 'Optional: Host name - to connect to, defaults to the - pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of - the port to access on the container. - Number must be in the range - 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in - seconds the pod needs to terminate - gracefully upon probe failure. The - grace period is the duration in - seconds after the processes running - in the pod are sent a termination - signal and the time when the processes - are forcibly halted with a kill - signal. Set this value longer than - the expected cleanup time for your - process. If this value is nil, the - pod's terminationGracePeriodSeconds - will be used. Otherwise, this value - overrides the value provided by - the pod spec. Value must be non-negative - integer. The value zero indicates - stop immediately via the kill signal - (no opportunity to shut down). This - is a beta field and requires enabling - ProbeTerminationGracePeriod feature - gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after - which the probe times out. Defaults - to 1 second. Minimum value is 1. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object name: - description: Name of the container specified - as a DNS_LABEL. Each container in a - pod must have a unique name (DNS_LABEL). - Cannot be updated. type: string ports: - description: List of ports to expose from - the container. Not specifying a port - here DOES NOT prevent that port from - being exposed. Any port which is listening - on the default "0.0.0.0" address inside - a container will be accessible from - the network. Modifying this array with - strategic merge patch may corrupt the - data. For more information See https://github.com/kubernetes/kubernetes/issues/108255. - Cannot be updated. items: - description: ContainerPort represents - a network port in a single container. properties: containerPort: - description: Number of port to expose - on the pod's IP address. This - must be a valid port number, 0 - < x < 65536. format: int32 type: integer hostIP: - description: What host IP to bind - the external port to. type: string hostPort: - description: Number of port to expose - on the host. If specified, this - must be a valid port number, 0 - < x < 65536. If HostNetwork is - specified, this must match ContainerPort. - Most containers do not need this. format: int32 type: integer name: - description: If specified, this - must be an IANA_SVC_NAME and unique - within the pod. Each named port - in a pod must have a unique name. - Name for the port that can be - referred to by services. type: string protocol: default: TCP - description: Protocol for port. - Must be UDP, TCP, or SCTP. Defaults - to "TCP". type: string required: - containerPort @@ -23227,94 +8380,38 @@ spec: - protocol x-kubernetes-list-type: map readinessProbe: - description: 'Periodic probe of container - service readiness. Container will be - removed from service endpoints if the - probe fails. Cannot be updated. More - info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the - command is root ('/') in the - container's filesystem. The - command is simply exec'd, it - is not run inside a shell, so - traditional shell instructions - ('|', etc) won't work. To use - a shell, you need to explicitly - call out to that shell. Exit - status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults - to 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action - involving a GRPC port. properties: port: - description: Port number of the - gRPC service. Number must be - in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name - of the service to place in the - gRPC HealthCheckRequest (see - https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, - the default behavior is defined - by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the - http request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. - You probably want to set "Host" - in httpHeaders instead. type: string httpHeaders: - description: Custom headers to - set in the request. HTTP allows - repeated headers. items: - description: HTTPHeader describes - a custom header to be used - in HTTP probes properties: name: - description: The header - field name. This will - be canonicalized upon - output, so case-variant - names will be understood - as the same header. type: string value: - description: The header - field value type: string required: - name @@ -23323,121 +8420,51 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on - the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of - the port to access on the container. - Number must be in the range - 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for - connecting to the host. Defaults - to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after - the container has started before - liveness probes are initiated. More - info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) - to perform the probe. Default to - 10 seconds. Minimum value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to - 1. Must be 1 for liveness and startup. - Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an - action involving a TCP port. properties: host: - description: 'Optional: Host name - to connect to, defaults to the - pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of - the port to access on the container. - Number must be in the range - 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in - seconds the pod needs to terminate - gracefully upon probe failure. The - grace period is the duration in - seconds after the processes running - in the pod are sent a termination - signal and the time when the processes - are forcibly halted with a kill - signal. Set this value longer than - the expected cleanup time for your - process. If this value is nil, the - pod's terminationGracePeriodSeconds - will be used. Otherwise, this value - overrides the value provided by - the pod spec. Value must be non-negative - integer. The value zero indicates - stop immediately via the kill signal - (no opportunity to shut down). This - is a beta field and requires enabling - ProbeTerminationGracePeriod feature - gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after - which the probe times out. Defaults - to 1 second. Minimum value is 1. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object resizePolicy: - description: Resources resize policy for - the container. items: - description: ContainerResizePolicy represents - resource resize policy for the container. properties: resourceName: - description: 'Name of the resource - to which this resource resize - policy applies. Supported values: - cpu, memory.' type: string restartPolicy: - description: Restart policy to apply - when specified resource is resized. - If not specified, it defaults - to NotRequired. type: string required: - resourceName @@ -23446,28 +8473,11 @@ spec: type: array x-kubernetes-list-type: atomic resources: - description: 'Compute Resources required - by this container. Cannot be updated. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' properties: claims: - description: "Claims lists the names - of resources, defined in spec.resourceClaims, - that are used by this container. - \n This is an alpha field and requires - enabling the DynamicResourceAllocation - feature gate. \n This field is immutable. - It can only be set for containers." items: - description: ResourceClaim references - one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match - the name of one entry in pod.spec.resourceClaims - of the Pod where this field - is used. It makes that resource - available inside a container. type: string required: - name @@ -23483,9 +8493,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the - maximum amount of compute resources - allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -23494,402 +8501,115 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the - minimum amount of compute resources - required. If Requests is omitted - for a container, it defaults to - Limits if that is explicitly specified, - otherwise to an implementation-defined - value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object restartPolicy: - description: 'RestartPolicy defines the - restart behavior of individual containers - in a pod. This field may only be set - for init containers, and the only allowed - value is "Always". For non-init containers - or when this field is not specified, - the restart behavior is defined by the - Pod''s restart policy and the container - type. Setting the RestartPolicy as "Always" - for the init container will have the - following effect: this init container - will be continually restarted on exit - until all regular containers have terminated. - Once all regular containers have completed, - all init containers with restartPolicy - "Always" will be shut down. This lifecycle - differs from normal init containers - and is often referred to as a "sidecar" - container. Although this init container - still starts in the init container sequence, - it does not wait for the container to - complete before proceeding to the next - init container. Instead, the next init - container starts immediately after this - init container is started, or after - any startupProbe has successfully completed.' type: string securityContext: - description: 'SecurityContext defines - the security options the container should - be run with. If set, the fields of SecurityContext - override the equivalent fields of PodSecurityContext. - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: allowPrivilegeEscalation: - description: 'AllowPrivilegeEscalation - controls whether a process can gain - more privileges than its parent - process. This bool directly controls - if the no_new_privs flag will be - set on the container process. AllowPrivilegeEscalation - is true always when the container - is: 1) run as Privileged 2) has - CAP_SYS_ADMIN Note that this field - cannot be set when spec.os.name - is windows.' type: boolean appArmorProfile: - description: appArmorProfile is the - AppArmor options to use by this - container. If set, this profile - overrides the pod's appArmorProfile. - Note that this field cannot be set - when spec.os.name is windows. properties: localhostProfile: - description: localhostProfile - indicates a profile loaded on - the node that should be used. - The profile must be preconfigured - on the node to work. Must match - the loaded name of the profile. - Must be set if and only if type - is "Localhost". type: string type: - description: 'type indicates which - kind of AppArmor profile will - be applied. Valid options are: - Localhost - a profile pre-loaded - on the node. RuntimeDefault - - the container runtime''s default - profile. Unconfined - no AppArmor - enforcement.' type: string required: - type type: object capabilities: - description: The capabilities to add/drop - when running containers. Defaults - to the default set of capabilities - granted by the container runtime. - Note that this field cannot be set - when spec.os.name is windows. properties: add: - description: Added capabilities items: - description: Capability represent - POSIX capabilities type type: string type: array x-kubernetes-list-type: atomic drop: - description: Removed capabilities items: - description: Capability represent - POSIX capabilities type type: string type: array x-kubernetes-list-type: atomic type: object privileged: - description: Run container in privileged - mode. Processes in privileged containers - are essentially equivalent to root - on the host. Defaults to false. - Note that this field cannot be set - when spec.os.name is windows. type: boolean procMount: - description: procMount denotes the - type of proc mount to use for the - containers. The default is DefaultProcMount - which uses the container runtime - defaults for readonly paths and - masked paths. This requires the - ProcMountType feature flag to be - enabled. Note that this field cannot - be set when spec.os.name is windows. type: string readOnlyRootFilesystem: - description: Whether this container - has a read-only root filesystem. - Default is false. Note that this - field cannot be set when spec.os.name - is windows. type: boolean runAsGroup: - description: The GID to run the entrypoint - of the container process. Uses runtime - default if unset. May also be set - in PodSecurityContext. If set in - both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this - field cannot be set when spec.os.name - is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container - must run as a non-root user. If - true, the Kubelet will validate - the image at runtime to ensure that - it does not run as UID 0 (root) - and fail to start the container - if it does. If unset or false, no - such validation will be performed. - May also be set in PodSecurityContext. If - set in both SecurityContext and - PodSecurityContext, the value specified - in SecurityContext takes precedence. type: boolean runAsUser: - description: The UID to run the entrypoint - of the container process. Defaults - to user specified in image metadata - if unspecified. May also be set - in PodSecurityContext. If set in - both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this - field cannot be set when spec.os.name - is windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to - be applied to the container. If - unspecified, the container runtime - will allocate a random SELinux context - for each container. May also be - set in PodSecurityContext. If set - in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this - field cannot be set when spec.os.name - is windows. properties: level: - description: Level is SELinux - level label that applies to - the container. type: string role: - description: Role is a SELinux - role label that applies to the - container. type: string type: - description: Type is a SELinux - type label that applies to the - container. type: string user: - description: User is a SELinux - user label that applies to the - container. type: string type: object seccompProfile: - description: The seccomp options to - use by this container. If seccomp - options are provided at both the - pod & container level, the container - options override the pod options. - Note that this field cannot be set - when spec.os.name is windows. properties: localhostProfile: - description: localhostProfile - indicates a profile defined - in a file on the node should - be used. The profile must be - preconfigured on the node to - work. Must be a descending path, - relative to the kubelet's configured - seccomp profile location. Must - be set if type is "Localhost". - Must NOT be set for any other - type. type: string type: - description: "type indicates which - kind of seccomp profile will - be applied. Valid options are: - \n Localhost - a profile defined - in a file on the node should - be used. RuntimeDefault - the - container runtime default profile - should be used. Unconfined - - no profile should be applied." type: string required: - type type: object windowsOptions: - description: The Windows specific - settings applied to all containers. - If unspecified, the options from - the PodSecurityContext will be used. - If set in both SecurityContext and - PodSecurityContext, the value specified - in SecurityContext takes precedence. - Note that this field cannot be set - when spec.os.name is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec - is where the GMSA admission - webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the - GMSA credential spec named by - the GMSACredentialSpecName field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName - is the name of the GMSA credential - spec to use. type: string hostProcess: - description: HostProcess determines - if a container should be run - as a 'Host Process' container. - All of a Pod's containers must - have the same effective HostProcess - value (it is not allowed to - have a mix of HostProcess containers - and non-HostProcess containers). - In addition, if HostProcess - is true then HostNetwork must - also be set to true. type: boolean runAsUserName: - description: The UserName in Windows - to run the entrypoint of the - container process. Defaults - to the user specified in image - metadata if unspecified. May - also be set in PodSecurityContext. - If set in both SecurityContext - and PodSecurityContext, the - value specified in SecurityContext - takes precedence. type: string type: object type: object startupProbe: - description: 'StartupProbe indicates that - the Pod has successfully initialized. - If specified, no other probes are executed - until this completes successfully. If - this probe fails, the Pod will be restarted, - just as if the livenessProbe failed. - This can be used to provide different - probe parameters at the beginning of - a Pod''s lifecycle, when it might take - a long time to load data or warm a cache, - than during steady-state operation. - This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the - command is root ('/') in the - container's filesystem. The - command is simply exec'd, it - is not run inside a shell, so - traditional shell instructions - ('|', etc) won't work. To use - a shell, you need to explicitly - call out to that shell. Exit - status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults - to 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action - involving a GRPC port. properties: port: - description: Port number of the - gRPC service. Number must be - in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name - of the service to place in the - gRPC HealthCheckRequest (see - https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, - the default behavior is defined - by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the - http request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. - You probably want to set "Host" - in httpHeaders instead. type: string httpHeaders: - description: Custom headers to - set in the request. HTTP allows - repeated headers. items: - description: HTTPHeader describes - a custom header to be used - in HTTP probes properties: name: - description: The header - field name. This will - be canonicalized upon - output, so case-variant - names will be understood - as the same header. type: string value: - description: The header - field value type: string required: - name @@ -23898,176 +8618,61 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on - the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of - the port to access on the container. - Number must be in the range - 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for - connecting to the host. Defaults - to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after - the container has started before - liveness probes are initiated. More - info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) - to perform the probe. Default to - 10 seconds. Minimum value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to - 1. Must be 1 for liveness and startup. - Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an - action involving a TCP port. properties: host: - description: 'Optional: Host name - to connect to, defaults to the - pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of - the port to access on the container. - Number must be in the range - 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in - seconds the pod needs to terminate - gracefully upon probe failure. The - grace period is the duration in - seconds after the processes running - in the pod are sent a termination - signal and the time when the processes - are forcibly halted with a kill - signal. Set this value longer than - the expected cleanup time for your - process. If this value is nil, the - pod's terminationGracePeriodSeconds - will be used. Otherwise, this value - overrides the value provided by - the pod spec. Value must be non-negative - integer. The value zero indicates - stop immediately via the kill signal - (no opportunity to shut down). This - is a beta field and requires enabling - ProbeTerminationGracePeriod feature - gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after - which the probe times out. Defaults - to 1 second. Minimum value is 1. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object stdin: - description: Whether this container should - allocate a buffer for stdin in the container - runtime. If this is not set, reads from - stdin in the container will always result - in EOF. Default is false. type: boolean stdinOnce: - description: Whether the container runtime - should close the stdin channel after - it has been opened by a single attach. - When stdin is true the stdin stream - will remain open across multiple attach - sessions. If stdinOnce is set to true, - stdin is opened on container start, - is empty until the first client attaches - to stdin, and then remains open and - accepts data until the client disconnects, - at which time stdin is closed and remains - closed until the container is restarted. - If this flag is false, a container processes - that reads from stdin will never receive - an EOF. Default is false type: boolean terminationMessagePath: - description: 'Optional: Path at which - the file to which the container''s termination - message will be written is mounted into - the container''s filesystem. Message - written is intended to be brief final - status, such as an assertion failure - message. Will be truncated by the node - if greater than 4096 bytes. The total - message length across all containers - will be limited to 12kb. Defaults to - /dev/termination-log. Cannot be updated.' type: string terminationMessagePolicy: - description: Indicate how the termination - message should be populated. File will - use the contents of terminationMessagePath - to populate the container status message - on both success and failure. FallbackToLogsOnError - will use the last chunk of container - log output if the termination message - file is empty and the container exited - with an error. The log output is limited - to 2048 bytes or 80 lines, whichever - is smaller. Defaults to File. Cannot - be updated. type: string tty: - description: Whether this container should - allocate a TTY for itself, also requires - 'stdin' to be true. Default is false. type: boolean volumeDevices: - description: volumeDevices is the list - of block devices to be used by the container. items: - description: volumeDevice describes - a mapping of a raw block device within - a container. properties: devicePath: - description: devicePath is the path - inside of the container that the - device will be mapped to. type: string name: - description: name must match the - name of a persistentVolumeClaim - in the pod type: string required: - devicePath @@ -24078,84 +8683,21 @@ spec: - devicePath x-kubernetes-list-type: map volumeMounts: - description: Pod volumes to mount into - the container's filesystem. Cannot be - updated. items: - description: VolumeMount describes a - mounting of a Volume within a container. properties: mountPath: - description: Path within the container - at which the volume should be - mounted. Must not contain ':'. type: string mountPropagation: - description: mountPropagation determines - how mounts are propagated from - the host to container and the - other way around. When not set, - MountPropagationNone is used. - This field is beta in 1.10. When - RecursiveReadOnly is set to IfPossible - or to Enabled, MountPropagation - must be None or unspecified (which - defaults to None). type: string name: - description: This must match the - Name of a Volume. type: string readOnly: - description: Mounted read-only if - true, read-write otherwise (false - or unspecified). Defaults to false. type: boolean recursiveReadOnly: - description: "RecursiveReadOnly - specifies whether read-only mounts - should be handled recursively. - \n If ReadOnly is false, this - field has no meaning and must - be unspecified. \n If ReadOnly - is true, and this field is set - to Disabled, the mount is not - made recursively read-only. If - this field is set to IfPossible, - the mount is made recursively - read-only, if it is supported - by the container runtime. If - this field is set to Enabled, - the mount is made recursively - read-only if it is supported by - the container runtime, otherwise - the pod will not be started and - an error will be generated to - indicate the reason. \n If this - field is set to IfPossible or - Enabled, MountPropagation must - be set to None (or be unspecified, - which defaults to None). \n If - this field is not specified, it - is treated as an equivalent of - Disabled." type: string subPath: - description: Path within the volume - from which the container's volume - should be mounted. Defaults to - "" (volume's root). type: string subPathExpr: - description: Expanded path within - the volume from which the container's - volume should be mounted. Behaves - similarly to SubPath but environment - variable references $(VAR_NAME) - are expanded using the container's - environment. Defaults to "" (volume's - root). SubPathExpr and SubPath - are mutually exclusive. type: string required: - mountPath @@ -24166,81 +8708,33 @@ spec: - mountPath x-kubernetes-list-type: map workingDir: - description: Container's working directory. - If not specified, the container runtime's - default will be used, which might be - configured in the container image. Cannot - be updated. type: string required: - name type: object type: array lifecycle: - description: Actions that the management system - should take in response to container lifecycle - events. Cannot be updated. properties: postStart: - description: 'PostStart is called immediately - after a container is created. If the handler - fails, the container is terminated and - restarted according to its restart policy. - Other management of the container blocks - until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the - command is root ('/') in the - container's filesystem. The command - is simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, you - need to explicitly call out to - that shell. Exit status of 0 is - treated as live/healthy and non-zero - is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in - httpHeaders instead. type: string httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood - as the same header. type: string value: - description: The header field - value type: string required: - name @@ -24249,134 +8743,58 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the - HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration - that the container should sleep before - being terminated. properties: seconds: - description: Seconds is the number - of seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is - NOT supported as a LifecycleHandler - and kept for the backward compatibility. - There are no validation of this field - and lifecycle hooks will fail in runtime - when tcp handler is specified. properties: host: - description: 'Optional: Host name - to connect to, defaults to the - pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object type: object preStop: - description: 'PreStop is called immediately - before a container is terminated due to - an API request or management event such - as liveness/startup probe failure, preemption, - resource contention, etc. The handler - is not called if the container crashes - or exits. The Pod''s termination grace - period countdown begins before the PreStop - hook is executed. Regardless of the outcome - of the handler, the container will eventually - terminate within the Pod''s termination - grace period (unless delayed by finalizers). - Other management of the container blocks - until the hook completes or until the - termination grace period is reached. More - info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the - command is root ('/') in the - container's filesystem. The command - is simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, you - need to explicitly call out to - that shell. Exit status of 0 is - treated as live/healthy and non-zero - is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in - httpHeaders instead. type: string httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood - as the same header. type: string value: - description: The header field - value type: string required: - name @@ -24385,59 +8803,33 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the - HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration - that the container should sleep before - being terminated. properties: seconds: - description: Seconds is the number - of seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is - NOT supported as a LifecycleHandler - and kept for the backward compatibility. - There are no validation of this field - and lifecycle hooks will fail in runtime - when tcp handler is specified. properties: host: - description: 'Optional: Host name - to connect to, defaults to the - pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port @@ -24445,90 +8837,38 @@ spec: type: object type: object livenessProbe: - description: 'Periodic probe of container liveness. - Container will be restarted if the probe fails. - Controllers may set default LivenessProbe - if no liveness probe is provided. To ignore - defaulting, set the value to empty LivenessProbe - "{}". Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to - take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it is - not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to - explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults to 3. - Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving - a GRPC port. properties: port: - description: Port number of the gRPC - service. Number must be in the range - 1 to 65535. format: int32 type: integer service: - description: "Service is the name of - the service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default - behavior is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect to, - defaults to the pod IP. You probably - want to set "Host" in httpHeaders - instead. type: string httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in HTTP - probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood as - the same header. type: string value: - description: The header field - value type: string required: - name @@ -24537,228 +8877,95 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP - server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port - to access on the container. Number - must be in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the - container has started before liveness - probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform - the probe. Default to 10 seconds. Minimum - value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. Must - be 1 for liveness and startup. Minimum - value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action - involving a TCP port. properties: host: - description: 'Optional: Host name to - connect to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port - to access on the container. Number - must be in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully - upon probe failure. The grace period is - the duration in seconds after the processes - running in the pod are sent a termination - signal and the time when the processes - are forcibly halted with a kill signal. - Set this value longer than the expected - cleanup time for your process. If this - value is nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value overrides - the value provided by the pod spec. Value - must be non-negative integer. The value - zero indicates stop immediately via the - kill signal (no opportunity to shut down). - This is a beta field and requires enabling - ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which - the probe times out. Defaults to 1 second. - Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object nodeSelector: additionalProperties: type: string - description: 'NodeSelector is a selector which - must be true for the pod to fit on a node. - Selector which must match a node''s labels - for the pod to be scheduled on that node. - More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/' type: object x-kubernetes-map-type: atomic podPlacementPolicy: - description: PodPlacementPolicy is the reference - of the podPlacementPolicy properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type with - an empty value here are almost certainly - wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic priority: - description: The priority value. Various system - components use this field to find the priority - of the pod. When Priority Admission Controller - is enabled, it prevents users from setting - this field. The admission controller populates - this field from PriorityClassName. The higher - the value, the higher the priority. format: int32 type: integer priorityClassName: - description: If specified, indicates the pod's - priority. "system-node-critical" and "system-cluster-critical" - are two special keywords which indicate the - highest priorities with the former being the - highest priority. Any other name must be defined - by creating a PriorityClass object with that - name. If not specified, the pod priority will - be default or zero if there is no default. type: string readinessProbe: - description: 'Periodic probe of container service - readiness. Container will be removed from - service endpoints if the probe fails. Cannot - be updated. Controllers may set default ReadinessProbe - if no readyness probe is provided. To ignore - defaulting, set the value to empty ReadynessProbe - "{}". More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to - take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it is - not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to - explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults to 3. - Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving - a GRPC port. properties: port: - description: Port number of the gRPC - service. Number must be in the range - 1 to 65535. format: int32 type: integer service: - description: "Service is the name of - the service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default - behavior is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect to, - defaults to the pod IP. You probably - want to set "Host" in httpHeaders - instead. type: string httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in HTTP - probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood as - the same header. type: string value: - description: The header field - value type: string required: - name @@ -24767,116 +8974,51 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP - server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port - to access on the container. Number - must be in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the - container has started before liveness - probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform - the probe. Default to 10 seconds. Minimum - value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. Must - be 1 for liveness and startup. Minimum - value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action - involving a TCP port. properties: host: - description: 'Optional: Host name to - connect to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port - to access on the container. Number - must be in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully - upon probe failure. The grace period is - the duration in seconds after the processes - running in the pod are sent a termination - signal and the time when the processes - are forcibly halted with a kill signal. - Set this value longer than the expected - cleanup time for your process. If this - value is nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value overrides - the value provided by the pod spec. Value - must be non-negative integer. The value - zero indicates stop immediately via the - kill signal (no opportunity to shut down). - This is a beta field and requires enabling - ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which - the probe times out. Defaults to 1 second. - Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object resources: - description: Compute Resources required by the - sidecar container. properties: claims: - description: "Claims lists the names of - resources, defined in spec.resourceClaims, - that are used by this container. \n This - is an alpha field and requires enabling - the DynamicResourceAllocation feature - gate. \n This field is immutable. It can - only be set for containers." items: - description: ResourceClaim references - one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name - of one entry in pod.spec.resourceClaims - of the Pod where this field is used. - It makes that resource available - inside a container. type: string required: - name @@ -24892,9 +9034,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum - amount of compute resources allowed. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -24903,225 +9042,68 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum - amount of compute resources required. - If Requests is omitted for a container, - it defaults to Limits if that is explicitly - specified, otherwise to an implementation-defined - value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object runtimeClassName: - description: 'RuntimeClassName refers to a RuntimeClass - object in the node.k8s.io group, which should - be used to run this pod. If no RuntimeClass - resource matches the named class, the pod - will not be run. If unset or empty, the "legacy" - RuntimeClass will be used, which is an implicit - class with an empty definition that uses the - default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class' type: string schedulerName: - description: If specified, the pod will be dispatched - by specified scheduler. If not specified, - the pod will be dispatched by default scheduler. type: string securityContext: - description: 'SecurityContext holds pod-level - security attributes and common container settings. - Optional: Defaults to empty. See type description - for default values of each field.' properties: appArmorProfile: - description: appArmorProfile is the AppArmor - options to use by the containers in this - pod. Note that this field cannot be set - when spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile loaded on the node that - should be used. The profile must be - preconfigured on the node to work. - Must match the loaded name of the - profile. Must be set if and only if - type is "Localhost". type: string type: - description: 'type indicates which kind - of AppArmor profile will be applied. - Valid options are: Localhost - a profile - pre-loaded on the node. RuntimeDefault - - the container runtime''s default - profile. Unconfined - no AppArmor - enforcement.' type: string required: - type type: object fsGroup: - description: "A special supplemental group - that applies to all containers in a pod. - Some volume types allow the Kubelet to - change the ownership of that volume to - be owned by the pod: \n 1. The owning - GID will be the FSGroup 2. The setgid - bit is set (new files created in the volume - will be owned by FSGroup) 3. The permission - bits are OR'd with rw-rw---- \n If unset, - the Kubelet will not modify the ownership - and permissions of any volume. Note that - this field cannot be set when spec.os.name - is windows." format: int64 type: integer fsGroupChangePolicy: - description: 'fsGroupChangePolicy defines - behavior of changing ownership and permission - of the volume before being exposed inside - Pod. This field will only apply to volume - types which support fsGroup based ownership(and - permissions). It will have no effect on - ephemeral volume types such as: secret, - configmaps and emptydir. Valid values - are "OnRootMismatch" and "Always". If - not specified, "Always" is used. Note - that this field cannot be set when spec.os.name - is windows.' type: string runAsGroup: - description: The GID to run the entrypoint - of the container process. Uses runtime - default if unset. May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence for that container. Note - that this field cannot be set when spec.os.name - is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container - must run as a non-root user. If true, - the Kubelet will validate the image at - runtime to ensure that it does not run - as UID 0 (root) and fail to start the - container if it does. If unset or false, - no such validation will be performed. - May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: boolean runAsUser: - description: The UID to run the entrypoint - of the container process. Defaults to - user specified in image metadata if unspecified. - May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence for that container. Note - that this field cannot be set when spec.os.name - is windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be applied - to all containers. If unspecified, the - container runtime will allocate a random - SELinux context for each container. May - also be set in SecurityContext. If set - in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence for that container. Note - that this field cannot be set when spec.os.name - is windows. properties: level: - description: Level is SELinux level - label that applies to the container. type: string role: - description: Role is a SELinux role - label that applies to the container. type: string type: - description: Type is a SELinux type - label that applies to the container. type: string user: - description: User is a SELinux user - label that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to use - by the containers in this pod. Note that - this field cannot be set when spec.os.name - is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile defined in a file on the - node should be used. The profile must - be preconfigured on the node to work. - Must be a descending path, relative - to the kubelet's configured seccomp - profile location. Must be set if type - is "Localhost". Must NOT be set for - any other type. type: string type: - description: "type indicates which kind - of seccomp profile will be applied. - Valid options are: \n Localhost - - a profile defined in a file on the - node should be used. RuntimeDefault - - the container runtime default profile - should be used. Unconfined - no profile - should be applied." type: string required: - type type: object supplementalGroups: - description: A list of groups applied to - the first process run in each container, - in addition to the container's primary - GID, the fsGroup (if specified), and group - memberships defined in the container image - for the uid of the container process. - If unspecified, no additional groups are - added to any container. Note that group - memberships defined in the container image - for the uid of the container process are - still effective, even if they are not - included in this list. Note that this - field cannot be set when spec.os.name - is windows. items: format: int64 type: integer type: array x-kubernetes-list-type: atomic sysctls: - description: Sysctls hold a list of namespaced - sysctls used for the pod. Pods with unsupported - sysctls (by the container runtime) might - fail to launch. Note that this field cannot - be set when spec.os.name is windows. items: - description: Sysctl defines a kernel parameter - to be set properties: name: - description: Name of a property to - set type: string value: - description: Value of a property to - set type: string required: - name @@ -25130,183 +9112,53 @@ spec: type: array x-kubernetes-list-type: atomic windowsOptions: - description: The Windows specific settings - applied to all containers. If unspecified, - the options within a container's SecurityContext - will be used. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. Note - that this field cannot be set when spec.os.name - is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is where - the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA credential - spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName - is the name of the GMSA credential - spec to use. type: string hostProcess: - description: HostProcess determines - if a container should be run as a - 'Host Process' container. All of a - Pod's containers must have the same - effective HostProcess value (it is - not allowed to have a mix of HostProcess - containers and non-HostProcess containers). - In addition, if HostProcess is true - then HostNetwork must also be set - to true. type: boolean runAsUserName: - description: The UserName in Windows - to run the entrypoint of the container - process. Defaults to the user specified - in image metadata if unspecified. - May also be set in PodSecurityContext. - If set in both SecurityContext and - PodSecurityContext, the value specified - in SecurityContext takes precedence. type: string type: object type: object serviceAccountName: - description: 'ServiceAccountName is the name - of the ServiceAccount to use to run this pod. - More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/' type: string shareProcessNamespace: - description: 'Share a single process namespace - between all of the containers in a pod. When - this is set containers will be able to view - and signal processes from other containers - in the same pod, and the first process in - each container will not be assigned PID 1. - HostPID and ShareProcessNamespace cannot both - be set. Optional: Default to false.' type: boolean terminationGracePeriodSeconds: - description: Optional duration in seconds the - pod needs to terminate gracefully. May be - decreased in delete request. Value must be - non-negative integer. The value zero indicates - stop immediately via the kill signal (no opportunity - to shut down). If this value is nil, the default - grace period will be used instead. The grace - period is the duration in seconds after the - processes running in the pod are sent a termination - signal and the time when the processes are - forcibly halted with a kill signal. Set this - value longer than the expected cleanup time - for your process. Defaults to 30 seconds. format: int64 type: integer tolerations: - description: If specified, the pod's tolerations. items: - description: The pod this Toleration is attached - to tolerates any taint that matches the - triple using the matching - operator . properties: effect: - description: Effect indicates the taint - effect to match. Empty means match all - taint effects. When specified, allowed - values are NoSchedule, PreferNoSchedule - and NoExecute. type: string key: - description: Key is the taint key that - the toleration applies to. Empty means - match all taint keys. If the key is - empty, operator must be Exists; this - combination means to match all values - and all keys. type: string operator: - description: Operator represents a key's - relationship to the value. Valid operators - are Exists and Equal. Defaults to Equal. - Exists is equivalent to wildcard for - value, so that a pod can tolerate all - taints of a particular category. type: string tolerationSeconds: - description: TolerationSeconds represents - the period of time the toleration (which - must be of effect NoExecute, otherwise - this field is ignored) tolerates the - taint. By default, it is not set, which - means tolerate the taint forever (do - not evict). Zero and negative values - will be treated as 0 (evict immediately) - by the system. format: int64 type: integer value: - description: Value is the taint value - the toleration matches to. If the operator - is Exists, the value should be empty, - otherwise just a regular string. type: string type: object type: array topologySpreadConstraints: - description: TopologySpreadConstraints describes - how a group of pods ought to spread across - topology domains. Scheduler will schedule - pods in a way which abides by the constraints. - All topologySpreadConstraints are ANDed. items: - description: TopologySpreadConstraint specifies - how to spread matching pods among the given - topology. properties: labelSelector: - description: LabelSelector is used to - find matching pods. Pods that match - this label selector are counted to determine - the number of pods in their corresponding - topology domain. properties: matchExpressions: - description: matchExpressions is a - list of label selector requirements. - The requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to a - set of values. Valid operators - are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an array - of string values. If the operator - is In or NotIn, the values - array must be non-empty. If - the operator is Exists or - DoesNotExist, the values array - must be empty. This array - is replaced during a strategic - merge patch. items: type: string type: array @@ -25320,176 +9172,27 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map - of {key,value} pairs. A single {key,value} - in the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: "MatchLabelKeys is a set - of pod label keys to select the pods - over which spreading will be calculated. - The keys are used to lookup values from - the incoming pod labels, those key-value - labels are ANDed with labelSelector - to select the group of existing pods - over which spreading will be calculated - for the incoming pod. The same key is - forbidden to exist in both MatchLabelKeys - and LabelSelector. MatchLabelKeys cannot - be set when LabelSelector isn't set. - Keys that don't exist in the incoming - pod labels will be ignored. A null or - empty list means only match against - labelSelector. \n This is a beta field - and requires the MatchLabelKeysInPodTopologySpread - feature gate to be enabled (enabled - by default)." items: type: string type: array x-kubernetes-list-type: atomic maxSkew: - description: 'MaxSkew describes the degree - to which pods may be unevenly distributed. - When `whenUnsatisfiable=DoNotSchedule`, - it is the maximum permitted difference - between the number of matching pods - in the target topology and the global - minimum. The global minimum is the minimum - number of matching pods in an eligible - domain or zero if the number of eligible - domains is less than MinDomains. For - example, in a 3-zone cluster, MaxSkew - is set to 1, and pods with the same - labelSelector spread as 2/2/1: In this - case, the global minimum is 1. | zone1 - | zone2 | zone3 | | P P | P P | P | - - if MaxSkew is 1, incoming pod can - only be scheduled to zone3 to become - 2/2/2; scheduling it onto zone1(zone2) - would make the ActualSkew(3-1) on zone1(zone2) - violate MaxSkew(1). - if MaxSkew is - 2, incoming pod can be scheduled onto - any zone. When `whenUnsatisfiable=ScheduleAnyway`, - it is used to give higher precedence - to topologies that satisfy it. It''s - a required field. Default value is 1 - and 0 is not allowed.' format: int32 type: integer minDomains: - description: "MinDomains indicates a minimum - number of eligible domains. When the - number of eligible domains with matching - topology keys is less than minDomains, - Pod Topology Spread treats \"global - minimum\" as 0, and then the calculation - of Skew is performed. And when the number - of eligible domains with matching topology - keys equals or greater than minDomains, - this value has no effect on scheduling. - As a result, when the number of eligible - domains is less than minDomains, scheduler - won't schedule more than maxSkew Pods - to those domains. If value is nil, the - constraint behaves as if MinDomains - is equal to 1. Valid values are integers - greater than 0. When value is not nil, - WhenUnsatisfiable must be DoNotSchedule. - \n For example, in a 3-zone cluster, - MaxSkew is set to 2, MinDomains is set - to 5 and pods with the same labelSelector - spread as 2/2/2: | zone1 | zone2 | zone3 - | | P P | P P | P P | The number - of domains is less than 5(MinDomains), - so \"global minimum\" is treated as - 0. In this situation, new pod with the - same labelSelector cannot be scheduled, - because computed skew will be 3(3 - - 0) if new Pod is scheduled to any of - the three zones, it will violate MaxSkew." format: int32 type: integer nodeAffinityPolicy: - description: "NodeAffinityPolicy indicates - how we will treat Pod's nodeAffinity/nodeSelector - when calculating pod topology spread - skew. Options are: - Honor: only nodes - matching nodeAffinity/nodeSelector are - included in the calculations. - Ignore: - nodeAffinity/nodeSelector are ignored. - All nodes are included in the calculations. - \n If this value is nil, the behavior - is equivalent to the Honor policy. This - is a beta-level feature default enabled - by the NodeInclusionPolicyInPodTopologySpread - feature flag." type: string nodeTaintsPolicy: - description: "NodeTaintsPolicy indicates - how we will treat node taints when calculating - pod topology spread skew. Options are: - - Honor: nodes without taints, along - with tainted nodes for which the incoming - pod has a toleration, are included. - - Ignore: node taints are ignored. All - nodes are included. \n If this value - is nil, the behavior is equivalent to - the Ignore policy. This is a beta-level - feature default enabled by the NodeInclusionPolicyInPodTopologySpread - feature flag." type: string topologyKey: - description: TopologyKey is the key of - node labels. Nodes that have a label - with this key and identical values are - considered to be in the same topology. - We consider each as a "bucket", - and try to put balanced number of pods - into each bucket. We define a domain - as a particular instance of a topology. - Also, we define an eligible domain as - a domain whose nodes meet the requirements - of nodeAffinityPolicy and nodeTaintsPolicy. - e.g. If TopologyKey is "kubernetes.io/hostname", - each Node is a domain of that topology. - And, if TopologyKey is "topology.kubernetes.io/zone", - each zone is a domain of that topology. - It's a required field. type: string whenUnsatisfiable: - description: 'WhenUnsatisfiable indicates - how to deal with a pod if it doesn''t - satisfy the spread constraint. - DoNotSchedule - (default) tells the scheduler not to - schedule it. - ScheduleAnyway tells - the scheduler to schedule the pod in - any location, but giving higher precedence - to topologies that would help reduce - the skew. A constraint is considered - "Unsatisfiable" for an incoming pod - if and only if every possible node assignment - for that pod would violate "MaxSkew" - on some topology. For example, in a - 3-zone cluster, MaxSkew is set to 1, - and pods with the same labelSelector - spread as 3/1/1: | zone1 | zone2 | zone3 - | | P P P | P | P | If WhenUnsatisfiable - is set to DoNotSchedule, incoming pod - can only be scheduled to zone2(zone3) - to become 3/2/1(3/1/2) as ActualSkew(2-1) - on zone2(zone3) satisfies MaxSkew(1). - In other words, the cluster can still - be imbalanced, but scheduler won''t - make it *more* imbalanced. It''s a required - field.' type: string required: - maxSkew @@ -25502,75 +9205,21 @@ spec: - whenUnsatisfiable x-kubernetes-list-type: map volumeMounts: - description: Pod volumes to mount into the container's - filesystem. Cannot be updated. items: - description: VolumeMount describes a mounting - of a Volume within a container. properties: mountPath: - description: Path within the container - at which the volume should be mounted. Must - not contain ':'. type: string mountPropagation: - description: mountPropagation determines - how mounts are propagated from the host - to container and the other way around. - When not set, MountPropagationNone is - used. This field is beta in 1.10. When - RecursiveReadOnly is set to IfPossible - or to Enabled, MountPropagation must - be None or unspecified (which defaults - to None). type: string name: - description: This must match the Name - of a Volume. type: string readOnly: - description: Mounted read-only if true, - read-write otherwise (false or unspecified). - Defaults to false. type: boolean recursiveReadOnly: - description: "RecursiveReadOnly specifies - whether read-only mounts should be handled - recursively. \n If ReadOnly is false, - this field has no meaning and must be - unspecified. \n If ReadOnly is true, - and this field is set to Disabled, the - mount is not made recursively read-only. - \ If this field is set to IfPossible, - the mount is made recursively read-only, - if it is supported by the container - runtime. If this field is set to Enabled, - the mount is made recursively read-only - if it is supported by the container - runtime, otherwise the pod will not - be started and an error will be generated - to indicate the reason. \n If this field - is set to IfPossible or Enabled, MountPropagation - must be set to None (or be unspecified, - which defaults to None). \n If this - field is not specified, it is treated - as an equivalent of Disabled." type: string subPath: - description: Path within the volume from - which the container's volume should - be mounted. Defaults to "" (volume's - root). type: string subPathExpr: - description: Expanded path within the - volume from which the container's volume - should be mounted. Behaves similarly - to SubPath but environment variable - references $(VAR_NAME) are expanded - using the container's environment. Defaults - to "" (volume's root). SubPathExpr and - SubPath are mutually exclusive. type: string required: - mountPath @@ -25578,309 +9227,109 @@ spec: type: object type: array volumes: - description: 'List of volumes that can be mounted - by containers belonging to the pod. More info: - https://kubernetes.io/docs/concepts/storage/volumes' items: - description: Volume represents a named volume - in a pod that may be accessed by any container - in the pod. properties: awsElasticBlockStore: - description: 'awsElasticBlockStore represents - an AWS Disk resource that is attached - to a kubelet''s host machine and then - exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' properties: fsType: - description: 'fsType is the filesystem - type of the volume that you want - to mount. Tip: Ensure that the filesystem - type is supported by the host operating - system. Examples: "ext4", "xfs", - "ntfs". Implicitly inferred to be - "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in - the filesystem from compromising - the machine' type: string partition: - description: 'partition is the partition - in the volume that you want to mount. - If omitted, the default is to mount - by volume name. Examples: For volume - /dev/sda1, you specify the partition - as "1". Similarly, the volume partition - for /dev/sda is "0" (or you can - leave the property empty).' format: int32 type: integer readOnly: - description: 'readOnly value true - will force the readOnly setting - in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: boolean volumeID: - description: 'volumeID is unique ID - of the persistent disk resource - in AWS (Amazon EBS volume). More - info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: string required: - volumeID type: object azureDisk: - description: azureDisk represents an Azure - Data Disk mount on the host and bind - mount to the pod. properties: cachingMode: - description: 'cachingMode is the Host - Caching mode: None, Read Only, Read - Write.' type: string diskName: - description: diskName is the Name - of the data disk in the blob storage type: string diskURI: - description: diskURI is the URI of - data disk in the blob storage type: string fsType: - description: fsType is Filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" - if unspecified. type: string kind: - description: 'kind expected values - are Shared: multiple blob disks - per storage account Dedicated: - single blob disk per storage account Managed: - azure managed data disk (only in - managed availability set). defaults - to shared' type: string readOnly: - description: readOnly Defaults to - false (read/write). ReadOnly here - will force the ReadOnly setting - in VolumeMounts. type: boolean required: - diskName - diskURI type: object azureFile: - description: azureFile represents an Azure - File Service mount on the host and bind - mount to the pod. properties: readOnly: - description: readOnly defaults to - false (read/write). ReadOnly here - will force the ReadOnly setting - in VolumeMounts. type: boolean secretName: - description: secretName is the name - of secret that contains Azure Storage - Account Name and Key type: string shareName: - description: shareName is the azure - share Name type: string required: - secretName - shareName type: object cephfs: - description: cephFS represents a Ceph - FS mount on the host that shares a pod's - lifetime properties: monitors: - description: 'monitors is Required: - Monitors is a collection of Ceph - monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic path: - description: 'path is Optional: Used - as the mounted root, rather than - the full Ceph tree, default is /' type: string readOnly: - description: 'readOnly is Optional: - Defaults to false (read/write). - ReadOnly here will force the ReadOnly - setting in VolumeMounts. More info: - https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: boolean secretFile: - description: 'secretFile is Optional: - SecretFile is the path to key ring - for User, default is /etc/ceph/user.secret - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string secretRef: - description: 'secretRef is Optional: - SecretRef is reference to the authentication - secret for User, default is empty. - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is optional: User - is the rados user name, default - is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string required: - monitors type: object cinder: - description: 'cinder represents a cinder - volume attached and mounted on kubelets - host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' properties: fsType: - description: 'fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Examples: "ext4", "xfs", - "ntfs". Implicitly inferred to be - "ext4" if unspecified. More info: - https://examples.k8s.io/mysql-cinder-pd/README.md' type: string readOnly: - description: 'readOnly defaults to - false (read/write). ReadOnly here - will force the ReadOnly setting - in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: boolean secretRef: - description: 'secretRef is optional: - points to a secret object containing - parameters used to connect to OpenStack.' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeID: - description: 'volumeID used to identify - the volume in cinder. More info: - https://examples.k8s.io/mysql-cinder-pd/README.md' type: string required: - volumeID type: object configMap: - description: configMap represents a configMap - that should populate this volume properties: defaultMode: - description: 'defaultMode is optional: - mode bits used to set permissions - on created files by default. Must - be an octal value between 0000 and - 0777 or a decimal value between - 0 and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. Defaults - to 0644. Directories within the - path are not affected by this setting. - This might be in conflict with other - options that affect the file mode, - like fsGroup, and the result can - be other mode bits set.' format: int32 type: integer items: - description: items if unspecified, - each key-value pair in the Data - field of the referenced ConfigMap - will be projected into the volume - as a file whose name is the key - and content is the value. If specified, - the listed keys will be projected - into the specified paths, and unlisted - keys will not be present. If a key - is specified which is not present - in the ConfigMap, the volume setup - will error unless it is marked optional. - Paths must be relative and may not - contain the '..' path or start with - '..'. items: - description: Maps a string key to - a path within a volume. properties: key: - description: key is the key - to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an octal - value between 0000 and 0777 - or a decimal value between - 0 and 511. YAML accepts both - octal and decimal values, - JSON requires decimal values - for mode bits. If not specified, - the volume defaultMode will - be used. This might be in - conflict with other options - that affect the file mode, - like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the - key to. May not be an absolute - path. May not contain the - path element '..'. May not - start with the string '..'. type: string required: - key @@ -25890,199 +9339,67 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether - the ConfigMap or its keys must be - defined type: boolean type: object x-kubernetes-map-type: atomic csi: - description: csi (Container Storage Interface) - represents ephemeral storage that is - handled by certain external CSI drivers - (Beta feature). properties: driver: - description: driver is the name of - the CSI driver that handles this - volume. Consult with your admin - for the correct name as registered - in the cluster. type: string fsType: - description: fsType to mount. Ex. - "ext4", "xfs", "ntfs". If not provided, - the empty value is passed to the - associated CSI driver which will - determine the default filesystem - to apply. type: string nodePublishSecretRef: - description: nodePublishSecretRef - is a reference to the secret object - containing sensitive information - to pass to the CSI driver to complete - the CSI NodePublishVolume and NodeUnpublishVolume - calls. This field is optional, and may - be empty if no secret is required. - If the secret object contains more - than one secret, all secret references - are passed. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic readOnly: - description: readOnly specifies a - read-only configuration for the - volume. Defaults to false (read/write). type: boolean volumeAttributes: additionalProperties: type: string - description: volumeAttributes stores - driver-specific properties that - are passed to the CSI driver. Consult - your driver's documentation for - supported values. type: object required: - driver type: object downwardAPI: - description: downwardAPI represents downward - API about the pod that should populate - this volume properties: defaultMode: - description: 'Optional: mode bits - to use on created files by default. - Must be a Optional: mode bits used - to set permissions on created files - by default. Must be an octal value - between 0000 and 0777 or a decimal - value between 0 and 511. YAML accepts - both octal and decimal values, JSON - requires decimal values for mode - bits. Defaults to 0644. Directories - within the path are not affected - by this setting. This might be in - conflict with other options that - affect the file mode, like fsGroup, - and the result can be other mode - bits set.' format: int32 type: integer items: - description: Items is a list of downward - API volume file items: - description: DownwardAPIVolumeFile - represents information to create - the file containing the pod field properties: fieldRef: - description: 'Required: Selects - a field of the pod: only annotations, - labels, name, namespace and - uid are supported.' properties: apiVersion: - description: Version of - the schema the FieldPath - is written in terms of, - defaults to "v1". type: string fieldPath: - description: Path of the - field to select in the - specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode - bits used to set permissions - on this file, must be an octal - value between 0000 and 0777 - or a decimal value between - 0 and 511. YAML accepts both - octal and decimal values, - JSON requires decimal values - for mode bits. If not specified, - the volume defaultMode will - be used. This might be in - conflict with other options - that affect the file mode, - like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: 'Required: Path - is the relative path name - of the file to be created. - Must not be absolute or contain - the ''..'' path. Must be utf-8 - encoded. The first item of - the relative path must not - start with ''..''' type: string resourceFieldRef: - description: 'Selects a resource - of the container: only resources - limits and requests (limits.cpu, - limits.memory, requests.cpu - and requests.memory) are currently - supported.' properties: containerName: - description: 'Container - name: required for volumes, - optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the - output format of the exposed - resources, defaults to - "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: - resource to select' type: string required: - resource @@ -26095,265 +9412,50 @@ spec: x-kubernetes-list-type: atomic type: object emptyDir: - description: 'emptyDir represents a temporary - directory that shares a pod''s lifetime. - More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' properties: medium: - description: 'medium represents what - type of storage medium should back - this directory. The default is "" - which means to use the node''s default - medium. Must be an empty string - (default) or Memory. More info: - https://kubernetes.io/docs/concepts/storage/volumes#emptydir' type: string sizeLimit: anyOf: - type: integer - type: string - description: 'sizeLimit is the total - amount of local storage required - for this EmptyDir volume. The size - limit is also applicable for memory - medium. The maximum usage on memory - medium EmptyDir would be the minimum - value between the SizeLimit specified - here and the sum of memory limits - of all containers in a pod. The - default is nil which means that - the limit is undefined. More info: - https://kubernetes.io/docs/concepts/storage/volumes#emptydir' pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object ephemeral: - description: "ephemeral represents a volume - that is handled by a cluster storage - driver. The volume's lifecycle is tied - to the pod that defines it - it will - be created before the pod starts, and - deleted when the pod is removed. \n - Use this if: a) the volume is only needed - while the pod runs, b) features of normal - volumes like restoring from snapshot - or capacity tracking are needed, c) - the storage driver is specified through - a storage class, and d) the storage - driver supports dynamic volume provisioning - through a PersistentVolumeClaim (see - EphemeralVolumeSource for more information - on the connection between this volume - type and PersistentVolumeClaim). \n - Use PersistentVolumeClaim or one of - the vendor-specific APIs for volumes - that persist for longer than the lifecycle - of an individual pod. \n Use CSI for - light-weight local ephemeral volumes - if the CSI driver is meant to be used - that way - see the documentation of - the driver for more information. \n - A pod can use both types of ephemeral - volumes and persistent volumes at the - same time." properties: volumeClaimTemplate: - description: "Will be used to create - a stand-alone PVC to provision the - volume. The pod in which this EphemeralVolumeSource - is embedded will be the owner of - the PVC, i.e. the PVC will be deleted - together with the pod. The name - of the PVC will be `-` where `` is - the name from the `PodSpec.Volumes` - array entry. Pod validation will - reject the pod if the concatenated - name is not valid for a PVC (for - example, too long). \n An existing - PVC with that name that is not owned - by the pod will *not* be used for - the pod to avoid using an unrelated - volume by mistake. Starting the - pod is then blocked until the unrelated - PVC is removed. If such a pre-created - PVC is meant to be used by the pod, - the PVC has to updated with an owner - reference to the pod once the pod - exists. Normally this should not - be necessary, but it may be useful - when manually reconstructing a broken - cluster. \n This field is read-only - and no changes will be made by Kubernetes - to the PVC after it has been created. - \n Required, must not be nil." properties: metadata: - description: May contain labels - and annotations that will be - copied into the PVC when creating - it. No other fields are allowed - and will be rejected during - validation. properties: annotations: additionalProperties: type: string - description: 'Annotations - is an unstructured key value - map stored with a resource - that may be set by external - tools to store and retrieve - arbitrary metadata. They - are not queryable and should - be preserved when modifying - objects. More info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName - is an optional prefix, used - by the server, to generate - a unique name ONLY IF the - Name field has not been - provided. If this field - is used, the name returned - to the client will be different - than the name passed. This - value will also be combined - with a unique suffix. The - provided value has the same - validation rules as the - Name field, and may be truncated - by the length of the suffix - required to make the value - unique on the server. \n - If this field is specified - and the generated name exists, - the server will NOT return - a 409 - instead, it will - either return 201 Created - or 500 with Reason ServerTimeout - indicating a unique name - could not be found in the - time allotted, and the client - should retry (optionally - after the time indicated - in the Retry-After header). - \n Applied only if Name - is not specified. More info: - https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string - keys and values that can - be used to organize and - categorize (scope and select) - objects. May match selectors - of replication controllers - and services. More info: - http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must be - unique within a namespace. - Is required when creating - resources, although some - resources may allow a client - to request the generation - of an appropriate name automatically. - Name is primarily intended - for creation idempotence - and configuration definition. - Cannot be updated. More - info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace defines - the space within each name - must be unique. An empty - namespace is equivalent - to the \"default\" namespace, - but \"default\" is the canonical - representation. Not all - objects are required to - be scoped to a namespace - - the value of this field - for those objects will be - empty. \n Must be a DNS_LABEL. - Cannot be updated. More - info: http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects - depended by this object. - If ALL objects in the list - have been deleted, this - object will be garbage collected. - If this object is managed - by a controller, then an - entry in this list will - point to this controller, - with the controller field - set to true. There cannot - be more than one managing - controller. items: - description: OwnerReference - contains enough information - to let you identify an - owning object. An owning - object must be in the - same namespace as the - dependent, or be cluster-scoped, - so there is no namespace - field. properties: apiVersion: - description: API version - of the referent. type: string blockOwnerDeletion: - description: If true, - AND if the owner has - the "foregroundDeletion" - finalizer, then the - owner cannot be deleted - from the key-value - store until this reference - is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage - collector interacts - with this field and - enforces the foreground - deletion. Defaults - to false. To set this - field, a user needs - "delete" permission - of the owner, otherwise - 422 (Unprocessable - Entity) will be returned. type: boolean controller: - description: If true, - this reference points - to the managing controller. type: boolean kind: - description: 'Kind of - the referent. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of - the referent. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of - the referent. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -26365,66 +9467,19 @@ spec: type: array type: object spec: - description: The specification - for the PersistentVolumeClaim. - The entire content is copied - unchanged into the PVC that - gets created from this template. - The same fields as in a PersistentVolumeClaim - are also valid here. properties: accessModes: - description: 'accessModes - contains the desired access - modes the volume should - have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource field - can be used to specify either: - * An existing VolumeSnapshot - object (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an - external controller can - support the specified data - source, it will create a - new volume based on the - contents of the specified - data source. When the AnyVolumeDataSource - feature gate is enabled, - dataSource contents will - be copied to dataSourceRef, - and dataSourceRef contents - will be copied to dataSource - when dataSourceRef.namespace - is not specified. If the - namespace is specified, - then dataSourceRef will - not be copied to dataSource.' properties: apiGroup: - description: APIGroup - is the group for the - resource being referenced. - If APIGroup is not specified, - the specified Kind must - be in the core API group. - For any other third-party - types, APIGroup is required. type: string kind: - description: Kind is the - type of resource being - referenced type: string name: - description: Name is the - name of resource being - referenced type: string required: - kind @@ -26432,114 +9487,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef - specifies the object from - which to populate the volume - with data, if a non-empty - volume is desired. This - may be any object from a - non-empty API group (non - core object) or a PersistentVolumeClaim - object. When this field - is specified, volume binding - will only succeed if the - type of the specified object - matches some installed volume - populator or dynamic provisioner. - This field will replace - the functionality of the - dataSource field and as - such if both fields are - non-empty, they must have - the same value. For backwards - compatibility, when namespace - isn''t specified in dataSourceRef, - both fields (dataSource - and dataSourceRef) will - be set to the same value - automatically if one of - them is empty and the other - is non-empty. When namespace - is specified in dataSourceRef, - dataSource isn''t set to - the same value and must - be empty. There are three - important differences between - dataSource and dataSourceRef: - * While dataSource only - allows two specific types - of objects, dataSourceRef - allows any non-core object, - as well as PersistentVolumeClaim - objects. * While dataSource - ignores disallowed values - (dropping them), dataSourceRef - preserves all values, and - generates an error if a - disallowed value is specified. - * While dataSource only - allows local objects, dataSourceRef - allows objects in any namespaces. - (Beta) Using this field - requires the AnyVolumeDataSource - feature gate to be enabled. - (Alpha) Using the namespace - field of dataSourceRef requires - the CrossNamespaceVolumeDataSource - feature gate to be enabled.' properties: apiGroup: - description: APIGroup - is the group for the - resource being referenced. - If APIGroup is not specified, - the specified Kind must - be in the core API group. - For any other third-party - types, APIGroup is required. type: string kind: - description: Kind is the - type of resource being - referenced type: string name: - description: Name is the - name of resource being - referenced type: string namespace: - description: Namespace - is the namespace of - resource being referenced - Note that when a namespace - is specified, a gateway.networking.k8s.io/ReferenceGrant - object is required in - the referent namespace - to allow that namespace's - owner to accept the - reference. See the ReferenceGrant - documentation for details. - (Alpha) This field requires - the CrossNamespaceVolumeDataSource - feature gate to be enabled. type: string required: - kind - name type: object resources: - description: 'resources represents - the minimum resources the - volume should have. If RecoverVolumeExpansionFailure - feature is enabled users - are allowed to specify resource - requirements that are lower - than previous value but - must still be higher than - capacity recorded in the - status field of the claim. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -26548,10 +9509,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes - the maximum amount of - compute resources allowed. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -26560,70 +9517,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests - describes the minimum - amount of compute resources - required. If Requests - is omitted for a container, - it defaults to Limits - if that is explicitly - specified, otherwise - to an implementation-defined - value. Requests cannot - exceed Limits. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is a - label query over volumes - to consider for binding. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: key - is the label key - that the selector - applies to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values - is an array of - string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -26637,74 +9542,16 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an - element of matchExpressions, - whose key field is "key", - the operator is "In", - and the values array - contains only "value". - The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName - is the name of the StorageClass - required by the claim. More - info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName - may be used to set the VolumeAttributesClass - used by this claim. If specified, - the CSI driver will create - or update the volume with - the attributes defined in - the corresponding VolumeAttributesClass. - This has a different purpose - than storageClassName, it - can be changed after the - claim is created. An empty - string value means that - no VolumeAttributesClass - will be applied to the claim - but it''s not allowed to - reset this field to empty - string once it is set. If - unspecified and the PersistentVolumeClaim - is unbound, the default - VolumeAttributesClass will - be set by the persistentvolume - controller if it exists. - If the resource referred - to by volumeAttributesClass - does not exist, this PersistentVolumeClaim - will be set to a Pending - state, as reflected by the - modifyVolumeStatus field, - until such as a resource - exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field - requires the VolumeAttributesClass - feature gate to be enabled.' type: string volumeMode: - description: volumeMode defines - what type of volume is required - by the claim. Value of Filesystem - is implied when not included - in claim spec. type: string volumeName: - description: volumeName is - the binding reference to - the PersistentVolume backing - this claim. type: string type: object required: @@ -26712,105 +9559,41 @@ spec: type: object type: object fc: - description: fc represents a Fibre Channel - resource that is attached to a kubelet's - host machine and then exposed to the - pod. properties: fsType: - description: 'fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" - if unspecified. TODO: how do we - prevent errors in the filesystem - from compromising the machine' type: string lun: - description: 'lun is Optional: FC - target lun number' format: int32 type: integer readOnly: - description: 'readOnly is Optional: - Defaults to false (read/write). - ReadOnly here will force the ReadOnly - setting in VolumeMounts.' type: boolean targetWWNs: - description: 'targetWWNs is Optional: - FC target worldwide names (WWNs)' items: type: string type: array x-kubernetes-list-type: atomic wwids: - description: 'wwids Optional: FC volume - world wide identifiers (wwids) Either - wwids or combination of targetWWNs - and lun must be set, but not both - simultaneously.' items: type: string type: array x-kubernetes-list-type: atomic type: object flexVolume: - description: flexVolume represents a generic - volume resource that is provisioned/attached - using an exec based plugin. properties: driver: - description: driver is the name of - the driver to use for this volume. type: string fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - The default filesystem depends on - FlexVolume script. type: string options: additionalProperties: type: string - description: 'options is Optional: - this field holds extra command options - if any.' type: object readOnly: - description: 'readOnly is Optional: - defaults to false (read/write). - ReadOnly here will force the ReadOnly - setting in VolumeMounts.' type: boolean secretRef: - description: 'secretRef is Optional: - secretRef is reference to the secret - object containing sensitive information - to pass to the plugin scripts. This - may be empty if no secret object - is specified. If the secret object - contains more than one secret, all - secrets are passed to the plugin - scripts.' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic @@ -26818,214 +9601,79 @@ spec: - driver type: object flocker: - description: flocker represents a Flocker - volume attached to a kubelet's host - machine. This depends on the Flocker - control service being running properties: datasetName: - description: datasetName is Name of - the dataset stored as metadata -> - name on the dataset for Flocker - should be considered as deprecated type: string datasetUUID: - description: datasetUUID is the UUID - of the dataset. This is unique identifier - of a Flocker dataset type: string type: object gcePersistentDisk: - description: 'gcePersistentDisk represents - a GCE Disk resource that is attached - to a kubelet''s host machine and then - exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' properties: fsType: - description: 'fsType is filesystem - type of the volume that you want - to mount. Tip: Ensure that the filesystem - type is supported by the host operating - system. Examples: "ext4", "xfs", - "ntfs". Implicitly inferred to be - "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in - the filesystem from compromising - the machine' type: string partition: - description: 'partition is the partition - in the volume that you want to mount. - If omitted, the default is to mount - by volume name. Examples: For volume - /dev/sda1, you specify the partition - as "1". Similarly, the volume partition - for /dev/sda is "0" (or you can - leave the property empty). More - info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' format: int32 type: integer pdName: - description: 'pdName is unique name - of the PD resource in GCE. Used - to identify the disk in GCE. More - info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: string readOnly: - description: 'readOnly here will force - the ReadOnly setting in VolumeMounts. - Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: boolean required: - pdName type: object glusterfs: - description: 'glusterfs represents a Glusterfs - mount on the host that shares a pod''s - lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md' properties: endpoints: - description: 'endpoints is the endpoint - name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string path: - description: 'path is the Glusterfs - volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string readOnly: - description: 'readOnly here will force - the Glusterfs volume to be mounted - with read-only permissions. Defaults - to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: boolean required: - endpoints - path type: object hostPath: - description: 'hostPath represents a pre-existing - file or directory on the host machine - that is directly exposed to the container. - This is generally used for system agents - or other privileged things that are - allowed to see the host machine. Most - containers will NOT need this. More - info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- TODO(jonesdl) We need to restrict - who can use host directory mounts and - who can/can not mount host directories - as read/write.' properties: path: - description: 'path of the directory - on the host. If the path is a symlink, - it will follow the link to the real - path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string type: - description: 'type for HostPath Volume - Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string required: - path type: object iscsi: - description: 'iscsi represents an ISCSI - Disk resource that is attached to a - kubelet''s host machine and then exposed - to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md' properties: chapAuthDiscovery: - description: chapAuthDiscovery defines - whether support iSCSI Discovery - CHAP authentication type: boolean chapAuthSession: - description: chapAuthSession defines - whether support iSCSI Session CHAP - authentication type: boolean fsType: - description: 'fsType is the filesystem - type of the volume that you want - to mount. Tip: Ensure that the filesystem - type is supported by the host operating - system. Examples: "ext4", "xfs", - "ntfs". Implicitly inferred to be - "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in - the filesystem from compromising - the machine' type: string initiatorName: - description: initiatorName is the - custom iSCSI Initiator Name. If - initiatorName is specified with - iscsiInterface simultaneously, new - iSCSI interface : will be created for the connection. type: string iqn: - description: iqn is the target iSCSI - Qualified Name. type: string iscsiInterface: - description: iscsiInterface is the - interface Name that uses an iSCSI - transport. Defaults to 'default' - (tcp). type: string lun: - description: lun represents iSCSI - Target Lun number. format: int32 type: integer portals: - description: portals is the iSCSI - Target Portal List. The portal is - either an IP or ip_addr:port if - the port is other than default (typically - TCP ports 860 and 3260). items: type: string type: array x-kubernetes-list-type: atomic readOnly: - description: readOnly here will force - the ReadOnly setting in VolumeMounts. - Defaults to false. type: boolean secretRef: - description: secretRef is the CHAP - Secret for iSCSI target and initiator - authentication properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic targetPortal: - description: targetPortal is iSCSI - Target Portal. The Portal is either - an IP or ip_addr:port if the port - is other than default (typically - TCP ports 860 and 3260). type: string required: - iqn @@ -27033,214 +9681,68 @@ spec: - targetPortal type: object name: - description: 'name of the volume. Must - be a DNS_LABEL and unique within the - pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string nfs: - description: 'nfs represents an NFS mount - on the host that shares a pod''s lifetime - More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' properties: path: - description: 'path that is exported - by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string readOnly: - description: 'readOnly here will force - the NFS export to be mounted with - read-only permissions. Defaults - to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: boolean server: - description: 'server is the hostname - or IP address of the NFS server. - More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string required: - path - server type: object persistentVolumeClaim: - description: 'persistentVolumeClaimVolumeSource - represents a reference to a PersistentVolumeClaim - in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: claimName: - description: 'claimName is the name - of a PersistentVolumeClaim in the - same namespace as the pod using - this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' type: string readOnly: - description: readOnly Will force the - ReadOnly setting in VolumeMounts. - Default false. type: boolean required: - claimName type: object photonPersistentDisk: - description: photonPersistentDisk represents - a PhotonController persistent disk attached - and mounted on kubelets host machine properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" - if unspecified. type: string pdID: - description: pdID is the ID that identifies - Photon Controller persistent disk type: string required: - pdID type: object portworxVolume: - description: portworxVolume represents - a portworx volume attached and mounted - on kubelets host machine properties: fsType: - description: fSType represents the - filesystem type to mount Must be - a filesystem type supported by the - host operating system. Ex. "ext4", - "xfs". Implicitly inferred to be - "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to - false (read/write). ReadOnly here - will force the ReadOnly setting - in VolumeMounts. type: boolean volumeID: - description: volumeID uniquely identifies - a Portworx volume type: string required: - volumeID type: object projected: - description: projected items for all in - one resources secrets, configmaps, and - downward API properties: defaultMode: - description: defaultMode are the mode - bits used to set permissions on - created files by default. Must be - an octal value between 0000 and - 0777 or a decimal value between - 0 and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. Directories - within the path are not affected - by this setting. This might be in - conflict with other options that - affect the file mode, like fsGroup, - and the result can be other mode - bits set. format: int32 type: integer sources: - description: sources is the list of - volume projections items: - description: Projection that may - be projected along with other - supported volume types properties: clusterTrustBundle: - description: "ClusterTrustBundle - allows a pod to access the - `.spec.trustBundle` field - of ClusterTrustBundle objects - in an auto-updating file. - \n Alpha, gated by the ClusterTrustBundleProjection - feature gate. \n ClusterTrustBundle - objects can either be selected - by name, or by the combination - of signer name and a label - selector. \n Kubelet performs - aggressive normalization of - the PEM contents written into - the pod filesystem. Esoteric - PEM features such as inter-block - comments and block headers - are stripped. Certificates - are deduplicated. The ordering - of certificates within the - file is arbitrary, and Kubelet - may change the order over - time." properties: labelSelector: - description: Select all - ClusterTrustBundles that - match this label selector. Only - has effect if signerName - is set. Mutually-exclusive - with name. If unset, - interpreted as "match - nothing". If set but - empty, interpreted as - "match everything". properties: matchExpressions: - description: matchExpressions - is a list of label - selector requirements. - The requirements are - ANDed. items: - description: A label - selector requirement - is a selector that - contains values, - a key, and an operator - that relates the - key and values. properties: key: - description: key - is the label - key that the - selector applies - to. type: string operator: - description: operator - represents a - key's relationship - to a set of - values. Valid - operators are - In, NotIn, Exists - and DoesNotExist. type: string values: - description: values - is an array - of string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or - DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic - merge patch. items: type: string type: array @@ -27254,131 +9756,31 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels - map is equivalent - to an element of matchExpressions, - whose key field is - "key", the operator - is "In", and the values - array contains only - "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic name: - description: Select a single - ClusterTrustBundle by - object name. Mutually-exclusive - with signerName and labelSelector. type: string optional: - description: If true, don't - block pod startup if the - referenced ClusterTrustBundle(s) - aren't available. If - using name, then the named - ClusterTrustBundle is - allowed not to exist. If - using signerName, then - the combination of signerName - and labelSelector is allowed - to match zero ClusterTrustBundles. type: boolean path: - description: Relative path - from the volume root to - write the bundle. type: string signerName: - description: Select all - ClusterTrustBundles that - match this signer name. - Mutually-exclusive with - name. The contents of - all selected ClusterTrustBundles - will be unified and deduplicated. type: string required: - path type: object configMap: - description: configMap information - about the configMap data to - project properties: items: - description: items if unspecified, - each key-value pair in - the Data field of the - referenced ConfigMap will - be projected into the - volume as a file whose - name is the key and content - is the value. If specified, - the listed keys will be - projected into the specified - paths, and unlisted keys - will not be present. If - a key is specified which - is not present in the - ConfigMap, the volume - setup will error unless - it is marked optional. - Paths must be relative - and may not contain the - '..' path or start with - '..'. items: - description: Maps a string - key to a path within - a volume. properties: key: - description: key is - the key to project. type: string mode: - description: 'mode - is Optional: mode - bits used to set - permissions on this - file. Must be an - octal value between - 0000 and 0777 or - a decimal value - between 0 and 511. - YAML accepts both - octal and decimal - values, JSON requires - decimal values for - mode bits. If not - specified, the volume - defaultMode will - be used. This might - be in conflict with - other options that - affect the file - mode, like fsGroup, - and the result can - be other mode bits - set.' format: int32 type: integer path: - description: path - is the relative - path of the file - to map the key to. - May not be an absolute - path. May not contain - the path element - '..'. May not start - with the string - '..'. type: string required: - key @@ -27388,141 +9790,42 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the - referent. This field is - effectively required, - but due to backwards compatibility - is allowed to be empty. - Instances of this type - with an empty value here - are almost certainly wrong. - TODO: Add other useful - fields. apiVersion, kind, - uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify - whether the ConfigMap - or its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic downwardAPI: - description: downwardAPI information - about the downwardAPI data - to project properties: items: - description: Items is a - list of DownwardAPIVolume - file items: - description: DownwardAPIVolumeFile - represents information - to create the file containing - the pod field properties: fieldRef: - description: 'Required: - Selects a field - of the pod: only - annotations, labels, - name, namespace - and uid are supported.' properties: apiVersion: - description: Version - of the schema - the FieldPath - is written in - terms of, defaults - to "v1". type: string fieldPath: - description: Path - of the field - to select in - the specified - API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: - mode bits used to - set permissions - on this file, must - be an octal value - between 0000 and - 0777 or a decimal - value between 0 - and 511. YAML accepts - both octal and decimal - values, JSON requires - decimal values for - mode bits. If not - specified, the volume - defaultMode will - be used. This might - be in conflict with - other options that - affect the file - mode, like fsGroup, - and the result can - be other mode bits - set.' format: int32 type: integer path: - description: 'Required: - Path is the relative - path name of the - file to be created. - Must not be absolute - or contain the ''..'' - path. Must be utf-8 - encoded. The first - item of the relative - path must not start - with ''..''' type: string resourceFieldRef: - description: 'Selects - a resource of the - container: only - resources limits - and requests (limits.cpu, - limits.memory, requests.cpu - and requests.memory) - are currently supported.' properties: containerName: - description: 'Container - name: required - for volumes, - optional for - env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies - the output format - of the exposed - resources, defaults - to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: - resource to - select' type: string required: - resource @@ -27535,77 +9838,16 @@ spec: x-kubernetes-list-type: atomic type: object secret: - description: secret information - about the secret data to project properties: items: - description: items if unspecified, - each key-value pair in - the Data field of the - referenced Secret will - be projected into the - volume as a file whose - name is the key and content - is the value. If specified, - the listed keys will be - projected into the specified - paths, and unlisted keys - will not be present. If - a key is specified which - is not present in the - Secret, the volume setup - will error unless it is - marked optional. Paths - must be relative and may - not contain the '..' path - or start with '..'. items: - description: Maps a string - key to a path within - a volume. properties: key: - description: key is - the key to project. type: string mode: - description: 'mode - is Optional: mode - bits used to set - permissions on this - file. Must be an - octal value between - 0000 and 0777 or - a decimal value - between 0 and 511. - YAML accepts both - octal and decimal - values, JSON requires - decimal values for - mode bits. If not - specified, the volume - defaultMode will - be used. This might - be in conflict with - other options that - affect the file - mode, like fsGroup, - and the result can - be other mode bits - set.' format: int32 type: integer path: - description: path - is the relative - path of the file - to map the key to. - May not be an absolute - path. May not contain - the path element - '..'. May not start - with the string - '..'. type: string required: - key @@ -27615,71 +9857,19 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the - referent. This field is - effectively required, - but due to backwards compatibility - is allowed to be empty. - Instances of this type - with an empty value here - are almost certainly wrong. - TODO: Add other useful - fields. apiVersion, kind, - uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional field - specify whether the Secret - or its key must be defined type: boolean type: object x-kubernetes-map-type: atomic serviceAccountToken: - description: serviceAccountToken - is information about the serviceAccountToken - data to project properties: audience: - description: audience is - the intended audience - of the token. A recipient - of a token must identify - itself with an identifier - specified in the audience - of the token, and otherwise - should reject the token. - The audience defaults - to the identifier of the - apiserver. type: string expirationSeconds: - description: expirationSeconds - is the requested duration - of validity of the service - account token. As the - token approaches expiration, - the kubelet volume plugin - will proactively rotate - the service account token. - The kubelet will start - trying to rotate the token - if the token is older - than 80 percent of its - time to live or if the - token is older than 24 - hours.Defaults to 1 hour - and must be at least 10 - minutes. format: int64 type: integer path: - description: path is the - path relative to the mount - point of the file to project - the token into. type: string required: - path @@ -27689,202 +9879,79 @@ spec: x-kubernetes-list-type: atomic type: object quobyte: - description: quobyte represents a Quobyte - mount on the host that shares a pod's - lifetime properties: group: - description: group to map volume access - to Default is no group type: string readOnly: - description: readOnly here will force - the Quobyte volume to be mounted - with read-only permissions. Defaults - to false. type: boolean registry: - description: registry represents a - single or multiple Quobyte Registry - services specified as a string as - host:port pair (multiple entries - are separated with commas) which - acts as the central registry for - volumes type: string tenant: - description: tenant owning the given - Quobyte volume in the Backend Used - with dynamically provisioned Quobyte - volumes, value is set by the plugin type: string user: - description: user to map volume access - to Defaults to serivceaccount user type: string volume: - description: volume is a string that - references an already created Quobyte - volume by name. type: string required: - registry - volume type: object rbd: - description: 'rbd represents a Rados Block - Device mount on the host that shares - a pod''s lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md' properties: fsType: - description: 'fsType is the filesystem - type of the volume that you want - to mount. Tip: Ensure that the filesystem - type is supported by the host operating - system. Examples: "ext4", "xfs", - "ntfs". Implicitly inferred to be - "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in - the filesystem from compromising - the machine' type: string image: - description: 'image is the rados image - name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string keyring: - description: 'keyring is the path - to key ring for RBDUser. Default - is /etc/ceph/keyring. More info: - https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string monitors: - description: 'monitors is a collection - of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic pool: - description: 'pool is the rados pool - name. Default is rbd. More info: - https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string readOnly: - description: 'readOnly here will force - the ReadOnly setting in VolumeMounts. - Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: boolean secretRef: - description: 'secretRef is name of - the authentication secret for RBDUser. - If provided overrides keyring. Default - is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is the rados user - name. Default is admin. More info: - https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string required: - image - monitors type: object scaleIO: - description: scaleIO represents a ScaleIO - persistent volume attached and mounted - on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Default is "xfs". type: string gateway: - description: gateway is the host address - of the ScaleIO API Gateway. type: string protectionDomain: - description: protectionDomain is the - name of the ScaleIO Protection Domain - for the configured storage. type: string readOnly: - description: readOnly Defaults to - false (read/write). ReadOnly here - will force the ReadOnly setting - in VolumeMounts. type: boolean secretRef: - description: secretRef references - to the secret for ScaleIO user and - other sensitive information. If - this is not provided, Login operation - will fail. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic sslEnabled: - description: sslEnabled Flag enable/disable - SSL communication with Gateway, - default false type: boolean storageMode: - description: storageMode indicates - whether the storage for a volume - should be ThickProvisioned or ThinProvisioned. - Default is ThinProvisioned. type: string storagePool: - description: storagePool is the ScaleIO - Storage Pool associated with the - protection domain. type: string system: - description: system is the name of - the storage system as configured - in ScaleIO. type: string volumeName: - description: volumeName is the name - of a volume already created in the - ScaleIO system that is associated - with this volume source. type: string required: - gateway @@ -27892,76 +9959,19 @@ spec: - system type: object secret: - description: 'secret represents a secret - that should populate this volume. More - info: https://kubernetes.io/docs/concepts/storage/volumes#secret' properties: defaultMode: - description: 'defaultMode is Optional: - mode bits used to set permissions - on created files by default. Must - be an octal value between 0000 and - 0777 or a decimal value between - 0 and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. Defaults - to 0644. Directories within the - path are not affected by this setting. - This might be in conflict with other - options that affect the file mode, - like fsGroup, and the result can - be other mode bits set.' format: int32 type: integer items: - description: items If unspecified, - each key-value pair in the Data - field of the referenced Secret will - be projected into the volume as - a file whose name is the key and - content is the value. If specified, - the listed keys will be projected - into the specified paths, and unlisted - keys will not be present. If a key - is specified which is not present - in the Secret, the volume setup - will error unless it is marked optional. - Paths must be relative and may not - contain the '..' path or start with - '..'. items: - description: Maps a string key to - a path within a volume. properties: key: - description: key is the key - to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an octal - value between 0000 and 0777 - or a decimal value between - 0 and 511. YAML accepts both - octal and decimal values, - JSON requires decimal values - for mode bits. If not specified, - the volume defaultMode will - be used. This might be in - conflict with other options - that affect the file mode, - like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the - key to. May not be an absolute - path. May not contain the - path element '..'. May not - start with the string '..'. type: string required: - key @@ -27970,107 +9980,37 @@ spec: type: array x-kubernetes-list-type: atomic optional: - description: optional field specify - whether the Secret or its keys must - be defined type: boolean secretName: - description: 'secretName is the name - of the secret in the pod''s namespace - to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' type: string type: object storageos: - description: storageOS represents a StorageOS - volume attached and mounted on Kubernetes - nodes. properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" - if unspecified. type: string readOnly: - description: readOnly defaults to - false (read/write). ReadOnly here - will force the ReadOnly setting - in VolumeMounts. type: boolean secretRef: - description: secretRef specifies the - secret to use for obtaining the - StorageOS API credentials. If not - specified, default values will be - attempted. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeName: - description: volumeName is the human-readable - name of the StorageOS volume. Volume - names are only unique within a namespace. type: string volumeNamespace: - description: volumeNamespace specifies - the scope of the volume within StorageOS. If - no namespace is specified then the - Pod's namespace will be used. This - allows the Kubernetes name scoping - to be mirrored within StorageOS - for tighter integration. Set VolumeName - to any name to override the default - behaviour. Set to "default" if you - are not using namespaces within - StorageOS. Namespaces that do not - pre-exist within StorageOS will - be created. type: string type: object vsphereVolume: - description: vsphereVolume represents - a vSphere volume attached and mounted - on kubelets host machine properties: fsType: - description: fsType is filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" - if unspecified. type: string storagePolicyID: - description: storagePolicyID is the - storage Policy Based Management - (SPBM) profile ID associated with - the StoragePolicyName. type: string storagePolicyName: - description: storagePolicyName is - the storage Policy Based Management - (SPBM) profile name. type: string volumePath: - description: volumePath is the path - that identifies vSphere volume vmdk type: string required: - volumePath @@ -28082,338 +10022,118 @@ spec: type: object type: object name: - description: Name specifies the name of the addon that - will be used for the backup/restore purpose type: string tasks: - description: Tasks specifies a list of backup/restore - tasks and their configuration parameters items: - description: TaskReference specifies a task and its - configuration parameters properties: addonVolumes: - description: AddonVolumes lets you overwrite the - volume sources used in the VolumeTemplate section - of Addon. Make sure that name of your volume - matches with the name of the volume you want - to overwrite. items: - description: AddonVolumeInfo specifies the name - and the source of volume properties: name: - description: Name specifies the name of - the volume type: string source: - description: Source specifies the source - of this volume. properties: awsElasticBlockStore: - description: 'awsElasticBlockStore represents - an AWS Disk resource that is attached - to a kubelet''s host machine and then - exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' properties: fsType: - description: 'fsType is the filesystem - type of the volume that you want - to mount. Tip: Ensure that the - filesystem type is supported by - the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. - More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors - in the filesystem from compromising - the machine' type: string partition: - description: 'partition is the partition - in the volume that you want to - mount. If omitted, the default - is to mount by volume name. Examples: - For volume /dev/sda1, you specify - the partition as "1". Similarly, - the volume partition for /dev/sda - is "0" (or you can leave the property - empty).' format: int32 type: integer readOnly: - description: 'readOnly value true - will force the readOnly setting - in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: boolean volumeID: - description: 'volumeID is unique - ID of the persistent disk resource - in AWS (Amazon EBS volume). More - info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: string required: - volumeID type: object azureDisk: - description: azureDisk represents an - Azure Data Disk mount on the host - and bind mount to the pod. properties: cachingMode: - description: 'cachingMode is the - Host Caching mode: None, Read - Only, Read Write.' type: string diskName: - description: diskName is the Name - of the data disk in the blob storage type: string diskURI: - description: diskURI is the URI - of data disk in the blob storage type: string fsType: - description: fsType is Filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" - if unspecified. type: string kind: - description: 'kind expected values - are Shared: multiple blob disks - per storage account Dedicated: - single blob disk per storage account Managed: - azure managed data disk (only - in managed availability set). - defaults to shared' type: string readOnly: - description: readOnly Defaults to - false (read/write). ReadOnly here - will force the ReadOnly setting - in VolumeMounts. type: boolean required: - diskName - diskURI type: object azureFile: - description: azureFile represents an - Azure File Service mount on the host - and bind mount to the pod. properties: readOnly: - description: readOnly defaults to - false (read/write). ReadOnly here - will force the ReadOnly setting - in VolumeMounts. type: boolean secretName: - description: secretName is the name - of secret that contains Azure - Storage Account Name and Key type: string shareName: - description: shareName is the azure - share Name type: string required: - secretName - shareName type: object cephfs: - description: cephFS represents a Ceph - FS mount on the host that shares a - pod's lifetime properties: monitors: - description: 'monitors is Required: - Monitors is a collection of Ceph - monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic path: - description: 'path is Optional: - Used as the mounted root, rather - than the full Ceph tree, default - is /' type: string readOnly: - description: 'readOnly is Optional: - Defaults to false (read/write). - ReadOnly here will force the ReadOnly - setting in VolumeMounts. More - info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: boolean secretFile: - description: 'secretFile is Optional: - SecretFile is the path to key - ring for User, default is /etc/ceph/user.secret - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string secretRef: - description: 'secretRef is Optional: - SecretRef is reference to the - authentication secret for User, - default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is optional: - User is the rados user name, default - is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string required: - monitors type: object cinder: - description: 'cinder represents a cinder - volume attached and mounted on kubelets - host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' properties: fsType: - description: 'fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Examples: "ext4", "xfs", - "ntfs". Implicitly inferred to - be "ext4" if unspecified. More - info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string readOnly: - description: 'readOnly defaults - to false (read/write). ReadOnly - here will force the ReadOnly setting - in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: boolean secretRef: - description: 'secretRef is optional: - points to a secret object containing - parameters used to connect to - OpenStack.' properties: name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeID: - description: 'volumeID used to identify - the volume in cinder. More info: - https://examples.k8s.io/mysql-cinder-pd/README.md' type: string required: - volumeID type: object configMap: - description: configMap represents a - configMap that should populate this - volume properties: defaultMode: - description: 'defaultMode is optional: - mode bits used to set permissions - on created files by default. Must - be an octal value between 0000 - and 0777 or a decimal value between - 0 and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. - Defaults to 0644. Directories - within the path are not affected - by this setting. This might be - in conflict with other options - that affect the file mode, like - fsGroup, and the result can be - other mode bits set.' format: int32 type: integer items: - description: items if unspecified, - each key-value pair in the Data - field of the referenced ConfigMap - will be projected into the volume - as a file whose name is the key - and content is the value. If specified, - the listed keys will be projected - into the specified paths, and - unlisted keys will not be present. - If a key is specified which is - not present in the ConfigMap, - the volume setup will error unless - it is marked optional. Paths must - be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key - to a path within a volume. properties: key: - description: key is the key - to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an - octal value between 0000 - and 0777 or a decimal value - between 0 and 511. YAML - accepts both octal and decimal - values, JSON requires decimal - values for mode bits. If - not specified, the volume - defaultMode will be used. - This might be in conflict - with other options that - affect the file mode, like - fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map - the key to. May not be an - absolute path. May not contain - the path element '..'. May - not start with the string - '..'. type: string required: - key @@ -28423,207 +10143,67 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether - the ConfigMap or its keys must - be defined type: boolean type: object x-kubernetes-map-type: atomic csi: - description: csi (Container Storage - Interface) represents ephemeral storage - that is handled by certain external - CSI drivers (Beta feature). properties: driver: - description: driver is the name - of the CSI driver that handles - this volume. Consult with your - admin for the correct name as - registered in the cluster. type: string fsType: - description: fsType to mount. Ex. - "ext4", "xfs", "ntfs". If not - provided, the empty value is passed - to the associated CSI driver which - will determine the default filesystem - to apply. type: string nodePublishSecretRef: - description: nodePublishSecretRef - is a reference to the secret object - containing sensitive information - to pass to the CSI driver to complete - the CSI NodePublishVolume and - NodeUnpublishVolume calls. This - field is optional, and may be - empty if no secret is required. - If the secret object contains - more than one secret, all secret - references are passed. properties: name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic readOnly: - description: readOnly specifies - a read-only configuration for - the volume. Defaults to false - (read/write). type: boolean volumeAttributes: additionalProperties: type: string - description: volumeAttributes stores - driver-specific properties that - are passed to the CSI driver. - Consult your driver's documentation - for supported values. type: object required: - driver type: object downwardAPI: - description: downwardAPI represents - downward API about the pod that should - populate this volume properties: defaultMode: - description: 'Optional: mode bits - to use on created files by default. - Must be a Optional: mode bits - used to set permissions on created - files by default. Must be an octal - value between 0000 and 0777 or - a decimal value between 0 and - 511. YAML accepts both octal and - decimal values, JSON requires - decimal values for mode bits. - Defaults to 0644. Directories - within the path are not affected - by this setting. This might be - in conflict with other options - that affect the file mode, like - fsGroup, and the result can be - other mode bits set.' format: int32 type: integer items: - description: Items is a list of - downward API volume file items: - description: DownwardAPIVolumeFile - represents information to create - the file containing the pod - field properties: fieldRef: - description: 'Required: Selects - a field of the pod: only - annotations, labels, name, - namespace and uid are supported.' properties: apiVersion: - description: Version of - the schema the FieldPath - is written in terms - of, defaults to "v1". type: string fieldPath: - description: Path of the - field to select in the - specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode - bits used to set permissions - on this file, must be an - octal value between 0000 - and 0777 or a decimal value - between 0 and 511. YAML - accepts both octal and decimal - values, JSON requires decimal - values for mode bits. If - not specified, the volume - defaultMode will be used. - This might be in conflict - with other options that - affect the file mode, like - fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: 'Required: Path - is the relative path name - of the file to be created. - Must not be absolute or - contain the ''..'' path. - Must be utf-8 encoded. The - first item of the relative - path must not start with - ''..''' type: string resourceFieldRef: - description: 'Selects a resource - of the container: only resources - limits and requests (limits.cpu, - limits.memory, requests.cpu - and requests.memory) are - currently supported.' properties: containerName: - description: 'Container - name: required for volumes, - optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies - the output format of - the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: - resource to select' type: string required: - resource @@ -28636,279 +10216,50 @@ spec: x-kubernetes-list-type: atomic type: object emptyDir: - description: 'emptyDir represents a - temporary directory that shares a - pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' properties: medium: - description: 'medium represents - what type of storage medium should - back this directory. The default - is "" which means to use the node''s - default medium. Must be an empty - string (default) or Memory. More - info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' type: string sizeLimit: anyOf: - type: integer - type: string - description: 'sizeLimit is the total - amount of local storage required - for this EmptyDir volume. The - size limit is also applicable - for memory medium. The maximum - usage on memory medium EmptyDir - would be the minimum value between - the SizeLimit specified here and - the sum of memory limits of all - containers in a pod. The default - is nil which means that the limit - is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object ephemeral: - description: "ephemeral represents a - volume that is handled by a cluster - storage driver. The volume's lifecycle - is tied to the pod that defines it - - it will be created before the pod - starts, and deleted when the pod is - removed. \n Use this if: a) the volume - is only needed while the pod runs, - b) features of normal volumes like - restoring from snapshot or capacity - tracking are needed, c) the storage - driver is specified through a storage - class, and d) the storage driver supports - dynamic volume provisioning through - a PersistentVolumeClaim (see EphemeralVolumeSource - for more information on the connection - between this volume type and PersistentVolumeClaim). - \n Use PersistentVolumeClaim or one - of the vendor-specific APIs for volumes - that persist for longer than the lifecycle - of an individual pod. \n Use CSI for - light-weight local ephemeral volumes - if the CSI driver is meant to be used - that way - see the documentation of - the driver for more information. \n - A pod can use both types of ephemeral - volumes and persistent volumes at - the same time." properties: volumeClaimTemplate: - description: "Will be used to create - a stand-alone PVC to provision - the volume. The pod in which this - EphemeralVolumeSource is embedded - will be the owner of the PVC, - i.e. the PVC will be deleted together - with the pod. The name of the - PVC will be `-` where `` is - the name from the `PodSpec.Volumes` - array entry. Pod validation will - reject the pod if the concatenated - name is not valid for a PVC (for - example, too long). \n An existing - PVC with that name that is not - owned by the pod will *not* be - used for the pod to avoid using - an unrelated volume by mistake. - Starting the pod is then blocked - until the unrelated PVC is removed. - If such a pre-created PVC is meant - to be used by the pod, the PVC - has to updated with an owner reference - to the pod once the pod exists. - Normally this should not be necessary, - but it may be useful when manually - reconstructing a broken cluster. - \n This field is read-only and - no changes will be made by Kubernetes - to the PVC after it has been created. - \n Required, must not be nil." properties: metadata: - description: May contain labels - and annotations that will - be copied into the PVC when - creating it. No other fields - are allowed and will be rejected - during validation. properties: annotations: additionalProperties: type: string - description: 'Annotations - is an unstructured key - value map stored with - a resource that may be - set by external tools - to store and retrieve - arbitrary metadata. They - are not queryable and - should be preserved when - modifying objects. More - info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName - is an optional prefix, - used by the server, to - generate a unique name - ONLY IF the Name field - has not been provided. - If this field is used, - the name returned to the - client will be different - than the name passed. - This value will also be - combined with a unique - suffix. The provided value - has the same validation - rules as the Name field, - and may be truncated by - the length of the suffix - required to make the value - unique on the server. - \n If this field is specified - and the generated name - exists, the server will - NOT return a 409 - instead, - it will either return - 201 Created or 500 with - Reason ServerTimeout indicating - a unique name could not - be found in the time allotted, - and the client should - retry (optionally after - the time indicated in - the Retry-After header). - \n Applied only if Name - is not specified. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string - keys and values that can - be used to organize and - categorize (scope and - select) objects. May match - selectors of replication - controllers and services. - More info: http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must - be unique within a namespace. - Is required when creating - resources, although some - resources may allow a - client to request the - generation of an appropriate - name automatically. Name - is primarily intended - for creation idempotence - and configuration definition. - Cannot be updated. More - info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace - defines the space within - each name must be unique. - An empty namespace is - equivalent to the \"default\" - namespace, but \"default\" - is the canonical representation. - Not all objects are required - to be scoped to a namespace - - the value of this field - for those objects will - be empty. \n Must be a - DNS_LABEL. Cannot be updated. - More info: http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects - depended by this object. - If ALL objects in the - list have been deleted, - this object will be garbage - collected. If this object - is managed by a controller, - then an entry in this - list will point to this - controller, with the controller - field set to true. There - cannot be more than one - managing controller. items: - description: OwnerReference - contains enough information - to let you identify - an owning object. An - owning object must be - in the same namespace - as the dependent, or - be cluster-scoped, so - there is no namespace - field. properties: apiVersion: - description: API version - of the referent. type: string blockOwnerDeletion: - description: If true, - AND if the owner - has the "foregroundDeletion" - finalizer, then - the owner cannot - be deleted from - the key-value store - until this reference - is removed. See - https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage - collector interacts - with this field - and enforces the - foreground deletion. - Defaults to false. - To set this field, - a user needs "delete" - permission of the - owner, otherwise - 422 (Unprocessable - Entity) will be - returned. type: boolean controller: - description: If true, - this reference points - to the managing - controller. type: boolean kind: - description: 'Kind - of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name - of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID - of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -28920,70 +10271,19 @@ spec: type: array type: object spec: - description: The specification - for the PersistentVolumeClaim. - The entire content is copied - unchanged into the PVC that - gets created from this template. - The same fields as in a PersistentVolumeClaim - are also valid here. properties: accessModes: - description: 'accessModes - contains the desired access - modes the volume should - have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource - field can be used to specify - either: * An existing - VolumeSnapshot object - (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or - an external controller - can support the specified - data source, it will create - a new volume based on - the contents of the specified - data source. When the - AnyVolumeDataSource feature - gate is enabled, dataSource - contents will be copied - to dataSourceRef, and - dataSourceRef contents - will be copied to dataSource - when dataSourceRef.namespace - is not specified. If the - namespace is specified, - then dataSourceRef will - not be copied to dataSource.' properties: apiGroup: - description: APIGroup - is the group for the - resource being referenced. - If APIGroup is not - specified, the specified - Kind must be in the - core API group. For - any other third-party - types, APIGroup is - required. type: string kind: - description: Kind is - the type of resource - being referenced type: string name: - description: Name is - the name of resource - being referenced type: string required: - kind @@ -28991,125 +10291,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef - specifies the object from - which to populate the - volume with data, if a - non-empty volume is desired. - This may be any object - from a non-empty API group - (non core object) or a - PersistentVolumeClaim - object. When this field - is specified, volume binding - will only succeed if the - type of the specified - object matches some installed - volume populator or dynamic - provisioner. This field - will replace the functionality - of the dataSource field - and as such if both fields - are non-empty, they must - have the same value. For - backwards compatibility, - when namespace isn''t - specified in dataSourceRef, - both fields (dataSource - and dataSourceRef) will - be set to the same value - automatically if one of - them is empty and the - other is non-empty. When - namespace is specified - in dataSourceRef, dataSource - isn''t set to the same - value and must be empty. - There are three important - differences between dataSource - and dataSourceRef: * While - dataSource only allows - two specific types of - objects, dataSourceRef - allows any non-core object, - as well as PersistentVolumeClaim - objects. * While dataSource - ignores disallowed values - (dropping them), dataSourceRef - preserves all values, - and generates an error - if a disallowed value - is specified. * While - dataSource only allows - local objects, dataSourceRef - allows objects in any - namespaces. (Beta) Using - this field requires the - AnyVolumeDataSource feature - gate to be enabled. (Alpha) - Using the namespace field - of dataSourceRef requires - the CrossNamespaceVolumeDataSource - feature gate to be enabled.' properties: apiGroup: - description: APIGroup - is the group for the - resource being referenced. - If APIGroup is not - specified, the specified - Kind must be in the - core API group. For - any other third-party - types, APIGroup is - required. type: string kind: - description: Kind is - the type of resource - being referenced type: string name: - description: Name is - the name of resource - being referenced type: string namespace: - description: Namespace - is the namespace of - resource being referenced - Note that when a namespace - is specified, a gateway.networking.k8s.io/ReferenceGrant - object is required - in the referent namespace - to allow that namespace's - owner to accept the - reference. See the - ReferenceGrant documentation - for details. (Alpha) - This field requires - the CrossNamespaceVolumeDataSource - feature gate to be - enabled. type: string required: - kind - name type: object resources: - description: 'resources - represents the minimum - resources the volume should - have. If RecoverVolumeExpansionFailure - feature is enabled users - are allowed to specify - resource requirements - that are lower than previous - value but must still be - higher than capacity recorded - in the status field of - the claim. More info: - https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -29118,11 +10313,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits - describes the maximum - amount of compute - resources allowed. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -29131,75 +10321,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests - describes the minimum - amount of compute - resources required. - If Requests is omitted - for a container, it - defaults to Limits - if that is explicitly - specified, otherwise - to an implementation-defined - value. Requests cannot - exceed Limits. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is - a label query over volumes - to consider for binding. properties: matchExpressions: - description: matchExpressions - is a list of label - selector requirements. - The requirements are - ANDed. items: - description: A label - selector requirement - is a selector that - contains values, - a key, and an operator - that relates the - key and values. properties: key: - description: key - is the label - key that the - selector applies - to. type: string operator: - description: operator - represents a - key's relationship - to a set of - values. Valid - operators are - In, NotIn, Exists - and DoesNotExist. type: string values: - description: values - is an array - of string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or - DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic - merge patch. items: type: string type: array @@ -29213,79 +10346,16 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels - map is equivalent - to an element of matchExpressions, - whose key field is - "key", the operator - is "In", and the values - array contains only - "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName - is the name of the StorageClass - required by the claim. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName - may be used to set the - VolumeAttributesClass - used by this claim. If - specified, the CSI driver - will create or update - the volume with the attributes - defined in the corresponding - VolumeAttributesClass. - This has a different purpose - than storageClassName, - it can be changed after - the claim is created. - An empty string value - means that no VolumeAttributesClass - will be applied to the - claim but it''s not allowed - to reset this field to - empty string once it is - set. If unspecified and - the PersistentVolumeClaim - is unbound, the default - VolumeAttributesClass - will be set by the persistentvolume - controller if it exists. - If the resource referred - to by volumeAttributesClass - does not exist, this PersistentVolumeClaim - will be set to a Pending - state, as reflected by - the modifyVolumeStatus - field, until such as a - resource exists. More - info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field - requires the VolumeAttributesClass - feature gate to be enabled.' type: string volumeMode: - description: volumeMode - defines what type of volume - is required by the claim. - Value of Filesystem is - implied when not included - in claim spec. type: string volumeName: - description: volumeName - is the binding reference - to the PersistentVolume - backing this claim. type: string type: object required: @@ -29293,107 +10363,41 @@ spec: type: object type: object fc: - description: fc represents a Fibre Channel - resource that is attached to a kubelet's - host machine and then exposed to the - pod. properties: fsType: - description: 'fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" - if unspecified. TODO: how do we - prevent errors in the filesystem - from compromising the machine' type: string lun: - description: 'lun is Optional: FC - target lun number' format: int32 type: integer readOnly: - description: 'readOnly is Optional: - Defaults to false (read/write). - ReadOnly here will force the ReadOnly - setting in VolumeMounts.' type: boolean targetWWNs: - description: 'targetWWNs is Optional: - FC target worldwide names (WWNs)' items: type: string type: array x-kubernetes-list-type: atomic wwids: - description: 'wwids Optional: FC - volume world wide identifiers - (wwids) Either wwids or combination - of targetWWNs and lun must be - set, but not both simultaneously.' items: type: string type: array x-kubernetes-list-type: atomic type: object flexVolume: - description: flexVolume represents a - generic volume resource that is provisioned/attached - using an exec based plugin. properties: driver: - description: driver is the name - of the driver to use for this - volume. type: string fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - The default filesystem depends - on FlexVolume script. type: string options: additionalProperties: type: string - description: 'options is Optional: - this field holds extra command - options if any.' type: object readOnly: - description: 'readOnly is Optional: - defaults to false (read/write). - ReadOnly here will force the ReadOnly - setting in VolumeMounts.' type: boolean secretRef: - description: 'secretRef is Optional: - secretRef is reference to the - secret object containing sensitive - information to pass to the plugin - scripts. This may be empty if - no secret object is specified. - If the secret object contains - more than one secret, all secrets - are passed to the plugin scripts.' properties: name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic @@ -29401,219 +10405,79 @@ spec: - driver type: object flocker: - description: flocker represents a Flocker - volume attached to a kubelet's host - machine. This depends on the Flocker - control service being running properties: datasetName: - description: datasetName is Name - of the dataset stored as metadata - -> name on the dataset for Flocker - should be considered as deprecated type: string datasetUUID: - description: datasetUUID is the - UUID of the dataset. This is unique - identifier of a Flocker dataset type: string type: object gcePersistentDisk: - description: 'gcePersistentDisk represents - a GCE Disk resource that is attached - to a kubelet''s host machine and then - exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' properties: fsType: - description: 'fsType is filesystem - type of the volume that you want - to mount. Tip: Ensure that the - filesystem type is supported by - the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. - More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors - in the filesystem from compromising - the machine' type: string partition: - description: 'partition is the partition - in the volume that you want to - mount. If omitted, the default - is to mount by volume name. Examples: - For volume /dev/sda1, you specify - the partition as "1". Similarly, - the volume partition for /dev/sda - is "0" (or you can leave the property - empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' format: int32 type: integer pdName: - description: 'pdName is unique name - of the PD resource in GCE. Used - to identify the disk in GCE. More - info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: string readOnly: - description: 'readOnly here will - force the ReadOnly setting in - VolumeMounts. Defaults to false. - More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: boolean required: - pdName type: object glusterfs: - description: 'glusterfs represents a - Glusterfs mount on the host that shares - a pod''s lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md' properties: endpoints: - description: 'endpoints is the endpoint - name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string path: - description: 'path is the Glusterfs - volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string readOnly: - description: 'readOnly here will - force the Glusterfs volume to - be mounted with read-only permissions. - Defaults to false. More info: - https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: boolean required: - endpoints - path type: object hostPath: - description: 'hostPath represents a - pre-existing file or directory on - the host machine that is directly - exposed to the container. This is - generally used for system agents or - other privileged things that are allowed - to see the host machine. Most containers - will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- TODO(jonesdl) We need to restrict - who can use host directory mounts - and who can/can not mount host directories - as read/write.' properties: path: - description: 'path of the directory - on the host. If the path is a - symlink, it will follow the link - to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string type: - description: 'type for HostPath - Volume Defaults to "" More info: - https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string required: - path type: object iscsi: - description: 'iscsi represents an ISCSI - Disk resource that is attached to - a kubelet''s host machine and then - exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md' properties: chapAuthDiscovery: - description: chapAuthDiscovery defines - whether support iSCSI Discovery - CHAP authentication type: boolean chapAuthSession: - description: chapAuthSession defines - whether support iSCSI Session - CHAP authentication type: boolean fsType: - description: 'fsType is the filesystem - type of the volume that you want - to mount. Tip: Ensure that the - filesystem type is supported by - the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. - More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors - in the filesystem from compromising - the machine' type: string initiatorName: - description: initiatorName is the - custom iSCSI Initiator Name. If - initiatorName is specified with - iscsiInterface simultaneously, - new iSCSI interface : will be created for the - connection. type: string iqn: - description: iqn is the target iSCSI - Qualified Name. type: string iscsiInterface: - description: iscsiInterface is the - interface Name that uses an iSCSI - transport. Defaults to 'default' - (tcp). type: string lun: - description: lun represents iSCSI - Target Lun number. format: int32 type: integer portals: - description: portals is the iSCSI - Target Portal List. The portal - is either an IP or ip_addr:port - if the port is other than default - (typically TCP ports 860 and 3260). items: type: string type: array x-kubernetes-list-type: atomic readOnly: - description: readOnly here will - force the ReadOnly setting in - VolumeMounts. Defaults to false. type: boolean secretRef: - description: secretRef is the CHAP - Secret for iSCSI target and initiator - authentication properties: name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic targetPortal: - description: targetPortal is iSCSI - Target Portal. The Portal is either - an IP or ip_addr:port if the port - is other than default (typically - TCP ports 860 and 3260). type: string required: - iqn @@ -29621,221 +10485,66 @@ spec: - targetPortal type: object nfs: - description: 'nfs represents an NFS - mount on the host that shares a pod''s - lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' properties: path: - description: 'path that is exported - by the NFS server. More info: - https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string readOnly: - description: 'readOnly here will - force the NFS export to be mounted - with read-only permissions. Defaults - to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: boolean server: - description: 'server is the hostname - or IP address of the NFS server. - More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string required: - path - server type: object persistentVolumeClaim: - description: 'persistentVolumeClaimVolumeSource - represents a reference to a PersistentVolumeClaim - in the same namespace. More info: - https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: claimName: - description: 'claimName is the name - of a PersistentVolumeClaim in - the same namespace as the pod - using this volume. More info: - https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' type: string readOnly: - description: readOnly Will force - the ReadOnly setting in VolumeMounts. - Default false. type: boolean required: - claimName type: object photonPersistentDisk: - description: photonPersistentDisk represents - a PhotonController persistent disk - attached and mounted on kubelets host - machine properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" - if unspecified. type: string pdID: - description: pdID is the ID that - identifies Photon Controller persistent - disk type: string required: - pdID type: object portworxVolume: - description: portworxVolume represents - a portworx volume attached and mounted - on kubelets host machine properties: fsType: - description: fSType represents the - filesystem type to mount Must - be a filesystem type supported - by the host operating system. - Ex. "ext4", "xfs". Implicitly - inferred to be "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to - false (read/write). ReadOnly here - will force the ReadOnly setting - in VolumeMounts. type: boolean volumeID: - description: volumeID uniquely identifies - a Portworx volume type: string required: - volumeID type: object projected: - description: projected items for all - in one resources secrets, configmaps, - and downward API properties: defaultMode: - description: defaultMode are the - mode bits used to set permissions - on created files by default. Must - be an octal value between 0000 - and 0777 or a decimal value between - 0 and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. - Directories within the path are - not affected by this setting. - This might be in conflict with - other options that affect the - file mode, like fsGroup, and the - result can be other mode bits - set. format: int32 type: integer sources: - description: sources is the list - of volume projections items: - description: Projection that may - be projected along with other - supported volume types properties: clusterTrustBundle: - description: "ClusterTrustBundle - allows a pod to access the - `.spec.trustBundle` field - of ClusterTrustBundle objects - in an auto-updating file. - \n Alpha, gated by the ClusterTrustBundleProjection - feature gate. \n ClusterTrustBundle - objects can either be selected - by name, or by the combination - of signer name and a label - selector. \n Kubelet performs - aggressive normalization - of the PEM contents written - into the pod filesystem. - \ Esoteric PEM features - such as inter-block comments - and block headers are stripped. - \ Certificates are deduplicated. - The ordering of certificates - within the file is arbitrary, - and Kubelet may change the - order over time." properties: labelSelector: - description: Select all - ClusterTrustBundles - that match this label - selector. Only has - effect if signerName - is set. Mutually-exclusive - with name. If unset, - interpreted as "match - nothing". If set but - empty, interpreted as - "match everything". properties: matchExpressions: - description: matchExpressions - is a list of label - selector requirements. - The requirements - are ANDed. items: - description: A label - selector requirement - is a selector - that contains - values, a key, - and an operator - that relates the - key and values. properties: key: - description: key - is the label - key that the - selector applies - to. type: string operator: - description: operator - represents - a key's relationship - to a set of - values. Valid - operators - are In, NotIn, - Exists and - DoesNotExist. type: string values: - description: values - is an array - of string - values. If - the operator - is In or NotIn, - the values - array must - be non-empty. - If the operator - is Exists - or DoesNotExist, - the values - array must - be empty. - This array - is replaced - during a strategic - merge patch. items: type: string type: array @@ -29849,142 +10558,31 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single - {key,value} in the - matchLabels map - is equivalent to - an element of matchExpressions, - whose key field - is "key", the operator - is "In", and the - values array contains - only "value". The - requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic name: - description: Select a - single ClusterTrustBundle - by object name. Mutually-exclusive - with signerName and - labelSelector. type: string optional: - description: If true, - don't block pod startup - if the referenced ClusterTrustBundle(s) - aren't available. If - using name, then the - named ClusterTrustBundle - is allowed not to exist. If - using signerName, then - the combination of signerName - and labelSelector is - allowed to match zero - ClusterTrustBundles. type: boolean path: - description: Relative - path from the volume - root to write the bundle. type: string signerName: - description: Select all - ClusterTrustBundles - that match this signer - name. Mutually-exclusive - with name. The contents - of all selected ClusterTrustBundles - will be unified and - deduplicated. type: string required: - path type: object configMap: - description: configMap information - about the configMap data - to project properties: items: - description: items if - unspecified, each key-value - pair in the Data field - of the referenced ConfigMap - will be projected into - the volume as a file - whose name is the key - and content is the value. - If specified, the listed - keys will be projected - into the specified paths, - and unlisted keys will - not be present. If a - key is specified which - is not present in the - ConfigMap, the volume - setup will error unless - it is marked optional. - Paths must be relative - and may not contain - the '..' path or start - with '..'. items: - description: Maps a - string key to a path - within a volume. properties: key: - description: key - is the key to - project. type: string mode: - description: 'mode - is Optional: mode - bits used to set - permissions on - this file. Must - be an octal value - between 0000 and - 0777 or a decimal - value between - 0 and 511. YAML - accepts both octal - and decimal values, - JSON requires - decimal values - for mode bits. - If not specified, - the volume defaultMode - will be used. - This might be - in conflict with - other options - that affect the - file mode, like - fsGroup, and the - result can be - other mode bits - set.' format: int32 type: integer path: - description: path - is the relative - path of the file - to map the key - to. May not be - an absolute path. - May not contain - the path element - '..'. May not - start with the - string '..'. type: string required: - key @@ -29994,155 +10592,42 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of - the referent. This field - is effectively required, - but due to backwards - compatibility is allowed - to be empty. Instances - of this type with an - empty value here are - almost certainly wrong. - TODO: Add other useful - fields. apiVersion, - kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional - specify whether the - ConfigMap or its keys - must be defined type: boolean type: object x-kubernetes-map-type: atomic downwardAPI: - description: downwardAPI information - about the downwardAPI data - to project properties: items: - description: Items is - a list of DownwardAPIVolume - file items: - description: DownwardAPIVolumeFile - represents information - to create the file - containing the pod - field properties: fieldRef: - description: 'Required: - Selects a field - of the pod: only - annotations, labels, - name, namespace - and uid are supported.' properties: apiVersion: - description: Version - of the schema - the FieldPath - is written - in terms of, - defaults to - "v1". type: string fieldPath: - description: Path - of the field - to select - in the specified - API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: - mode bits used - to set permissions - on this file, - must be an octal - value between - 0000 and 0777 - or a decimal value - between 0 and - 511. YAML accepts - both octal and - decimal values, - JSON requires - decimal values - for mode bits. - If not specified, - the volume defaultMode - will be used. - This might be - in conflict with - other options - that affect the - file mode, like - fsGroup, and the - result can be - other mode bits - set.' format: int32 type: integer path: - description: 'Required: - Path is the relative - path name of the - file to be created. - Must not be absolute - or contain the - ''..'' path. Must - be utf-8 encoded. - The first item - of the relative - path must not - start with ''..''' type: string resourceFieldRef: - description: 'Selects - a resource of - the container: - only resources - limits and requests - (limits.cpu, limits.memory, - requests.cpu and - requests.memory) - are currently - supported.' properties: containerName: - description: 'Container - name: required - for volumes, - optional for - env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies - the output - format of - the exposed - resources, - defaults to - "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: - resource to - select' type: string required: - resource @@ -30155,85 +10640,16 @@ spec: x-kubernetes-list-type: atomic type: object secret: - description: secret information - about the secret data to - project properties: items: - description: items if - unspecified, each key-value - pair in the Data field - of the referenced Secret - will be projected into - the volume as a file - whose name is the key - and content is the value. - If specified, the listed - keys will be projected - into the specified paths, - and unlisted keys will - not be present. If a - key is specified which - is not present in the - Secret, the volume setup - will error unless it - is marked optional. - Paths must be relative - and may not contain - the '..' path or start - with '..'. items: - description: Maps a - string key to a path - within a volume. properties: key: - description: key - is the key to - project. type: string mode: - description: 'mode - is Optional: mode - bits used to set - permissions on - this file. Must - be an octal value - between 0000 and - 0777 or a decimal - value between - 0 and 511. YAML - accepts both octal - and decimal values, - JSON requires - decimal values - for mode bits. - If not specified, - the volume defaultMode - will be used. - This might be - in conflict with - other options - that affect the - file mode, like - fsGroup, and the - result can be - other mode bits - set.' format: int32 type: integer path: - description: path - is the relative - path of the file - to map the key - to. May not be - an absolute path. - May not contain - the path element - '..'. May not - start with the - string '..'. type: string required: - key @@ -30243,76 +10659,19 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of - the referent. This field - is effectively required, - but due to backwards - compatibility is allowed - to be empty. Instances - of this type with an - empty value here are - almost certainly wrong. - TODO: Add other useful - fields. apiVersion, - kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional - field specify whether - the Secret or its key - must be defined type: boolean type: object x-kubernetes-map-type: atomic serviceAccountToken: - description: serviceAccountToken - is information about the - serviceAccountToken data - to project properties: audience: - description: audience - is the intended audience - of the token. A recipient - of a token must identify - itself with an identifier - specified in the audience - of the token, and otherwise - should reject the token. - The audience defaults - to the identifier of - the apiserver. type: string expirationSeconds: - description: expirationSeconds - is the requested duration - of validity of the service - account token. As the - token approaches expiration, - the kubelet volume plugin - will proactively rotate - the service account - token. The kubelet will - start trying to rotate - the token if the token - is older than 80 percent - of its time to live - or if the token is older - than 24 hours.Defaults - to 1 hour and must be - at least 10 minutes. format: int64 type: integer path: - description: path is the - path relative to the - mount point of the file - to project the token - into. type: string required: - path @@ -30322,209 +10681,79 @@ spec: x-kubernetes-list-type: atomic type: object quobyte: - description: quobyte represents a Quobyte - mount on the host that shares a pod's - lifetime properties: group: - description: group to map volume - access to Default is no group type: string readOnly: - description: readOnly here will - force the Quobyte volume to be - mounted with read-only permissions. - Defaults to false. type: boolean registry: - description: registry represents - a single or multiple Quobyte Registry - services specified as a string - as host:port pair (multiple entries - are separated with commas) which - acts as the central registry for - volumes type: string tenant: - description: tenant owning the given - Quobyte volume in the Backend - Used with dynamically provisioned - Quobyte volumes, value is set - by the plugin type: string user: - description: user to map volume - access to Defaults to serivceaccount - user type: string volume: - description: volume is a string - that references an already created - Quobyte volume by name. type: string required: - registry - volume type: object rbd: - description: 'rbd represents a Rados - Block Device mount on the host that - shares a pod''s lifetime. More info: - https://examples.k8s.io/volumes/rbd/README.md' properties: fsType: - description: 'fsType is the filesystem - type of the volume that you want - to mount. Tip: Ensure that the - filesystem type is supported by - the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. - More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors - in the filesystem from compromising - the machine' type: string image: - description: 'image is the rados - image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string keyring: - description: 'keyring is the path - to key ring for RBDUser. Default - is /etc/ceph/keyring. More info: - https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string monitors: - description: 'monitors is a collection - of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic pool: - description: 'pool is the rados - pool name. Default is rbd. More - info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string readOnly: - description: 'readOnly here will - force the ReadOnly setting in - VolumeMounts. Defaults to false. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: boolean secretRef: - description: 'secretRef is name - of the authentication secret for - RBDUser. If provided overrides - keyring. Default is nil. More - info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is the rados - user name. Default is admin. More - info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string required: - image - monitors type: object scaleIO: - description: scaleIO represents a ScaleIO - persistent volume attached and mounted - on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Default is "xfs". type: string gateway: - description: gateway is the host - address of the ScaleIO API Gateway. type: string protectionDomain: - description: protectionDomain is - the name of the ScaleIO Protection - Domain for the configured storage. type: string readOnly: - description: readOnly Defaults to - false (read/write). ReadOnly here - will force the ReadOnly setting - in VolumeMounts. type: boolean secretRef: - description: secretRef references - to the secret for ScaleIO user - and other sensitive information. - If this is not provided, Login - operation will fail. properties: name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic sslEnabled: - description: sslEnabled Flag enable/disable - SSL communication with Gateway, - default false type: boolean storageMode: - description: storageMode indicates - whether the storage for a volume - should be ThickProvisioned or - ThinProvisioned. Default is ThinProvisioned. type: string storagePool: - description: storagePool is the - ScaleIO Storage Pool associated - with the protection domain. type: string system: - description: system is the name - of the storage system as configured - in ScaleIO. type: string volumeName: - description: volumeName is the name - of a volume already created in - the ScaleIO system that is associated - with this volume source. type: string required: - gateway @@ -30532,79 +10761,19 @@ spec: - system type: object secret: - description: 'secret represents a secret - that should populate this volume. - More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' properties: defaultMode: - description: 'defaultMode is Optional: - mode bits used to set permissions - on created files by default. Must - be an octal value between 0000 - and 0777 or a decimal value between - 0 and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. - Defaults to 0644. Directories - within the path are not affected - by this setting. This might be - in conflict with other options - that affect the file mode, like - fsGroup, and the result can be - other mode bits set.' format: int32 type: integer items: - description: items If unspecified, - each key-value pair in the Data - field of the referenced Secret - will be projected into the volume - as a file whose name is the key - and content is the value. If specified, - the listed keys will be projected - into the specified paths, and - unlisted keys will not be present. - If a key is specified which is - not present in the Secret, the - volume setup will error unless - it is marked optional. Paths must - be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key - to a path within a volume. properties: key: - description: key is the key - to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an - octal value between 0000 - and 0777 or a decimal value - between 0 and 511. YAML - accepts both octal and decimal - values, JSON requires decimal - values for mode bits. If - not specified, the volume - defaultMode will be used. - This might be in conflict - with other options that - affect the file mode, like - fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map - the key to. May not be an - absolute path. May not contain - the path element '..'. May - not start with the string - '..'. type: string required: - key @@ -30613,245 +10782,60 @@ spec: type: array x-kubernetes-list-type: atomic optional: - description: optional field specify - whether the Secret or its keys - must be defined type: boolean secretName: - description: 'secretName is the - name of the secret in the pod''s - namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' type: string type: object storageos: - description: storageOS represents a - StorageOS volume attached and mounted - on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" - if unspecified. type: string readOnly: - description: readOnly defaults to - false (read/write). ReadOnly here - will force the ReadOnly setting - in VolumeMounts. type: boolean secretRef: - description: secretRef specifies - the secret to use for obtaining - the StorageOS API credentials. If - not specified, default values - will be attempted. properties: name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeName: - description: volumeName is the human-readable - name of the StorageOS volume. Volume - names are only unique within a - namespace. type: string volumeNamespace: - description: volumeNamespace specifies - the scope of the volume within - StorageOS. If no namespace is - specified then the Pod's namespace - will be used. This allows the - Kubernetes name scoping to be - mirrored within StorageOS for - tighter integration. Set VolumeName - to any name to override the default - behaviour. Set to "default" if - you are not using namespaces within - StorageOS. Namespaces that do - not pre-exist within StorageOS - will be created. type: string type: object volumeClaimTemplate: - description: VolumeClaimTemplate specifies - a template for volume to use by the - backup/restore executor properties: metadata: - description: May contain labels - and annotations that will be copied - into the PVC when creating it. - No other fields are allowed and - will be rejected during validation. properties: annotations: additionalProperties: type: string - description: 'Annotations is - an unstructured key value - map stored with a resource - that may be set by external - tools to store and retrieve - arbitrary metadata. They are - not queryable and should be - preserved when modifying objects. - More info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName is - an optional prefix, used by - the server, to generate a - unique name ONLY IF the Name - field has not been provided. - If this field is used, the - name returned to the client - will be different than the - name passed. This value will - also be combined with a unique - suffix. The provided value - has the same validation rules - as the Name field, and may - be truncated by the length - of the suffix required to - make the value unique on the - server. \n If this field is - specified and the generated - name exists, the server will - NOT return a 409 - instead, - it will either return 201 - Created or 500 with Reason - ServerTimeout indicating a - unique name could not be found - in the time allotted, and - the client should retry (optionally - after the time indicated in - the Retry-After header). \n - Applied only if Name is not - specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string - keys and values that can be - used to organize and categorize - (scope and select) objects. - May match selectors of replication - controllers and services. - More info: http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must be unique - within a namespace. Is required - when creating resources, although - some resources may allow a - client to request the generation - of an appropriate name automatically. - Name is primarily intended - for creation idempotence and - configuration definition. - Cannot be updated. More info: - http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace defines - the space within each name - must be unique. An empty namespace - is equivalent to the \"default\" - namespace, but \"default\" - is the canonical representation. - Not all objects are required - to be scoped to a namespace - - the value of this field - for those objects will be - empty. \n Must be a DNS_LABEL. - Cannot be updated. More info: - http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects - depended by this object. If - ALL objects in the list have - been deleted, this object - will be garbage collected. - If this object is managed - by a controller, then an entry - in this list will point to - this controller, with the - controller field set to true. - There cannot be more than - one managing controller. items: - description: OwnerReference - contains enough information - to let you identify an owning - object. An owning object - must be in the same namespace - as the dependent, or be - cluster-scoped, so there - is no namespace field. properties: apiVersion: - description: API version - of the referent. type: string blockOwnerDeletion: - description: If true, - AND if the owner has - the "foregroundDeletion" - finalizer, then the - owner cannot be deleted - from the key-value store - until this reference - is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage - collector interacts - with this field and - enforces the foreground - deletion. Defaults to - false. To set this field, - a user needs "delete" - permission of the owner, - otherwise 422 (Unprocessable - Entity) will be returned. type: boolean controller: - description: If true, - this reference points - to the managing controller. type: boolean kind: - description: 'Kind of - the referent. More info: - https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of - the referent. More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the - referent. More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -30863,63 +10847,19 @@ spec: type: array type: object spec: - description: The specification for - the PersistentVolumeClaim. The - entire content is copied unchanged - into the PVC that gets created - from this template. The same fields - as in a PersistentVolumeClaim - are also valid here. properties: accessModes: - description: 'accessModes contains - the desired access modes the - volume should have. More info: - https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource field - can be used to specify either: - * An existing VolumeSnapshot - object (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an external - controller can support the - specified data source, it - will create a new volume based - on the contents of the specified - data source. When the AnyVolumeDataSource - feature gate is enabled, dataSource - contents will be copied to - dataSourceRef, and dataSourceRef - contents will be copied to - dataSource when dataSourceRef.namespace - is not specified. If the namespace - is specified, then dataSourceRef - will not be copied to dataSource.' properties: apiGroup: - description: APIGroup is - the group for the resource - being referenced. If APIGroup - is not specified, the - specified Kind must be - in the core API group. - For any other third-party - types, APIGroup is required. type: string kind: - description: Kind is the - type of resource being - referenced type: string name: - description: Name is the - name of resource being - referenced type: string required: - kind @@ -30927,110 +10867,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef - specifies the object from - which to populate the volume - with data, if a non-empty - volume is desired. This may - be any object from a non-empty - API group (non core object) - or a PersistentVolumeClaim - object. When this field is - specified, volume binding - will only succeed if the type - of the specified object matches - some installed volume populator - or dynamic provisioner. This - field will replace the functionality - of the dataSource field and - as such if both fields are - non-empty, they must have - the same value. For backwards - compatibility, when namespace - isn''t specified in dataSourceRef, - both fields (dataSource and - dataSourceRef) will be set - to the same value automatically - if one of them is empty and - the other is non-empty. When - namespace is specified in - dataSourceRef, dataSource - isn''t set to the same value - and must be empty. There are - three important differences - between dataSource and dataSourceRef: - * While dataSource only allows - two specific types of objects, - dataSourceRef allows any non-core - object, as well as PersistentVolumeClaim - objects. * While dataSource - ignores disallowed values - (dropping them), dataSourceRef - preserves all values, and - generates an error if a disallowed - value is specified. * While - dataSource only allows local - objects, dataSourceRef allows - objects in any namespaces. - (Beta) Using this field requires - the AnyVolumeDataSource feature - gate to be enabled. (Alpha) - Using the namespace field - of dataSourceRef requires - the CrossNamespaceVolumeDataSource - feature gate to be enabled.' properties: apiGroup: - description: APIGroup is - the group for the resource - being referenced. If APIGroup - is not specified, the - specified Kind must be - in the core API group. - For any other third-party - types, APIGroup is required. type: string kind: - description: Kind is the - type of resource being - referenced type: string name: - description: Name is the - name of resource being - referenced type: string namespace: - description: Namespace is - the namespace of resource - being referenced Note - that when a namespace - is specified, a gateway.networking.k8s.io/ReferenceGrant - object is required in - the referent namespace - to allow that namespace's - owner to accept the reference. - See the ReferenceGrant - documentation for details. - (Alpha) This field requires - the CrossNamespaceVolumeDataSource - feature gate to be enabled. type: string required: - kind - name type: object resources: - description: 'resources represents - the minimum resources the - volume should have. If RecoverVolumeExpansionFailure - feature is enabled users are - allowed to specify resource - requirements that are lower - than previous value but must - still be higher than capacity - recorded in the status field - of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -31039,10 +10889,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes - the maximum amount of - compute resources allowed. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -31051,66 +10897,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes - the minimum amount of - compute resources required. - If Requests is omitted - for a container, it defaults - to Limits if that is explicitly - specified, otherwise to - an implementation-defined - value. Requests cannot - exceed Limits. More info: - https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is a label - query over volumes to consider - for binding. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key - and values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, Exists - and DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -31124,102 +10922,30 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an element - of matchExpressions, whose - key field is "key", the - operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName - is the name of the StorageClass - required by the claim. More - info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName - may be used to set the VolumeAttributesClass - used by this claim. If specified, - the CSI driver will create - or update the volume with - the attributes defined in - the corresponding VolumeAttributesClass. - This has a different purpose - than storageClassName, it - can be changed after the claim - is created. An empty string - value means that no VolumeAttributesClass - will be applied to the claim - but it''s not allowed to reset - this field to empty string - once it is set. If unspecified - and the PersistentVolumeClaim - is unbound, the default VolumeAttributesClass - will be set by the persistentvolume - controller if it exists. If - the resource referred to by - volumeAttributesClass does - not exist, this PersistentVolumeClaim - will be set to a Pending state, - as reflected by the modifyVolumeStatus - field, until such as a resource - exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires - the VolumeAttributesClass - feature gate to be enabled.' type: string volumeMode: - description: volumeMode defines - what type of volume is required - by the claim. Value of Filesystem - is implied when not included - in claim spec. type: string volumeName: - description: volumeName is the - binding reference to the PersistentVolume - backing this claim. type: string type: object required: - spec type: object vsphereVolume: - description: vsphereVolume represents - a vSphere volume attached and mounted - on kubelets host machine properties: fsType: - description: fsType is filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" - if unspecified. type: string storagePolicyID: - description: storagePolicyID is - the storage Policy Based Management - (SPBM) profile ID associated with - the StoragePolicyName. type: string storagePolicyName: - description: storagePolicyName is - the storage Policy Based Management - (SPBM) profile name. type: string volumePath: - description: volumePath is the path - that identifies vSphere volume - vmdk type: string required: - volumePath @@ -31228,183 +10954,49 @@ spec: type: object type: array name: - description: Name indicates to the name of the - task type: string params: - description: Params specifies parameters for the - task. You must provide the parameter in the - Addon desired structure. type: object x-kubernetes-preserve-unknown-fields: true targetVolumes: - description: TargetVolumes specifies which volumes - from the target should be mounted in the backup/restore - job/container. properties: volumeClaimTemplates: - description: VolumeClaimTemplates specifies - a template for the PersistentVolumeClaims - that will be created for each Pod in a StatefulSet. items: - description: PersistentVolumeClaim is a - user's request for and claim to a persistent - volume properties: apiVersion: - description: 'APIVersion defines the - versioned schema of this representation - of an object. Servers should convert - recognized schemas to the latest internal - value, and may reject unrecognized - values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'Kind is a string value - representing the REST resource this - object represents. Servers may infer - this from the endpoint the client - submits requests to. Cannot be updated. - In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: - description: 'Standard object''s metadata. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata' properties: annotations: additionalProperties: type: string - description: 'Annotations is an - unstructured key value map stored - with a resource that may be set - by external tools to store and - retrieve arbitrary metadata. They - are not queryable and should be - preserved when modifying objects. - More info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName is an - optional prefix, used by the server, - to generate a unique name ONLY - IF the Name field has not been - provided. If this field is used, - the name returned to the client - will be different than the name - passed. This value will also be - combined with a unique suffix. - The provided value has the same - validation rules as the Name field, - and may be truncated by the length - of the suffix required to make - the value unique on the server. - \n If this field is specified - and the generated name exists, - the server will NOT return a 409 - - instead, it will either return - 201 Created or 500 with Reason - ServerTimeout indicating a unique - name could not be found in the - time allotted, and the client - should retry (optionally after - the time indicated in the Retry-After - header). \n Applied only if Name - is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string keys - and values that can be used to - organize and categorize (scope - and select) objects. May match - selectors of replication controllers - and services. More info: http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must be unique - within a namespace. Is required - when creating resources, although - some resources may allow a client - to request the generation of an - appropriate name automatically. - Name is primarily intended for - creation idempotence and configuration - definition. Cannot be updated. - More info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace defines - the space within each name must - be unique. An empty namespace - is equivalent to the \"default\" - namespace, but \"default\" is - the canonical representation. - Not all objects are required to - be scoped to a namespace - the - value of this field for those - objects will be empty. \n Must - be a DNS_LABEL. Cannot be updated. - More info: http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects depended - by this object. If ALL objects - in the list have been deleted, - this object will be garbage collected. - If this object is managed by a - controller, then an entry in this - list will point to this controller, - with the controller field set - to true. There cannot be more - than one managing controller. items: - description: OwnerReference contains - enough information to let you - identify an owning object. An - owning object must be in the - same namespace as the dependent, - or be cluster-scoped, so there - is no namespace field. properties: apiVersion: - description: API version of - the referent. type: string blockOwnerDeletion: - description: If true, AND - if the owner has the "foregroundDeletion" - finalizer, then the owner - cannot be deleted from the - key-value store until this - reference is removed. See - https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage collector - interacts with this field - and enforces the foreground - deletion. Defaults to false. - To set this field, a user - needs "delete" permission - of the owner, otherwise - 422 (Unprocessable Entity) - will be returned. type: boolean controller: - description: If true, this - reference points to the - managing controller. type: boolean kind: - description: 'Kind of the - referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of the - referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -31416,54 +11008,19 @@ spec: type: array type: object spec: - description: 'Spec defines the desired - characteristics of a volume requested - by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: accessModes: - description: 'accessModes contains - the desired access modes the volume - should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource field can - be used to specify either: * An - existing VolumeSnapshot object - (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an external - controller can support the specified - data source, it will create a - new volume based on the contents - of the specified data source. - When the AnyVolumeDataSource feature - gate is enabled, dataSource contents - will be copied to dataSourceRef, - and dataSourceRef contents will - be copied to dataSource when dataSourceRef.namespace - is not specified. If the namespace - is specified, then dataSourceRef - will not be copied to dataSource.' properties: apiGroup: - description: APIGroup is the - group for the resource being - referenced. If APIGroup is - not specified, the specified - Kind must be in the core API - group. For any other third-party - types, APIGroup is required. type: string kind: - description: Kind is the type - of resource being referenced type: string name: - description: Name is the name - of resource being referenced type: string required: - kind @@ -31471,98 +11028,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef specifies - the object from which to populate - the volume with data, if a non-empty - volume is desired. This may be - any object from a non-empty API - group (non core object) or a PersistentVolumeClaim - object. When this field is specified, - volume binding will only succeed - if the type of the specified object - matches some installed volume - populator or dynamic provisioner. - This field will replace the functionality - of the dataSource field and as - such if both fields are non-empty, - they must have the same value. - For backwards compatibility, when - namespace isn''t specified in - dataSourceRef, both fields (dataSource - and dataSourceRef) will be set - to the same value automatically - if one of them is empty and the - other is non-empty. When namespace - is specified in dataSourceRef, - dataSource isn''t set to the same - value and must be empty. There - are three important differences - between dataSource and dataSourceRef: - * While dataSource only allows - two specific types of objects, - dataSourceRef allows any non-core - object, as well as PersistentVolumeClaim - objects. * While dataSource ignores - disallowed values (dropping them), - dataSourceRef preserves all values, - and generates an error if a disallowed - value is specified. * While dataSource - only allows local objects, dataSourceRef - allows objects in any namespaces. - (Beta) Using this field requires - the AnyVolumeDataSource feature - gate to be enabled. (Alpha) Using - the namespace field of dataSourceRef - requires the CrossNamespaceVolumeDataSource - feature gate to be enabled.' properties: apiGroup: - description: APIGroup is the - group for the resource being - referenced. If APIGroup is - not specified, the specified - Kind must be in the core API - group. For any other third-party - types, APIGroup is required. type: string kind: - description: Kind is the type - of resource being referenced type: string name: - description: Name is the name - of resource being referenced type: string namespace: - description: Namespace is the - namespace of resource being - referenced Note that when - a namespace is specified, - a gateway.networking.k8s.io/ReferenceGrant - object is required in the - referent namespace to allow - that namespace's owner to - accept the reference. See - the ReferenceGrant documentation - for details. (Alpha) This - field requires the CrossNamespaceVolumeDataSource - feature gate to be enabled. type: string required: - kind - name type: object resources: - description: 'resources represents - the minimum resources the volume - should have. If RecoverVolumeExpansionFailure - feature is enabled users are allowed - to specify resource requirements - that are lower than previous value - but must still be higher than - capacity recorded in the status - field of the claim. More info: - https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -31571,10 +11050,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes - the maximum amount of compute - resources allowed. More info: - https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -31583,59 +11058,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes - the minimum amount of compute - resources required. If Requests - is omitted for a container, - it defaults to Limits if that - is explicitly specified, otherwise - to an implementation-defined - value. Requests cannot exceed - Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is a label - query over volumes to consider - for binding. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator - represents a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is - an array of string values. - If the operator is In - or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the - values array must be - empty. This array is - replaced during a strategic - merge patch. items: type: string type: array @@ -31649,148 +11083,28 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in the - matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName is - the name of the StorageClass required - by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName - may be used to set the VolumeAttributesClass - used by this claim. If specified, - the CSI driver will create or - update the volume with the attributes - defined in the corresponding VolumeAttributesClass. - This has a different purpose than - storageClassName, it can be changed - after the claim is created. An - empty string value means that - no VolumeAttributesClass will - be applied to the claim but it''s - not allowed to reset this field - to empty string once it is set. - If unspecified and the PersistentVolumeClaim - is unbound, the default VolumeAttributesClass - will be set by the persistentvolume - controller if it exists. If the - resource referred to by volumeAttributesClass - does not exist, this PersistentVolumeClaim - will be set to a Pending state, - as reflected by the modifyVolumeStatus - field, until such as a resource - exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires - the VolumeAttributesClass feature - gate to be enabled.' type: string volumeMode: - description: volumeMode defines - what type of volume is required - by the claim. Value of Filesystem - is implied when not included in - claim spec. type: string volumeName: - description: volumeName is the binding - reference to the PersistentVolume - backing this claim. type: string type: object status: - description: 'Status represents the - current information/status of a persistent - volume claim. Read-only. More info: - https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: accessModes: - description: 'accessModes contains - the actual access modes the volume - backing the PVC has. More info: - https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic allocatedResourceStatuses: additionalProperties: - description: When a controller - receives persistentvolume claim - update with ClaimResourceStatus - for a resource that it does - not recognizes, then it should - ignore that update and let other - controllers handle it. type: string - description: "allocatedResourceStatuses - stores status of resource being - resized for the given PVC. Key - names follow standard Kubernetes - label syntax. Valid values are - either: * Un-prefixed keys: - - storage - the capacity of the - volume. * Custom resources must - use implementation-defined prefixed - names such as \"example.com/my-custom-resource\" - Apart from above values - keys - that are unprefixed or have kubernetes.io - prefix are considered reserved - and hence may not be used. \n - ClaimResourceStatus can be in - any of following states: - ControllerResizeInProgress: - State set when resize controller - starts resizing the volume in - control-plane. - ControllerResizeFailed: - State set when resize has failed - in resize controller with a terminal - error. - NodeResizePending: State - set when resize controller has - finished resizing the volume but - further resizing of volume is - needed on the node. - NodeResizeInProgress: - State set when kubelet starts - resizing the volume. - NodeResizeFailed: - State set when resizing has failed - in kubelet with a terminal error. - Transient errors don't set NodeResizeFailed. - For example: if expanding a PVC - for more capacity - this field - can be one of the following states: - - pvc.status.allocatedResourceStatus['storage'] - = \"ControllerResizeInProgress\" - - pvc.status.allocatedResourceStatus['storage'] - = \"ControllerResizeFailed\" - - pvc.status.allocatedResourceStatus['storage'] - = \"NodeResizePending\" - pvc.status.allocatedResourceStatus['storage'] - = \"NodeResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] - = \"NodeResizeFailed\" When this - field is not set, it means that - no resize operation is in progress - for the given PVC. \n A controller - that receives PVC update with - previously unknown resourceName - or ClaimResourceStatus should - ignore the update for the purpose - it was designed. For example - - a controller that only is responsible - for resizing capacity of the volume, - should ignore PVC updates that - change other valid resources associated - with PVC. \n This is an alpha - field and requires enabling RecoverVolumeExpansionFailure - feature." type: object x-kubernetes-map-type: granular allocatedResources: @@ -31800,47 +11114,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: "allocatedResources - tracks the resources allocated - to a PVC including its capacity. - Key names follow standard Kubernetes - label syntax. Valid values are - either: * Un-prefixed keys: - - storage - the capacity of the - volume. * Custom resources must - use implementation-defined prefixed - names such as \"example.com/my-custom-resource\" - Apart from above values - keys - that are unprefixed or have kubernetes.io - prefix are considered reserved - and hence may not be used. \n - Capacity reported here may be - larger than the actual capacity - when a volume expansion operation - is requested. For storage quota, - the larger value from allocatedResources - and PVC.spec.resources is used. - If allocatedResources is not set, - PVC.spec.resources alone is used - for quota calculation. If a volume - expansion capacity request is - lowered, allocatedResources is - only lowered if there are no expansion - operations in progress and if - the actual volume capacity is - equal or lower than the requested - capacity. \n A controller that - receives PVC update with previously - unknown resourceName should ignore - the update for the purpose it - was designed. For example - a - controller that only is responsible - for resizing capacity of the volume, - should ignore PVC updates that - change other valid resources associated - with PVC. \n This is an alpha - field and requires enabling RecoverVolumeExpansionFailure - feature." type: object capacity: additionalProperties: @@ -31849,55 +11122,23 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: capacity represents - the actual resources of the underlying - volume. type: object conditions: - description: conditions is the current - Condition of persistent volume - claim. If underlying persistent - volume is being resized then the - Condition will be set to 'Resizing'. items: - description: PersistentVolumeClaimCondition - contains details about state - of pvc properties: lastProbeTime: - description: lastProbeTime - is the time we probed the - condition. format: date-time type: string lastTransitionTime: - description: lastTransitionTime - is the time the condition - transitioned from one status - to another. format: date-time type: string message: - description: message is the - human-readable message indicating - details about last transition. type: string reason: - description: reason is a unique, - this should be a short, - machine understandable string - that gives the reason for - condition's last transition. - If it reports "Resizing" - that means the underlying - persistent volume is being - resized. type: string status: type: string type: - description: PersistentVolumeClaimConditionType - is a valid value of PersistentVolumeClaimCondition.Type type: string required: - status @@ -31908,134 +11149,37 @@ spec: - type x-kubernetes-list-type: map currentVolumeAttributesClassName: - description: currentVolumeAttributesClassName - is the current name of the VolumeAttributesClass - the PVC is using. When unset, - there is no VolumeAttributeClass - applied to this PersistentVolumeClaim - This is an alpha field and requires - enabling VolumeAttributesClass - feature. type: string modifyVolumeStatus: - description: ModifyVolumeStatus - represents the status object of - ControllerModifyVolume operation. - When this is unset, there is no - ModifyVolume operation being attempted. - This is an alpha field and requires - enabling VolumeAttributesClass - feature. properties: status: - description: 'status is the - status of the ControllerModifyVolume - operation. It can be in any - of following states: - Pending - Pending indicates that the - PersistentVolumeClaim cannot - be modified due to unmet requirements, - such as the specified VolumeAttributesClass - not existing. - InProgress - InProgress indicates that - the volume is being modified. - - Infeasible Infeasible indicates - that the request has been - rejected as invalid by the - CSI driver. To resolve the - error, a valid VolumeAttributesClass - needs to be specified. Note: - New statuses can be added - in the future. Consumers should - check for unknown statuses - and fail appropriately.' type: string targetVolumeAttributesClassName: - description: targetVolumeAttributesClassName - is the name of the VolumeAttributesClass - the PVC currently being reconciled type: string required: - status type: object phase: - description: phase represents the - current phase of PersistentVolumeClaim. type: string type: object type: object type: array volumeMounts: - description: VolumeMounts specifies the mount - for the volumes specified in `Volumes` section items: - description: VolumeMount describes a mounting - of a Volume within a container. properties: mountPath: - description: Path within the container - at which the volume should be mounted. Must - not contain ':'. type: string mountPropagation: - description: mountPropagation determines - how mounts are propagated from the - host to container and the other way - around. When not set, MountPropagationNone - is used. This field is beta in 1.10. - When RecursiveReadOnly is set to IfPossible - or to Enabled, MountPropagation must - be None or unspecified (which defaults - to None). type: string name: - description: This must match the Name - of a Volume. type: string readOnly: - description: Mounted read-only if true, - read-write otherwise (false or unspecified). - Defaults to false. type: boolean recursiveReadOnly: - description: "RecursiveReadOnly specifies - whether read-only mounts should be - handled recursively. \n If ReadOnly - is false, this field has no meaning - and must be unspecified. \n If ReadOnly - is true, and this field is set to - Disabled, the mount is not made recursively - read-only. If this field is set to - IfPossible, the mount is made recursively - read-only, if it is supported by the - container runtime. If this field - is set to Enabled, the mount is made - recursively read-only if it is supported - by the container runtime, otherwise - the pod will not be started and an - error will be generated to indicate - the reason. \n If this field is set - to IfPossible or Enabled, MountPropagation - must be set to None (or be unspecified, - which defaults to None). \n If this - field is not specified, it is treated - as an equivalent of Disabled." type: string subPath: - description: Path within the volume - from which the container's volume - should be mounted. Defaults to "" - (volume's root). type: string subPathExpr: - description: Expanded path within the - volume from which the container's - volume should be mounted. Behaves - similarly to SubPath but environment - variable references $(VAR_NAME) are - expanded using the container's environment. - Defaults to "" (volume's root). SubPathExpr - and SubPath are mutually exclusive. type: string required: - mountPath @@ -32043,318 +11187,109 @@ spec: type: object type: array volumes: - description: Volumes indicates the list of - volumes of targeted application that should - be mounted on the backup/restore job. items: - description: Volume represents a named volume - in a pod that may be accessed by any container - in the pod. properties: awsElasticBlockStore: - description: 'awsElasticBlockStore represents - an AWS Disk resource that is attached - to a kubelet''s host machine and then - exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' properties: fsType: - description: 'fsType is the filesystem - type of the volume that you want - to mount. Tip: Ensure that the - filesystem type is supported by - the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. - More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors - in the filesystem from compromising - the machine' type: string partition: - description: 'partition is the partition - in the volume that you want to - mount. If omitted, the default - is to mount by volume name. Examples: - For volume /dev/sda1, you specify - the partition as "1". Similarly, - the volume partition for /dev/sda - is "0" (or you can leave the property - empty).' format: int32 type: integer readOnly: - description: 'readOnly value true - will force the readOnly setting - in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: boolean volumeID: - description: 'volumeID is unique - ID of the persistent disk resource - in AWS (Amazon EBS volume). More - info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: string required: - volumeID type: object azureDisk: - description: azureDisk represents an - Azure Data Disk mount on the host - and bind mount to the pod. properties: cachingMode: - description: 'cachingMode is the - Host Caching mode: None, Read - Only, Read Write.' type: string diskName: - description: diskName is the Name - of the data disk in the blob storage type: string diskURI: - description: diskURI is the URI - of data disk in the blob storage type: string fsType: - description: fsType is Filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" - if unspecified. type: string kind: - description: 'kind expected values - are Shared: multiple blob disks - per storage account Dedicated: - single blob disk per storage account Managed: - azure managed data disk (only - in managed availability set). - defaults to shared' type: string readOnly: - description: readOnly Defaults to - false (read/write). ReadOnly here - will force the ReadOnly setting - in VolumeMounts. type: boolean required: - diskName - diskURI type: object azureFile: - description: azureFile represents an - Azure File Service mount on the host - and bind mount to the pod. properties: readOnly: - description: readOnly defaults to - false (read/write). ReadOnly here - will force the ReadOnly setting - in VolumeMounts. type: boolean secretName: - description: secretName is the name - of secret that contains Azure - Storage Account Name and Key type: string shareName: - description: shareName is the azure - share Name type: string required: - secretName - shareName type: object cephfs: - description: cephFS represents a Ceph - FS mount on the host that shares a - pod's lifetime properties: monitors: - description: 'monitors is Required: - Monitors is a collection of Ceph - monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic path: - description: 'path is Optional: - Used as the mounted root, rather - than the full Ceph tree, default - is /' type: string readOnly: - description: 'readOnly is Optional: - Defaults to false (read/write). - ReadOnly here will force the ReadOnly - setting in VolumeMounts. More - info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: boolean secretFile: - description: 'secretFile is Optional: - SecretFile is the path to key - ring for User, default is /etc/ceph/user.secret - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string secretRef: - description: 'secretRef is Optional: - SecretRef is reference to the - authentication secret for User, - default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is optional: - User is the rados user name, default - is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string required: - monitors type: object cinder: - description: 'cinder represents a cinder - volume attached and mounted on kubelets - host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' properties: fsType: - description: 'fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Examples: "ext4", "xfs", - "ntfs". Implicitly inferred to - be "ext4" if unspecified. More - info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string readOnly: - description: 'readOnly defaults - to false (read/write). ReadOnly - here will force the ReadOnly setting - in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: boolean secretRef: - description: 'secretRef is optional: - points to a secret object containing - parameters used to connect to - OpenStack.' properties: name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeID: - description: 'volumeID used to identify - the volume in cinder. More info: - https://examples.k8s.io/mysql-cinder-pd/README.md' type: string required: - volumeID type: object configMap: - description: configMap represents a - configMap that should populate this - volume properties: defaultMode: - description: 'defaultMode is optional: - mode bits used to set permissions - on created files by default. Must - be an octal value between 0000 - and 0777 or a decimal value between - 0 and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. - Defaults to 0644. Directories - within the path are not affected - by this setting. This might be - in conflict with other options - that affect the file mode, like - fsGroup, and the result can be - other mode bits set.' format: int32 type: integer items: - description: items if unspecified, - each key-value pair in the Data - field of the referenced ConfigMap - will be projected into the volume - as a file whose name is the key - and content is the value. If specified, - the listed keys will be projected - into the specified paths, and - unlisted keys will not be present. - If a key is specified which is - not present in the ConfigMap, - the volume setup will error unless - it is marked optional. Paths must - be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key - to a path within a volume. properties: key: - description: key is the key - to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an - octal value between 0000 - and 0777 or a decimal value - between 0 and 511. YAML - accepts both octal and decimal - values, JSON requires decimal - values for mode bits. If - not specified, the volume - defaultMode will be used. - This might be in conflict - with other options that - affect the file mode, like - fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map - the key to. May not be an - absolute path. May not contain - the path element '..'. May - not start with the string - '..'. type: string required: - key @@ -32364,207 +11299,67 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether - the ConfigMap or its keys must - be defined type: boolean type: object x-kubernetes-map-type: atomic csi: - description: csi (Container Storage - Interface) represents ephemeral storage - that is handled by certain external - CSI drivers (Beta feature). properties: driver: - description: driver is the name - of the CSI driver that handles - this volume. Consult with your - admin for the correct name as - registered in the cluster. type: string fsType: - description: fsType to mount. Ex. - "ext4", "xfs", "ntfs". If not - provided, the empty value is passed - to the associated CSI driver which - will determine the default filesystem - to apply. type: string nodePublishSecretRef: - description: nodePublishSecretRef - is a reference to the secret object - containing sensitive information - to pass to the CSI driver to complete - the CSI NodePublishVolume and - NodeUnpublishVolume calls. This - field is optional, and may be - empty if no secret is required. - If the secret object contains - more than one secret, all secret - references are passed. properties: name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic readOnly: - description: readOnly specifies - a read-only configuration for - the volume. Defaults to false - (read/write). type: boolean volumeAttributes: additionalProperties: type: string - description: volumeAttributes stores - driver-specific properties that - are passed to the CSI driver. - Consult your driver's documentation - for supported values. type: object required: - driver type: object downwardAPI: - description: downwardAPI represents - downward API about the pod that should - populate this volume properties: defaultMode: - description: 'Optional: mode bits - to use on created files by default. - Must be a Optional: mode bits - used to set permissions on created - files by default. Must be an octal - value between 0000 and 0777 or - a decimal value between 0 and - 511. YAML accepts both octal and - decimal values, JSON requires - decimal values for mode bits. - Defaults to 0644. Directories - within the path are not affected - by this setting. This might be - in conflict with other options - that affect the file mode, like - fsGroup, and the result can be - other mode bits set.' format: int32 type: integer items: - description: Items is a list of - downward API volume file items: - description: DownwardAPIVolumeFile - represents information to create - the file containing the pod - field properties: fieldRef: - description: 'Required: Selects - a field of the pod: only - annotations, labels, name, - namespace and uid are supported.' properties: apiVersion: - description: Version of - the schema the FieldPath - is written in terms - of, defaults to "v1". type: string fieldPath: - description: Path of the - field to select in the - specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode - bits used to set permissions - on this file, must be an - octal value between 0000 - and 0777 or a decimal value - between 0 and 511. YAML - accepts both octal and decimal - values, JSON requires decimal - values for mode bits. If - not specified, the volume - defaultMode will be used. - This might be in conflict - with other options that - affect the file mode, like - fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: 'Required: Path - is the relative path name - of the file to be created. - Must not be absolute or - contain the ''..'' path. - Must be utf-8 encoded. The - first item of the relative - path must not start with - ''..''' type: string resourceFieldRef: - description: 'Selects a resource - of the container: only resources - limits and requests (limits.cpu, - limits.memory, requests.cpu - and requests.memory) are - currently supported.' properties: containerName: - description: 'Container - name: required for volumes, - optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies - the output format of - the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: - resource to select' type: string required: - resource @@ -32577,279 +11372,50 @@ spec: x-kubernetes-list-type: atomic type: object emptyDir: - description: 'emptyDir represents a - temporary directory that shares a - pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' properties: medium: - description: 'medium represents - what type of storage medium should - back this directory. The default - is "" which means to use the node''s - default medium. Must be an empty - string (default) or Memory. More - info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' type: string sizeLimit: anyOf: - type: integer - type: string - description: 'sizeLimit is the total - amount of local storage required - for this EmptyDir volume. The - size limit is also applicable - for memory medium. The maximum - usage on memory medium EmptyDir - would be the minimum value between - the SizeLimit specified here and - the sum of memory limits of all - containers in a pod. The default - is nil which means that the limit - is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object ephemeral: - description: "ephemeral represents a - volume that is handled by a cluster - storage driver. The volume's lifecycle - is tied to the pod that defines it - - it will be created before the pod - starts, and deleted when the pod is - removed. \n Use this if: a) the volume - is only needed while the pod runs, - b) features of normal volumes like - restoring from snapshot or capacity - tracking are needed, c) the storage - driver is specified through a storage - class, and d) the storage driver supports - dynamic volume provisioning through - a PersistentVolumeClaim (see EphemeralVolumeSource - for more information on the connection - between this volume type and PersistentVolumeClaim). - \n Use PersistentVolumeClaim or one - of the vendor-specific APIs for volumes - that persist for longer than the lifecycle - of an individual pod. \n Use CSI for - light-weight local ephemeral volumes - if the CSI driver is meant to be used - that way - see the documentation of - the driver for more information. \n - A pod can use both types of ephemeral - volumes and persistent volumes at - the same time." properties: volumeClaimTemplate: - description: "Will be used to create - a stand-alone PVC to provision - the volume. The pod in which this - EphemeralVolumeSource is embedded - will be the owner of the PVC, - i.e. the PVC will be deleted together - with the pod. The name of the - PVC will be `-` where `` is - the name from the `PodSpec.Volumes` - array entry. Pod validation will - reject the pod if the concatenated - name is not valid for a PVC (for - example, too long). \n An existing - PVC with that name that is not - owned by the pod will *not* be - used for the pod to avoid using - an unrelated volume by mistake. - Starting the pod is then blocked - until the unrelated PVC is removed. - If such a pre-created PVC is meant - to be used by the pod, the PVC - has to updated with an owner reference - to the pod once the pod exists. - Normally this should not be necessary, - but it may be useful when manually - reconstructing a broken cluster. - \n This field is read-only and - no changes will be made by Kubernetes - to the PVC after it has been created. - \n Required, must not be nil." properties: metadata: - description: May contain labels - and annotations that will - be copied into the PVC when - creating it. No other fields - are allowed and will be rejected - during validation. properties: annotations: additionalProperties: type: string - description: 'Annotations - is an unstructured key - value map stored with - a resource that may be - set by external tools - to store and retrieve - arbitrary metadata. They - are not queryable and - should be preserved when - modifying objects. More - info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName - is an optional prefix, - used by the server, to - generate a unique name - ONLY IF the Name field - has not been provided. - If this field is used, - the name returned to the - client will be different - than the name passed. - This value will also be - combined with a unique - suffix. The provided value - has the same validation - rules as the Name field, - and may be truncated by - the length of the suffix - required to make the value - unique on the server. - \n If this field is specified - and the generated name - exists, the server will - NOT return a 409 - instead, - it will either return - 201 Created or 500 with - Reason ServerTimeout indicating - a unique name could not - be found in the time allotted, - and the client should - retry (optionally after - the time indicated in - the Retry-After header). - \n Applied only if Name - is not specified. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string - keys and values that can - be used to organize and - categorize (scope and - select) objects. May match - selectors of replication - controllers and services. - More info: http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must - be unique within a namespace. - Is required when creating - resources, although some - resources may allow a - client to request the - generation of an appropriate - name automatically. Name - is primarily intended - for creation idempotence - and configuration definition. - Cannot be updated. More - info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace - defines the space within - each name must be unique. - An empty namespace is - equivalent to the \"default\" - namespace, but \"default\" - is the canonical representation. - Not all objects are required - to be scoped to a namespace - - the value of this field - for those objects will - be empty. \n Must be a - DNS_LABEL. Cannot be updated. - More info: http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects - depended by this object. - If ALL objects in the - list have been deleted, - this object will be garbage - collected. If this object - is managed by a controller, - then an entry in this - list will point to this - controller, with the controller - field set to true. There - cannot be more than one - managing controller. items: - description: OwnerReference - contains enough information - to let you identify - an owning object. An - owning object must be - in the same namespace - as the dependent, or - be cluster-scoped, so - there is no namespace - field. properties: apiVersion: - description: API version - of the referent. type: string blockOwnerDeletion: - description: If true, - AND if the owner - has the "foregroundDeletion" - finalizer, then - the owner cannot - be deleted from - the key-value store - until this reference - is removed. See - https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage - collector interacts - with this field - and enforces the - foreground deletion. - Defaults to false. - To set this field, - a user needs "delete" - permission of the - owner, otherwise - 422 (Unprocessable - Entity) will be - returned. type: boolean controller: - description: If true, - this reference points - to the managing - controller. type: boolean kind: - description: 'Kind - of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name - of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID - of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -32861,70 +11427,19 @@ spec: type: array type: object spec: - description: The specification - for the PersistentVolumeClaim. - The entire content is copied - unchanged into the PVC that - gets created from this template. - The same fields as in a PersistentVolumeClaim - are also valid here. properties: accessModes: - description: 'accessModes - contains the desired access - modes the volume should - have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource - field can be used to specify - either: * An existing - VolumeSnapshot object - (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or - an external controller - can support the specified - data source, it will create - a new volume based on - the contents of the specified - data source. When the - AnyVolumeDataSource feature - gate is enabled, dataSource - contents will be copied - to dataSourceRef, and - dataSourceRef contents - will be copied to dataSource - when dataSourceRef.namespace - is not specified. If the - namespace is specified, - then dataSourceRef will - not be copied to dataSource.' properties: apiGroup: - description: APIGroup - is the group for the - resource being referenced. - If APIGroup is not - specified, the specified - Kind must be in the - core API group. For - any other third-party - types, APIGroup is - required. type: string kind: - description: Kind is - the type of resource - being referenced type: string name: - description: Name is - the name of resource - being referenced type: string required: - kind @@ -32932,125 +11447,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef - specifies the object from - which to populate the - volume with data, if a - non-empty volume is desired. - This may be any object - from a non-empty API group - (non core object) or a - PersistentVolumeClaim - object. When this field - is specified, volume binding - will only succeed if the - type of the specified - object matches some installed - volume populator or dynamic - provisioner. This field - will replace the functionality - of the dataSource field - and as such if both fields - are non-empty, they must - have the same value. For - backwards compatibility, - when namespace isn''t - specified in dataSourceRef, - both fields (dataSource - and dataSourceRef) will - be set to the same value - automatically if one of - them is empty and the - other is non-empty. When - namespace is specified - in dataSourceRef, dataSource - isn''t set to the same - value and must be empty. - There are three important - differences between dataSource - and dataSourceRef: * While - dataSource only allows - two specific types of - objects, dataSourceRef - allows any non-core object, - as well as PersistentVolumeClaim - objects. * While dataSource - ignores disallowed values - (dropping them), dataSourceRef - preserves all values, - and generates an error - if a disallowed value - is specified. * While - dataSource only allows - local objects, dataSourceRef - allows objects in any - namespaces. (Beta) Using - this field requires the - AnyVolumeDataSource feature - gate to be enabled. (Alpha) - Using the namespace field - of dataSourceRef requires - the CrossNamespaceVolumeDataSource - feature gate to be enabled.' properties: apiGroup: - description: APIGroup - is the group for the - resource being referenced. - If APIGroup is not - specified, the specified - Kind must be in the - core API group. For - any other third-party - types, APIGroup is - required. type: string kind: - description: Kind is - the type of resource - being referenced type: string name: - description: Name is - the name of resource - being referenced type: string namespace: - description: Namespace - is the namespace of - resource being referenced - Note that when a namespace - is specified, a gateway.networking.k8s.io/ReferenceGrant - object is required - in the referent namespace - to allow that namespace's - owner to accept the - reference. See the - ReferenceGrant documentation - for details. (Alpha) - This field requires - the CrossNamespaceVolumeDataSource - feature gate to be - enabled. type: string required: - kind - name type: object resources: - description: 'resources - represents the minimum - resources the volume should - have. If RecoverVolumeExpansionFailure - feature is enabled users - are allowed to specify - resource requirements - that are lower than previous - value but must still be - higher than capacity recorded - in the status field of - the claim. More info: - https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -33059,11 +11469,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits - describes the maximum - amount of compute - resources allowed. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -33072,75 +11477,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests - describes the minimum - amount of compute - resources required. - If Requests is omitted - for a container, it - defaults to Limits - if that is explicitly - specified, otherwise - to an implementation-defined - value. Requests cannot - exceed Limits. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is - a label query over volumes - to consider for binding. properties: matchExpressions: - description: matchExpressions - is a list of label - selector requirements. - The requirements are - ANDed. items: - description: A label - selector requirement - is a selector that - contains values, - a key, and an operator - that relates the - key and values. properties: key: - description: key - is the label - key that the - selector applies - to. type: string operator: - description: operator - represents a - key's relationship - to a set of - values. Valid - operators are - In, NotIn, Exists - and DoesNotExist. type: string values: - description: values - is an array - of string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or - DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic - merge patch. items: type: string type: array @@ -33154,79 +11502,16 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels - map is equivalent - to an element of matchExpressions, - whose key field is - "key", the operator - is "In", and the values - array contains only - "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName - is the name of the StorageClass - required by the claim. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName - may be used to set the - VolumeAttributesClass - used by this claim. If - specified, the CSI driver - will create or update - the volume with the attributes - defined in the corresponding - VolumeAttributesClass. - This has a different purpose - than storageClassName, - it can be changed after - the claim is created. - An empty string value - means that no VolumeAttributesClass - will be applied to the - claim but it''s not allowed - to reset this field to - empty string once it is - set. If unspecified and - the PersistentVolumeClaim - is unbound, the default - VolumeAttributesClass - will be set by the persistentvolume - controller if it exists. - If the resource referred - to by volumeAttributesClass - does not exist, this PersistentVolumeClaim - will be set to a Pending - state, as reflected by - the modifyVolumeStatus - field, until such as a - resource exists. More - info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field - requires the VolumeAttributesClass - feature gate to be enabled.' type: string volumeMode: - description: volumeMode - defines what type of volume - is required by the claim. - Value of Filesystem is - implied when not included - in claim spec. type: string volumeName: - description: volumeName - is the binding reference - to the PersistentVolume - backing this claim. type: string type: object required: @@ -33234,107 +11519,41 @@ spec: type: object type: object fc: - description: fc represents a Fibre Channel - resource that is attached to a kubelet's - host machine and then exposed to the - pod. properties: fsType: - description: 'fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" - if unspecified. TODO: how do we - prevent errors in the filesystem - from compromising the machine' type: string lun: - description: 'lun is Optional: FC - target lun number' format: int32 type: integer readOnly: - description: 'readOnly is Optional: - Defaults to false (read/write). - ReadOnly here will force the ReadOnly - setting in VolumeMounts.' type: boolean targetWWNs: - description: 'targetWWNs is Optional: - FC target worldwide names (WWNs)' items: type: string type: array x-kubernetes-list-type: atomic wwids: - description: 'wwids Optional: FC - volume world wide identifiers - (wwids) Either wwids or combination - of targetWWNs and lun must be - set, but not both simultaneously.' items: type: string type: array x-kubernetes-list-type: atomic type: object flexVolume: - description: flexVolume represents a - generic volume resource that is provisioned/attached - using an exec based plugin. properties: driver: - description: driver is the name - of the driver to use for this - volume. type: string fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - The default filesystem depends - on FlexVolume script. type: string options: additionalProperties: type: string - description: 'options is Optional: - this field holds extra command - options if any.' type: object readOnly: - description: 'readOnly is Optional: - defaults to false (read/write). - ReadOnly here will force the ReadOnly - setting in VolumeMounts.' type: boolean secretRef: - description: 'secretRef is Optional: - secretRef is reference to the - secret object containing sensitive - information to pass to the plugin - scripts. This may be empty if - no secret object is specified. - If the secret object contains - more than one secret, all secrets - are passed to the plugin scripts.' properties: name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic @@ -33342,219 +11561,79 @@ spec: - driver type: object flocker: - description: flocker represents a Flocker - volume attached to a kubelet's host - machine. This depends on the Flocker - control service being running properties: datasetName: - description: datasetName is Name - of the dataset stored as metadata - -> name on the dataset for Flocker - should be considered as deprecated type: string datasetUUID: - description: datasetUUID is the - UUID of the dataset. This is unique - identifier of a Flocker dataset type: string type: object gcePersistentDisk: - description: 'gcePersistentDisk represents - a GCE Disk resource that is attached - to a kubelet''s host machine and then - exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' properties: fsType: - description: 'fsType is filesystem - type of the volume that you want - to mount. Tip: Ensure that the - filesystem type is supported by - the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. - More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors - in the filesystem from compromising - the machine' type: string partition: - description: 'partition is the partition - in the volume that you want to - mount. If omitted, the default - is to mount by volume name. Examples: - For volume /dev/sda1, you specify - the partition as "1". Similarly, - the volume partition for /dev/sda - is "0" (or you can leave the property - empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' format: int32 type: integer pdName: - description: 'pdName is unique name - of the PD resource in GCE. Used - to identify the disk in GCE. More - info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: string readOnly: - description: 'readOnly here will - force the ReadOnly setting in - VolumeMounts. Defaults to false. - More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: boolean required: - pdName type: object glusterfs: - description: 'glusterfs represents a - Glusterfs mount on the host that shares - a pod''s lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md' properties: endpoints: - description: 'endpoints is the endpoint - name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string path: - description: 'path is the Glusterfs - volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string readOnly: - description: 'readOnly here will - force the Glusterfs volume to - be mounted with read-only permissions. - Defaults to false. More info: - https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: boolean required: - endpoints - path type: object hostPath: - description: 'hostPath represents a - pre-existing file or directory on - the host machine that is directly - exposed to the container. This is - generally used for system agents or - other privileged things that are allowed - to see the host machine. Most containers - will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- TODO(jonesdl) We need to restrict - who can use host directory mounts - and who can/can not mount host directories - as read/write.' properties: path: - description: 'path of the directory - on the host. If the path is a - symlink, it will follow the link - to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string type: - description: 'type for HostPath - Volume Defaults to "" More info: - https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string required: - path type: object iscsi: - description: 'iscsi represents an ISCSI - Disk resource that is attached to - a kubelet''s host machine and then - exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md' properties: chapAuthDiscovery: - description: chapAuthDiscovery defines - whether support iSCSI Discovery - CHAP authentication type: boolean chapAuthSession: - description: chapAuthSession defines - whether support iSCSI Session - CHAP authentication type: boolean fsType: - description: 'fsType is the filesystem - type of the volume that you want - to mount. Tip: Ensure that the - filesystem type is supported by - the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. - More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors - in the filesystem from compromising - the machine' type: string initiatorName: - description: initiatorName is the - custom iSCSI Initiator Name. If - initiatorName is specified with - iscsiInterface simultaneously, - new iSCSI interface : will be created for the - connection. type: string iqn: - description: iqn is the target iSCSI - Qualified Name. type: string iscsiInterface: - description: iscsiInterface is the - interface Name that uses an iSCSI - transport. Defaults to 'default' - (tcp). type: string lun: - description: lun represents iSCSI - Target Lun number. format: int32 type: integer portals: - description: portals is the iSCSI - Target Portal List. The portal - is either an IP or ip_addr:port - if the port is other than default - (typically TCP ports 860 and 3260). items: type: string type: array x-kubernetes-list-type: atomic readOnly: - description: readOnly here will - force the ReadOnly setting in - VolumeMounts. Defaults to false. type: boolean secretRef: - description: secretRef is the CHAP - Secret for iSCSI target and initiator - authentication properties: name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic targetPortal: - description: targetPortal is iSCSI - Target Portal. The Portal is either - an IP or ip_addr:port if the port - is other than default (typically - TCP ports 860 and 3260). type: string required: - iqn @@ -33562,226 +11641,68 @@ spec: - targetPortal type: object name: - description: 'name of the volume. Must - be a DNS_LABEL and unique within the - pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string nfs: - description: 'nfs represents an NFS - mount on the host that shares a pod''s - lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' properties: path: - description: 'path that is exported - by the NFS server. More info: - https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string readOnly: - description: 'readOnly here will - force the NFS export to be mounted - with read-only permissions. Defaults - to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: boolean server: - description: 'server is the hostname - or IP address of the NFS server. - More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string required: - path - server type: object persistentVolumeClaim: - description: 'persistentVolumeClaimVolumeSource - represents a reference to a PersistentVolumeClaim - in the same namespace. More info: - https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: claimName: - description: 'claimName is the name - of a PersistentVolumeClaim in - the same namespace as the pod - using this volume. More info: - https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' type: string readOnly: - description: readOnly Will force - the ReadOnly setting in VolumeMounts. - Default false. type: boolean required: - claimName type: object photonPersistentDisk: - description: photonPersistentDisk represents - a PhotonController persistent disk - attached and mounted on kubelets host - machine properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" - if unspecified. type: string pdID: - description: pdID is the ID that - identifies Photon Controller persistent - disk type: string required: - pdID type: object portworxVolume: - description: portworxVolume represents - a portworx volume attached and mounted - on kubelets host machine properties: fsType: - description: fSType represents the - filesystem type to mount Must - be a filesystem type supported - by the host operating system. - Ex. "ext4", "xfs". Implicitly - inferred to be "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to - false (read/write). ReadOnly here - will force the ReadOnly setting - in VolumeMounts. type: boolean volumeID: - description: volumeID uniquely identifies - a Portworx volume type: string required: - volumeID type: object projected: - description: projected items for all - in one resources secrets, configmaps, - and downward API properties: defaultMode: - description: defaultMode are the - mode bits used to set permissions - on created files by default. Must - be an octal value between 0000 - and 0777 or a decimal value between - 0 and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. - Directories within the path are - not affected by this setting. - This might be in conflict with - other options that affect the - file mode, like fsGroup, and the - result can be other mode bits - set. format: int32 type: integer sources: - description: sources is the list - of volume projections items: - description: Projection that may - be projected along with other - supported volume types properties: clusterTrustBundle: - description: "ClusterTrustBundle - allows a pod to access the - `.spec.trustBundle` field - of ClusterTrustBundle objects - in an auto-updating file. - \n Alpha, gated by the ClusterTrustBundleProjection - feature gate. \n ClusterTrustBundle - objects can either be selected - by name, or by the combination - of signer name and a label - selector. \n Kubelet performs - aggressive normalization - of the PEM contents written - into the pod filesystem. - \ Esoteric PEM features - such as inter-block comments - and block headers are stripped. - \ Certificates are deduplicated. - The ordering of certificates - within the file is arbitrary, - and Kubelet may change the - order over time." properties: labelSelector: - description: Select all - ClusterTrustBundles - that match this label - selector. Only has - effect if signerName - is set. Mutually-exclusive - with name. If unset, - interpreted as "match - nothing". If set but - empty, interpreted as - "match everything". properties: matchExpressions: - description: matchExpressions - is a list of label - selector requirements. - The requirements - are ANDed. items: - description: A label - selector requirement - is a selector - that contains - values, a key, - and an operator - that relates the - key and values. properties: key: - description: key - is the label - key that the - selector applies - to. type: string operator: - description: operator - represents - a key's relationship - to a set of - values. Valid - operators - are In, NotIn, - Exists and - DoesNotExist. type: string values: - description: values - is an array - of string - values. If - the operator - is In or NotIn, - the values - array must - be non-empty. - If the operator - is Exists - or DoesNotExist, - the values - array must - be empty. - This array - is replaced - during a strategic - merge patch. items: type: string type: array @@ -33795,142 +11716,31 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single - {key,value} in the - matchLabels map - is equivalent to - an element of matchExpressions, - whose key field - is "key", the operator - is "In", and the - values array contains - only "value". The - requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic name: - description: Select a - single ClusterTrustBundle - by object name. Mutually-exclusive - with signerName and - labelSelector. type: string optional: - description: If true, - don't block pod startup - if the referenced ClusterTrustBundle(s) - aren't available. If - using name, then the - named ClusterTrustBundle - is allowed not to exist. If - using signerName, then - the combination of signerName - and labelSelector is - allowed to match zero - ClusterTrustBundles. type: boolean path: - description: Relative - path from the volume - root to write the bundle. type: string signerName: - description: Select all - ClusterTrustBundles - that match this signer - name. Mutually-exclusive - with name. The contents - of all selected ClusterTrustBundles - will be unified and - deduplicated. type: string required: - path type: object configMap: - description: configMap information - about the configMap data - to project properties: items: - description: items if - unspecified, each key-value - pair in the Data field - of the referenced ConfigMap - will be projected into - the volume as a file - whose name is the key - and content is the value. - If specified, the listed - keys will be projected - into the specified paths, - and unlisted keys will - not be present. If a - key is specified which - is not present in the - ConfigMap, the volume - setup will error unless - it is marked optional. - Paths must be relative - and may not contain - the '..' path or start - with '..'. items: - description: Maps a - string key to a path - within a volume. properties: key: - description: key - is the key to - project. type: string mode: - description: 'mode - is Optional: mode - bits used to set - permissions on - this file. Must - be an octal value - between 0000 and - 0777 or a decimal - value between - 0 and 511. YAML - accepts both octal - and decimal values, - JSON requires - decimal values - for mode bits. - If not specified, - the volume defaultMode - will be used. - This might be - in conflict with - other options - that affect the - file mode, like - fsGroup, and the - result can be - other mode bits - set.' format: int32 type: integer path: - description: path - is the relative - path of the file - to map the key - to. May not be - an absolute path. - May not contain - the path element - '..'. May not - start with the - string '..'. type: string required: - key @@ -33940,155 +11750,42 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of - the referent. This field - is effectively required, - but due to backwards - compatibility is allowed - to be empty. Instances - of this type with an - empty value here are - almost certainly wrong. - TODO: Add other useful - fields. apiVersion, - kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional - specify whether the - ConfigMap or its keys - must be defined type: boolean type: object x-kubernetes-map-type: atomic downwardAPI: - description: downwardAPI information - about the downwardAPI data - to project properties: items: - description: Items is - a list of DownwardAPIVolume - file items: - description: DownwardAPIVolumeFile - represents information - to create the file - containing the pod - field properties: fieldRef: - description: 'Required: - Selects a field - of the pod: only - annotations, labels, - name, namespace - and uid are supported.' properties: apiVersion: - description: Version - of the schema - the FieldPath - is written - in terms of, - defaults to - "v1". type: string fieldPath: - description: Path - of the field - to select - in the specified - API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: - mode bits used - to set permissions - on this file, - must be an octal - value between - 0000 and 0777 - or a decimal value - between 0 and - 511. YAML accepts - both octal and - decimal values, - JSON requires - decimal values - for mode bits. - If not specified, - the volume defaultMode - will be used. - This might be - in conflict with - other options - that affect the - file mode, like - fsGroup, and the - result can be - other mode bits - set.' format: int32 type: integer path: - description: 'Required: - Path is the relative - path name of the - file to be created. - Must not be absolute - or contain the - ''..'' path. Must - be utf-8 encoded. - The first item - of the relative - path must not - start with ''..''' type: string resourceFieldRef: - description: 'Selects - a resource of - the container: - only resources - limits and requests - (limits.cpu, limits.memory, - requests.cpu and - requests.memory) - are currently - supported.' properties: containerName: - description: 'Container - name: required - for volumes, - optional for - env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies - the output - format of - the exposed - resources, - defaults to - "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: - resource to - select' type: string required: - resource @@ -34101,85 +11798,16 @@ spec: x-kubernetes-list-type: atomic type: object secret: - description: secret information - about the secret data to - project properties: items: - description: items if - unspecified, each key-value - pair in the Data field - of the referenced Secret - will be projected into - the volume as a file - whose name is the key - and content is the value. - If specified, the listed - keys will be projected - into the specified paths, - and unlisted keys will - not be present. If a - key is specified which - is not present in the - Secret, the volume setup - will error unless it - is marked optional. - Paths must be relative - and may not contain - the '..' path or start - with '..'. items: - description: Maps a - string key to a path - within a volume. properties: key: - description: key - is the key to - project. type: string mode: - description: 'mode - is Optional: mode - bits used to set - permissions on - this file. Must - be an octal value - between 0000 and - 0777 or a decimal - value between - 0 and 511. YAML - accepts both octal - and decimal values, - JSON requires - decimal values - for mode bits. - If not specified, - the volume defaultMode - will be used. - This might be - in conflict with - other options - that affect the - file mode, like - fsGroup, and the - result can be - other mode bits - set.' format: int32 type: integer path: - description: path - is the relative - path of the file - to map the key - to. May not be - an absolute path. - May not contain - the path element - '..'. May not - start with the - string '..'. type: string required: - key @@ -34189,76 +11817,19 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of - the referent. This field - is effectively required, - but due to backwards - compatibility is allowed - to be empty. Instances - of this type with an - empty value here are - almost certainly wrong. - TODO: Add other useful - fields. apiVersion, - kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional - field specify whether - the Secret or its key - must be defined type: boolean type: object x-kubernetes-map-type: atomic serviceAccountToken: - description: serviceAccountToken - is information about the - serviceAccountToken data - to project properties: audience: - description: audience - is the intended audience - of the token. A recipient - of a token must identify - itself with an identifier - specified in the audience - of the token, and otherwise - should reject the token. - The audience defaults - to the identifier of - the apiserver. type: string expirationSeconds: - description: expirationSeconds - is the requested duration - of validity of the service - account token. As the - token approaches expiration, - the kubelet volume plugin - will proactively rotate - the service account - token. The kubelet will - start trying to rotate - the token if the token - is older than 80 percent - of its time to live - or if the token is older - than 24 hours.Defaults - to 1 hour and must be - at least 10 minutes. format: int64 type: integer path: - description: path is the - path relative to the - mount point of the file - to project the token - into. type: string required: - path @@ -34268,209 +11839,79 @@ spec: x-kubernetes-list-type: atomic type: object quobyte: - description: quobyte represents a Quobyte - mount on the host that shares a pod's - lifetime properties: group: - description: group to map volume - access to Default is no group type: string readOnly: - description: readOnly here will - force the Quobyte volume to be - mounted with read-only permissions. - Defaults to false. type: boolean registry: - description: registry represents - a single or multiple Quobyte Registry - services specified as a string - as host:port pair (multiple entries - are separated with commas) which - acts as the central registry for - volumes type: string tenant: - description: tenant owning the given - Quobyte volume in the Backend - Used with dynamically provisioned - Quobyte volumes, value is set - by the plugin type: string user: - description: user to map volume - access to Defaults to serivceaccount - user type: string volume: - description: volume is a string - that references an already created - Quobyte volume by name. type: string required: - registry - volume type: object rbd: - description: 'rbd represents a Rados - Block Device mount on the host that - shares a pod''s lifetime. More info: - https://examples.k8s.io/volumes/rbd/README.md' properties: fsType: - description: 'fsType is the filesystem - type of the volume that you want - to mount. Tip: Ensure that the - filesystem type is supported by - the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. - More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors - in the filesystem from compromising - the machine' type: string image: - description: 'image is the rados - image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string keyring: - description: 'keyring is the path - to key ring for RBDUser. Default - is /etc/ceph/keyring. More info: - https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string monitors: - description: 'monitors is a collection - of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic pool: - description: 'pool is the rados - pool name. Default is rbd. More - info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string readOnly: - description: 'readOnly here will - force the ReadOnly setting in - VolumeMounts. Defaults to false. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: boolean secretRef: - description: 'secretRef is name - of the authentication secret for - RBDUser. If provided overrides - keyring. Default is nil. More - info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is the rados - user name. Default is admin. More - info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string required: - image - monitors type: object scaleIO: - description: scaleIO represents a ScaleIO - persistent volume attached and mounted - on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Default is "xfs". type: string gateway: - description: gateway is the host - address of the ScaleIO API Gateway. type: string protectionDomain: - description: protectionDomain is - the name of the ScaleIO Protection - Domain for the configured storage. type: string readOnly: - description: readOnly Defaults to - false (read/write). ReadOnly here - will force the ReadOnly setting - in VolumeMounts. type: boolean secretRef: - description: secretRef references - to the secret for ScaleIO user - and other sensitive information. - If this is not provided, Login - operation will fail. properties: name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic sslEnabled: - description: sslEnabled Flag enable/disable - SSL communication with Gateway, - default false type: boolean storageMode: - description: storageMode indicates - whether the storage for a volume - should be ThickProvisioned or - ThinProvisioned. Default is ThinProvisioned. type: string storagePool: - description: storagePool is the - ScaleIO Storage Pool associated - with the protection domain. type: string system: - description: system is the name - of the storage system as configured - in ScaleIO. type: string volumeName: - description: volumeName is the name - of a volume already created in - the ScaleIO system that is associated - with this volume source. type: string required: - gateway @@ -34478,79 +11919,19 @@ spec: - system type: object secret: - description: 'secret represents a secret - that should populate this volume. - More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' properties: defaultMode: - description: 'defaultMode is Optional: - mode bits used to set permissions - on created files by default. Must - be an octal value between 0000 - and 0777 or a decimal value between - 0 and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. - Defaults to 0644. Directories - within the path are not affected - by this setting. This might be - in conflict with other options - that affect the file mode, like - fsGroup, and the result can be - other mode bits set.' format: int32 type: integer items: - description: items If unspecified, - each key-value pair in the Data - field of the referenced Secret - will be projected into the volume - as a file whose name is the key - and content is the value. If specified, - the listed keys will be projected - into the specified paths, and - unlisted keys will not be present. - If a key is specified which is - not present in the Secret, the - volume setup will error unless - it is marked optional. Paths must - be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key - to a path within a volume. properties: key: - description: key is the key - to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an - octal value between 0000 - and 0777 or a decimal value - between 0 and 511. YAML - accepts both octal and decimal - values, JSON requires decimal - values for mode bits. If - not specified, the volume - defaultMode will be used. - This might be in conflict - with other options that - affect the file mode, like - fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map - the key to. May not be an - absolute path. May not contain - the path element '..'. May - not start with the string - '..'. type: string required: - key @@ -34559,111 +11940,37 @@ spec: type: array x-kubernetes-list-type: atomic optional: - description: optional field specify - whether the Secret or its keys - must be defined type: boolean secretName: - description: 'secretName is the - name of the secret in the pod''s - namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' type: string type: object storageos: - description: storageOS represents a - StorageOS volume attached and mounted - on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" - if unspecified. type: string readOnly: - description: readOnly defaults to - false (read/write). ReadOnly here - will force the ReadOnly setting - in VolumeMounts. type: boolean secretRef: - description: secretRef specifies - the secret to use for obtaining - the StorageOS API credentials. If - not specified, default values - will be attempted. properties: name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeName: - description: volumeName is the human-readable - name of the StorageOS volume. Volume - names are only unique within a - namespace. type: string volumeNamespace: - description: volumeNamespace specifies - the scope of the volume within - StorageOS. If no namespace is - specified then the Pod's namespace - will be used. This allows the - Kubernetes name scoping to be - mirrored within StorageOS for - tighter integration. Set VolumeName - to any name to override the default - behaviour. Set to "default" if - you are not using namespaces within - StorageOS. Namespaces that do - not pre-exist within StorageOS - will be created. type: string type: object vsphereVolume: - description: vsphereVolume represents - a vSphere volume attached and mounted - on kubelets host machine properties: fsType: - description: fsType is filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" - if unspecified. type: string storagePolicyID: - description: storagePolicyID is - the storage Policy Based Management - (SPBM) profile ID associated with - the StoragePolicyName. type: string storagePolicyName: - description: storagePolicyName is - the storage Policy Based Management - (SPBM) profile name. type: string volumePath: - description: volumePath is the path - that identifies vSphere volume - vmdk type: string required: - volumePath @@ -34674,143 +11981,61 @@ spec: type: array type: object variables: - description: Variables specifies a list of variables - and their sources that will be used to resolve - the task. items: - description: EnvVar represents an environment - variable present in a Container. properties: name: - description: Name of the environment variable. - Must be a C_IDENTIFIER. type: string value: - description: 'Variable references $(VAR_NAME) - are expanded using the previously defined - environment variables in the container - and any service environment variables. - If a variable cannot be resolved, the - reference in the input string will be - unchanged. Double $$ are reduced to a - single $, which allows for escaping the - $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" - will produce the string literal "$(VAR_NAME)". - Escaped references will never be expanded, - regardless of whether the variable exists - or not. Defaults to "".' type: string valueFrom: - description: Source for the environment - variable's value. Cannot be used if value - is not empty. properties: configMapKeyRef: - description: Selects a key of a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the - ConfigMap or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field of the - pod: supports metadata.name, metadata.namespace, - `metadata.labels['''']`, `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, - status.hostIP, status.podIP, status.podIPs.' properties: apiVersion: - description: Version of the schema - the FieldPath is written in terms - of, defaults to "v1". type: string fieldPath: - description: Path of the field to - select in the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource of - the container: only resources limits - and requests (limits.cpu, limits.memory, - limits.ephemeral-storage, requests.cpu, - requests.memory and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: required - for volumes, optional for env - vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource - to select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret - in the pod's namespace properties: key: - description: The key of the secret - to select from. Must be a valid - secret key. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the - Secret or its key must be defined type: boolean required: - key @@ -34825,60 +12050,38 @@ spec: type: array type: object name: - description: Name points to the identifier of the target - that is being backed up. It should match the name used - as the identifier of a target in the `spec.targets` section. type: string repositories: - description: Repositories specifies a list of repository - information where the backed up data will be stored. KubeStash - will create the respective Repository CRs using this information. items: - description: RepositoryInfo specifies information about - the repository where the backed up data will be stored. - KubeStash will create the respective Repository CR from - this information. properties: backend: - description: Backend specifies the name of the backend - where this repository will be initialized. This - should point to a backend name specified in `.spec.backends` - section. For using a default backend, keep this - field empty. type: string + backupVerifier: + properties: + name: + type: string + namespace: + type: string + required: + - name + type: object deletionPolicy: - description: DeletionPolicy specifies what to do when - you delete a Repository CR. enum: - Delete - WipeOut type: string directory: - description: Directory specifies the path inside the - backend where the backed up data will be stored. type: string encryptionSecret: - description: EncryptionSecret refers to the Secret - containing the encryption key which will be used - to encode/decode the backed up dta. You can refer - to a Secret of a different namespace. If you don't - provide the namespace field, KubeStash will look - for the Secret in the same namespace as the BackupConfiguration - / BackupBatch. properties: name: - description: 'Name of the referent. More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: - description: 'Namespace of the referent. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string required: - name type: object name: - description: Name specifies the name of the Repository type: string type: object type: array @@ -34887,32 +12090,22 @@ spec: type: object type: array targets: - description: Targets specifies a list of targets that are subject to - backup. items: - description: TargetReference specifies a reference to the target that - is subject to backup properties: appRef: - description: AppRef points to the target that is subject to backup. - The target should be in same namespace as the BackupBatch. properties: apiGroup: type: string kind: type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string required: - name type: object name: - description: Name specifies an identifier for this target. This - name will be used in the session to refer this target. type: string type: object type: array diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/core.kubestash.com/v1alpha1/backupblueprints.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/core.kubestash.com/v1alpha1/backupblueprints.yaml index 0395d2401..0eca779e2 100644 --- a/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/core.kubestash.com/v1alpha1/backupblueprints.yaml +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/core.kubestash.com/v1alpha1/backupblueprints.yaml @@ -38,20 +38,10 @@ spec: version: v1alpha1 validation: openAPIV3Schema: - description: BackupBlueprint lets you define a common template for taking backup - for all the similar applications. Then, you can just apply some annotations - in the targeted application to enable backup. KubeStash will automatically - resolve the template and create a BackupConfiguration for the targeted application. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: properties: @@ -87,59 +77,28 @@ spec: type: object type: object spec: - description: BackupBlueprintSpec defines the desired state of BackupBlueprint properties: backupConfigurationTemplate: - description: BackupConfigurationTemplate Specifies the BackupConfiguration - that will be created by BackupBlueprint. properties: backends: - description: "Backends specifies a list of storage references where - the backed up data will be stored. The respective BackupStorages - can be in a different namespace than the BackupConfiguration. - However, it must be allowed by the `usagePolicy` of the BackupStorage - to refer from this namespace. \n This field is optional, if you - don't provide any backend here, KubeStash will use the default - BackupStorage for the namespace. If a default BackupStorage does - not exist in the same namespace, then KubeStash will look for - a default BackupStorage in other namespaces that allows using - it from the BackupConfiguration namespace." items: - description: BackendReference specifies reference to a storage - where the backed up data will be stored. properties: name: - description: Name provides an identifier for this storage. type: string retentionPolicy: - description: RetentionPolicy refers to a RetentionPolicy CRs - which defines how to cleanup the old Snapshots. This field - is optional. If you don't provide this field, KubeStash - will use the default RetentionPolicy for the namespace. - If there is no default RetentionPolicy for the namespace, - then KubeStash will find a RetentionPolicy from other namespaces - that is allowed to use from the current namespace. properties: name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string required: - name type: object storageRef: - description: StorageRef refers to the CR that holds the information - of a storage. You can refer to the BackupStorage CR of a - different namespace as long as it is allowed by the `usagePolicy` - of the BackupStorage.` properties: name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string required: - name @@ -147,163 +106,74 @@ spec: type: object type: array deletionPolicy: - description: DeletionPolicy specifies whether the BackupConfiguration - will be deleted on BackupBlueprint deletion This field is optional, - if you don't provide deletionPolicy, then BackupConfiguration - will not be deleted on BackupBlueprint deletion enum: - OnDelete type: string namespace: - description: Namespace specifies the namespace of the BackupConfiguration. - The field is optional. If you don't provide the namespace, then - BackupConfiguration will be created in the BackupBlueprint namespace. type: string sessions: - description: Sessions specifies a list of session template for backup. - You can use custom variables in your template then provide the - variable value through annotations. items: - description: Session specifies a backup session configuration - for the target properties: addon: - description: Addon specifies addon configuration that will - be used to backup the target. properties: containerRuntimeSettings: - description: ContainerRuntimeSettings specifies runtime - settings for the backup/restore executor container properties: env: - description: List of environment variables to set - in the container. Cannot be updated. items: - description: EnvVar represents an environment variable - present in a Container. properties: name: - description: Name of the environment variable. - Must be a C_IDENTIFIER. type: string value: - description: 'Variable references $(VAR_NAME) - are expanded using the previously defined - environment variables in the container and - any service environment variables. If a variable - cannot be resolved, the reference in the input - string will be unchanged. Double $$ are reduced - to a single $, which allows for escaping the - $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will - produce the string literal "$(VAR_NAME)". - Escaped references will never be expanded, - regardless of whether the variable exists - or not. Defaults to "".' type: string valueFrom: - description: Source for the environment variable's - value. Cannot be used if value is not empty. properties: configMapKeyRef: - description: Selects a key of a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value here - are almost certainly wrong. TODO: - Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap - or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field of the pod: - supports metadata.name, metadata.namespace, - `metadata.labels['''']`, `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, - status.hostIP, status.podIP, status.podIPs.' properties: apiVersion: - description: Version of the schema the - FieldPath is written in terms of, - defaults to "v1". type: string fieldPath: - description: Path of the field to select - in the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource of the - container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, - requests.cpu, requests.memory and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: required - for volumes, optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output format - of the exposed resources, defaults - to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource to - select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret in - the pod's namespace properties: key: - description: The key of the secret to - select from. Must be a valid secret - key. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value here - are almost certainly wrong. TODO: - Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret - or its key must be defined type: boolean required: - key @@ -315,70 +185,31 @@ spec: type: object type: array envFrom: - description: List of sources to populate environment - variables in the container. The keys defined within - a source must be a C_IDENTIFIER. All invalid keys - will be reported as an event when the container - is starting. When a key exists in multiple sources, - the value associated with the last source will take - precedence. Values defined by an Env with a duplicate - key will take precedence. Cannot be updated. items: - description: EnvFromSource represents the source - of a set of ConfigMaps properties: configMapRef: - description: The ConfigMap to select from properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type with - an empty value here are almost certainly - wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap - must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: - description: An optional identifier to prepend - to each key in the ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: - description: The Secret to select from properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type with - an empty value here are almost certainly - wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret - must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array ionice: - description: 'Settings to configure `ionice` to throttle - the load on disk. More info: http://kennystechtalk.blogspot.com/2015/04/throttling-cpu-usage-with-linux-cgroups.html - More info: https://oakbytes.wordpress.com/2012/06/06/linux-scheduler-cfs-and-nice/' properties: class: format: int32 @@ -388,64 +219,27 @@ spec: type: integer type: object lifecycle: - description: Actions that the management system should - take in response to container lifecycle events. - Cannot be updated. properties: postStart: - description: 'PostStart is called immediately - after a container is created. If the handler - fails, the container is terminated and restarted - according to its restart policy. Other management - of the container blocks until the hook completes. - More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action to - take. properties: command: - description: Command is the command line - to execute inside the container, the - working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it is - not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to explicitly - call out to that shell. Exit status - of 0 is treated as live/healthy and - non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http request - to perform. properties: host: - description: Host name to connect to, - defaults to the pod IP. You probably - want to set "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated headers. items: - description: HTTPHeader describes a - custom header to be used in HTTP probes properties: name: - description: The header field name. - This will be canonicalized upon - output, so case-variant names - will be understood as the same - header. type: string value: - description: The header field value type: string required: - name @@ -454,125 +248,58 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP - server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration - that the container should sleep before being - terminated. properties: seconds: - description: Seconds is the number of - seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is NOT - supported as a LifecycleHandler and kept - for the backward compatibility. There are - no validation of this field and lifecycle - hooks will fail in runtime when tcp handler - is specified. properties: host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object type: object preStop: - description: 'PreStop is called immediately before - a container is terminated due to an API request - or management event such as liveness/startup - probe failure, preemption, resource contention, - etc. The handler is not called if the container - crashes or exits. The Pod''s termination grace - period countdown begins before the PreStop hook - is executed. Regardless of the outcome of the - handler, the container will eventually terminate - within the Pod''s termination grace period (unless - delayed by finalizers). Other management of - the container blocks until the hook completes - or until the termination grace period is reached. - More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action to - take. properties: command: - description: Command is the command line - to execute inside the container, the - working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it is - not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to explicitly - call out to that shell. Exit status - of 0 is treated as live/healthy and - non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http request - to perform. properties: host: - description: Host name to connect to, - defaults to the pod IP. You probably - want to set "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated headers. items: - description: HTTPHeader describes a - custom header to be used in HTTP probes properties: name: - description: The header field name. - This will be canonicalized upon - output, so case-variant names - will be understood as the same - header. type: string value: - description: The header field value type: string required: - name @@ -581,58 +308,33 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP - server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration - that the container should sleep before being - terminated. properties: seconds: - description: Seconds is the number of - seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is NOT - supported as a LifecycleHandler and kept - for the backward compatibility. There are - no validation of this field and lifecycle - hooks will fail in runtime when tcp handler - is specified. properties: host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port @@ -640,78 +342,38 @@ spec: type: object type: object livenessProbe: - description: 'Periodic probe of container liveness. - Container will be restarted if the probe fails. - Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to take. properties: command: - description: Command is the command line to - execute inside the container, the working - directory for the command is root ('/') - in the container's filesystem. The command - is simply exec'd, it is not run inside a - shell, so traditional shell instructions - ('|', etc) won't work. To use a shell, you - need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures for - the probe to be considered failed after having - succeeded. Defaults to 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving - a GRPC port. properties: port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name of the service - to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default - behavior is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http request - to perform. properties: host: - description: Host name to connect to, defaults - to the pod IP. You probably want to set - "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in the - request. HTTP allows repeated headers. items: - description: HTTPHeader describes a custom - header to be used in HTTP probes properties: name: - description: The header field name. - This will be canonicalized upon output, - so case-variant names will be understood - as the same header. type: string value: - description: The header field value type: string required: - name @@ -720,173 +382,84 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port to - access on the container. Number must be - in the range 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the container - has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform - the probe. Default to 10 seconds. Minimum value - is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes for - the probe to be considered successful after - having failed. Defaults to 1. Must be 1 for - liveness and startup. Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. properties: host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port to - access on the container. Number must be - in the range 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds the - pod needs to terminate gracefully upon probe - failure. The grace period is the duration in - seconds after the processes running in the pod - are sent a termination signal and the time when - the processes are forcibly halted with a kill - signal. Set this value longer than the expected - cleanup time for your process. If this value - is nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value overrides - the value provided by the pod spec. Value must - be non-negative integer. The value zero indicates - stop immediately via the kill signal (no opportunity - to shut down). This is a beta field and requires - enabling ProbeTerminationGracePeriod feature - gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which the - probe times out. Defaults to 1 second. Minimum - value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object nice: - description: 'Settings to configure `nice` to throttle - the load on cpu. More info: http://kennystechtalk.blogspot.com/2015/04/throttling-cpu-usage-with-linux-cgroups.html - More info: https://oakbytes.wordpress.com/2012/06/06/linux-scheduler-cfs-and-nice/' properties: adjustment: format: int32 type: integer type: object readinessProbe: - description: 'Periodic probe of container service - readiness. Container will be removed from service - endpoints if the probe fails. Cannot be updated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to take. properties: command: - description: Command is the command line to - execute inside the container, the working - directory for the command is root ('/') - in the container's filesystem. The command - is simply exec'd, it is not run inside a - shell, so traditional shell instructions - ('|', etc) won't work. To use a shell, you - need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures for - the probe to be considered failed after having - succeeded. Defaults to 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving - a GRPC port. properties: port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name of the service - to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default - behavior is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http request - to perform. properties: host: - description: Host name to connect to, defaults - to the pod IP. You probably want to set - "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in the - request. HTTP allows repeated headers. items: - description: HTTPHeader describes a custom - header to be used in HTTP probes properties: name: - description: The header field name. - This will be canonicalized upon output, - so case-variant names will be understood - as the same header. type: string value: - description: The header field value type: string required: - name @@ -895,110 +468,51 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port to - access on the container. Number must be - in the range 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the container - has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform - the probe. Default to 10 seconds. Minimum value - is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes for - the probe to be considered successful after - having failed. Defaults to 1. Must be 1 for - liveness and startup. Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. properties: host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port to - access on the container. Number must be - in the range 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds the - pod needs to terminate gracefully upon probe - failure. The grace period is the duration in - seconds after the processes running in the pod - are sent a termination signal and the time when - the processes are forcibly halted with a kill - signal. Set this value longer than the expected - cleanup time for your process. If this value - is nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value overrides - the value provided by the pod spec. Value must - be non-negative integer. The value zero indicates - stop immediately via the kill signal (no opportunity - to shut down). This is a beta field and requires - enabling ProbeTerminationGracePeriod feature - gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which the - probe times out. Defaults to 1 second. Minimum - value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object resources: - description: 'Compute Resources required by container. - Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' properties: claims: - description: "Claims lists the names of resources, - defined in spec.resourceClaims, that are used - by this container. \n This is an alpha field - and requires enabling the DynamicResourceAllocation - feature gate. \n This field is immutable. It - can only be set for containers." items: - description: ResourceClaim references one entry - in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of - one entry in pod.spec.resourceClaims of - the Pod where this field is used. It makes - that resource available inside a container. type: string required: - name @@ -1014,8 +528,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount - of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -1024,368 +536,124 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount - of compute resources required. If Requests is - omitted for a container, it defaults to Limits - if that is explicitly specified, otherwise to - an implementation-defined value. Requests cannot - exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object securityContext: - description: 'Security options the pod should run - with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: allowPrivilegeEscalation: - description: 'AllowPrivilegeEscalation controls - whether a process can gain more privileges than - its parent process. This bool directly controls - if the no_new_privs flag will be set on the - container process. AllowPrivilegeEscalation - is true always when the container is: 1) run - as Privileged 2) has CAP_SYS_ADMIN Note that - this field cannot be set when spec.os.name is - windows.' type: boolean appArmorProfile: - description: appArmorProfile is the AppArmor options - to use by this container. If set, this profile - overrides the pod's appArmorProfile. Note that - this field cannot be set when spec.os.name is - windows. properties: localhostProfile: - description: localhostProfile indicates a - profile loaded on the node that should be - used. The profile must be preconfigured - on the node to work. Must match the loaded - name of the profile. Must be set if and - only if type is "Localhost". type: string type: - description: 'type indicates which kind of - AppArmor profile will be applied. Valid - options are: Localhost - a profile pre-loaded - on the node. RuntimeDefault - the container - runtime''s default profile. Unconfined - - no AppArmor enforcement.' type: string required: - type type: object capabilities: - description: The capabilities to add/drop when - running containers. Defaults to the default - set of capabilities granted by the container - runtime. Note that this field cannot be set - when spec.os.name is windows. properties: add: - description: Added capabilities items: - description: Capability represent POSIX - capabilities type type: string type: array x-kubernetes-list-type: atomic drop: - description: Removed capabilities items: - description: Capability represent POSIX - capabilities type type: string type: array x-kubernetes-list-type: atomic type: object privileged: - description: Run container in privileged mode. - Processes in privileged containers are essentially - equivalent to root on the host. Defaults to - false. Note that this field cannot be set when - spec.os.name is windows. type: boolean procMount: - description: procMount denotes the type of proc - mount to use for the containers. The default - is DefaultProcMount which uses the container - runtime defaults for readonly paths and masked - paths. This requires the ProcMountType feature - flag to be enabled. Note that this field cannot - be set when spec.os.name is windows. type: string readOnlyRootFilesystem: - description: Whether this container has a read-only - root filesystem. Default is false. Note that - this field cannot be set when spec.os.name is - windows. type: boolean runAsGroup: - description: The GID to run the entrypoint of - the container process. Uses runtime default - if unset. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. Note that this field cannot be set - when spec.os.name is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container must - run as a non-root user. If true, the Kubelet - will validate the image at runtime to ensure - that it does not run as UID 0 (root) and fail - to start the container if it does. If unset - or false, no such validation will be performed. - May also be set in PodSecurityContext. If set - in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. type: boolean runAsUser: - description: The UID to run the entrypoint of - the container process. Defaults to user specified - in image metadata if unspecified. May also be - set in PodSecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. Note that - this field cannot be set when spec.os.name is - windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be applied - to the container. If unspecified, the container - runtime will allocate a random SELinux context - for each container. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. Note that this field cannot be set - when spec.os.name is windows. properties: level: - description: Level is SELinux level label - that applies to the container. type: string role: - description: Role is a SELinux role label - that applies to the container. type: string type: - description: Type is a SELinux type label - that applies to the container. type: string user: - description: User is a SELinux user label - that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to use by this - container. If seccomp options are provided at - both the pod & container level, the container - options override the pod options. Note that - this field cannot be set when spec.os.name is - windows. properties: localhostProfile: - description: localhostProfile indicates a - profile defined in a file on the node should - be used. The profile must be preconfigured - on the node to work. Must be a descending - path, relative to the kubelet's configured - seccomp profile location. Must be set if - type is "Localhost". Must NOT be set for - any other type. type: string type: - description: "type indicates which kind of - seccomp profile will be applied. Valid options - are: \n Localhost - a profile defined in - a file on the node should be used. RuntimeDefault - - the container runtime default profile - should be used. Unconfined - no profile - should be applied." type: string required: - type type: object windowsOptions: - description: The Windows specific settings applied - to all containers. If unspecified, the options - from the PodSecurityContext will be used. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. Note that this field cannot be set - when spec.os.name is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is where the - GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA credential - spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName is the - name of the GMSA credential spec to use. type: string hostProcess: - description: HostProcess determines if a container - should be run as a 'Host Process' container. - All of a Pod's containers must have the - same effective HostProcess value (it is - not allowed to have a mix of HostProcess - containers and non-HostProcess containers). - In addition, if HostProcess is true then - HostNetwork must also be set to true. type: boolean runAsUserName: - description: The UserName in Windows to run - the entrypoint of the container process. - Defaults to the user specified in image - metadata if unspecified. May also be set - in PodSecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. type: string type: object type: object type: object jobTemplate: - description: JobTemplate specifies runtime configurations - for the backup/restore Job properties: controller: - description: 'Workload controller''s metadata. More - info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key - value map stored with a resource that may be - set by external tools to store and retrieve - arbitrary metadata. They are not queryable and - should be preserved when modifying objects. - More info: http://kubernetes.io/docs/user-guide/annotations' type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that - can be used to organize and categorize (scope - and select) objects. May match selectors of - replication controllers and services. More info: - http://kubernetes.io/docs/user-guide/labels' type: object type: object metadata: - description: 'Standard object''s metadata. More info: - https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key - value map stored with a resource that may be - set by external tools to store and retrieve - arbitrary metadata. They are not queryable and - should be preserved when modifying objects. - More info: http://kubernetes.io/docs/user-guide/annotations' type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that - can be used to organize and categorize (scope - and select) objects. May match selectors of - replication controllers and services. More info: - http://kubernetes.io/docs/user-guide/labels' type: object type: object spec: - description: 'Specification of the desired behavior - of the pod. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' properties: affinity: - description: If specified, the pod's scheduling - constraints properties: nodeAffinity: - description: Describes node affinity scheduling - rules for the pod. properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer - to schedule pods to nodes that satisfy - the affinity expressions specified by - this field, but it may choose a node - that violates one or more of the expressions. - The node that is most preferred is the - one with the greatest sum of weights, - i.e. for each node that meets all of - the scheduling requirements (resource - request, requiredDuringScheduling affinity - expressions, etc.), compute a sum by - iterating through the elements of this - field and adding "weight" to the sum - if the node matches the corresponding - matchExpressions; the node(s) with the - highest sum are the most preferred. items: - description: An empty preferred scheduling - term matches all objects with implicit - weight 0 (i.e. it's a no-op). A null - preferred scheduling term matches - no objects (i.e. is also a no-op). properties: preference: - description: A node selector term, - associated with the corresponding - weight. properties: matchExpressions: - description: A list of node - selector requirements by node's - labels. items: - description: A node selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An array - of string values. If - the operator is In or - NotIn, the values array - must be non-empty. If - the operator is Exists - or DoesNotExist, the - values array must be - empty. If the operator - is Gt or Lt, the values - array must have a single - element, which will - be interpreted as an - integer. This array - is replaced during a - strategic merge patch. items: type: string type: array @@ -1397,46 +665,13 @@ spec: type: array x-kubernetes-list-type: atomic matchFields: - description: A list of node - selector requirements by node's - fields. items: - description: A node selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An array - of string values. If - the operator is In or - NotIn, the values array - must be non-empty. If - the operator is Exists - or DoesNotExist, the - values array must be - empty. If the operator - is Gt or Lt, the values - array must have a single - element, which will - be interpreted as an - integer. This array - is replaced during a - strategic merge patch. items: type: string type: array @@ -1450,9 +685,6 @@ spec: type: object x-kubernetes-map-type: atomic weight: - description: Weight associated with - matching the corresponding nodeSelectorTerm, - in the range 1-100. format: int32 type: integer required: @@ -1462,67 +694,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements - specified by this field are not met - at scheduling time, the pod will not - be scheduled onto the node. If the affinity - requirements specified by this field - cease to be met at some point during - pod execution (e.g. due to an update), - the system may or may not try to eventually - evict the pod from its node. properties: nodeSelectorTerms: - description: Required. A list of node - selector terms. The terms are ORed. items: - description: A null or empty node - selector term matches no objects. - The requirements of them are ANDed. - The TopologySelectorTerm type - implements a subset of the NodeSelectorTerm. properties: matchExpressions: - description: A list of node - selector requirements by node's - labels. items: - description: A node selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An array - of string values. If - the operator is In or - NotIn, the values array - must be non-empty. If - the operator is Exists - or DoesNotExist, the - values array must be - empty. If the operator - is Gt or Lt, the values - array must have a single - element, which will - be interpreted as an - integer. This array - is replaced during a - strategic merge patch. items: type: string type: array @@ -1534,46 +717,13 @@ spec: type: array x-kubernetes-list-type: atomic matchFields: - description: A list of node - selector requirements by node's - fields. items: - description: A node selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An array - of string values. If - the operator is In or - NotIn, the values array - must be non-empty. If - the operator is Exists - or DoesNotExist, the - values array must be - empty. If the operator - is Gt or Lt, the values - array must have a single - element, which will - be interpreted as an - integer. This array - is replaced during a - strategic merge patch. items: type: string type: array @@ -1594,87 +744,22 @@ spec: x-kubernetes-map-type: atomic type: object podAffinity: - description: Describes pod affinity scheduling - rules (e.g. co-locate this pod in the same - node, zone, etc. as some other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer - to schedule pods to nodes that satisfy - the affinity expressions specified by - this field, but it may choose a node - that violates one or more of the expressions. - The node that is most preferred is the - one with the greatest sum of weights, - i.e. for each node that meets all of - the scheduling requirements (resource - request, requiredDuringScheduling affinity - expressions, etc.), compute a sum by - iterating through the elements of this - field and adding "weight" to the sum - if the node has pods which matches the - corresponding podAffinityTerm; the node(s) - with the highest sum are the most preferred. items: - description: The weights of all of the - matched WeightedPodAffinityTerm fields - are added per-node to find the most - preferred node(s) properties: podAffinityTerm: - description: Required. A pod affinity - term, associated with the corresponding - weight. properties: labelSelector: - description: A label query over - a set of resources, in this - case pods. If it's null, this - PodAffinityTerm matches with - no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key - and values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, Exists - and DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -1688,136 +773,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an element - of matchExpressions, whose - key field is "key", the - operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming pod - labels, those key-value labels - are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods - which pods will be taken into - consideration for the incoming - pod's pod (anti) affinity. - Keys that don't exist in the - incoming pod labels will be - ignored. The default value - is empty. The same key is - forbidden to exist in both - matchLabelKeys and labelSelector. - Also, matchLabelKeys cannot - be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming pod - labels, those key-value labels - are merged with `labelSelector` - as `key notin (value)` to - select the group of existing - pods which pods will be taken - into consideration for the - incoming pod's pod (anti) - affinity. Keys that don't - exist in the incoming pod - labels will be ignored. The - default value is empty. The - same key is forbidden to exist - in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over - the set of namespaces that - the term applies to. The term - is applied to the union of - the namespaces selected by - this field and the ones listed - in the namespaces field. null - selector and null or empty - namespaces list means "this - pod's namespace". An empty - selector ({}) matches all - namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key - and values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, Exists - and DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -1831,57 +809,20 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an element - of matchExpressions, whose - key field is "key", the - operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace - names that the term applies - to. The term is applied to - the union of the namespaces - listed in this field and the - ones selected by namespaceSelector. - null or empty namespaces list - and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should - be co-located (affinity) or - not co-located (anti-affinity) - with the pods matching the - labelSelector in the specified - namespaces, where co-located - is defined as running on a - node whose value of the label - with key topologyKey matches - that of any node on which - any of the selected pods is - running. Empty topologyKey - is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated with - matching the corresponding podAffinityTerm, - in the range 1-100. format: int32 type: integer required: @@ -1891,74 +832,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements - specified by this field are not met - at scheduling time, the pod will not - be scheduled onto the node. If the affinity - requirements specified by this field - cease to be met at some point during - pod execution (e.g. due to a pod label - update), the system may or may not try - to eventually evict the pod from its - node. When there are multiple elements, - the lists of nodes corresponding to - each podAffinityTerm are intersected, - i.e. all terms must be satisfied. items: - description: Defines a set of pods (namely - those matching the labelSelector relative - to the given namespace(s)) that this - pod should be co-located (affinity) - or not co-located (anti-affinity) - with, where co-located is defined - as running on a node whose value of - the label with key matches - that of any node on which a pod of - the set of pods is running properties: labelSelector: - description: A label query over - a set of resources, in this case - pods. If it's null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator - represents a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is - an array of string values. - If the operator is In - or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the - values array must be - empty. This array is - replaced during a strategic - merge patch. items: type: string type: array @@ -1972,120 +857,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in the - matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is a - set of pod label keys to select - which pods will be taken into - consideration. The keys are used - to lookup values from the incoming - pod labels, those key-value labels - are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, matchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys is - a set of pod label keys to select - which pods will be taken into - consideration. The keys are used - to lookup values from the incoming - pod labels, those key-value labels - are merged with `labelSelector` - as `key notin (value)` to select - the group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over - the set of namespaces that the - term applies to. The term is applied - to the union of the namespaces - selected by this field and the - ones listed in the namespaces - field. null selector and null - or empty namespaces list means - "this pod's namespace". An empty - selector ({}) matches all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator - represents a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is - an array of string values. - If the operator is In - or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the - values array must be - empty. This array is - replaced during a strategic - merge patch. items: type: string type: array @@ -2099,45 +893,15 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in the - matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace names - that the term applies to. The - term is applied to the union of - the namespaces listed in this - field and the ones selected by - namespaceSelector. null or empty - namespaces list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be - co-located (affinity) or not co-located - (anti-affinity) with the pods - matching the labelSelector in - the specified namespaces, where - co-located is defined as running - on a node whose value of the label - with key topologyKey matches that - of any node on which any of the - selected pods is running. Empty - topologyKey is not allowed. type: string required: - topologyKey @@ -2146,87 +910,22 @@ spec: x-kubernetes-list-type: atomic type: object podAntiAffinity: - description: Describes pod anti-affinity scheduling - rules (e.g. avoid putting this pod in the - same node, zone, etc. as some other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer - to schedule pods to nodes that satisfy - the anti-affinity expressions specified - by this field, but it may choose a node - that violates one or more of the expressions. - The node that is most preferred is the - one with the greatest sum of weights, - i.e. for each node that meets all of - the scheduling requirements (resource - request, requiredDuringScheduling anti-affinity - expressions, etc.), compute a sum by - iterating through the elements of this - field and adding "weight" to the sum - if the node has pods which matches the - corresponding podAffinityTerm; the node(s) - with the highest sum are the most preferred. items: - description: The weights of all of the - matched WeightedPodAffinityTerm fields - are added per-node to find the most - preferred node(s) properties: podAffinityTerm: - description: Required. A pod affinity - term, associated with the corresponding - weight. properties: labelSelector: - description: A label query over - a set of resources, in this - case pods. If it's null, this - PodAffinityTerm matches with - no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key - and values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, Exists - and DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -2240,136 +939,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an element - of matchExpressions, whose - key field is "key", the - operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming pod - labels, those key-value labels - are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods - which pods will be taken into - consideration for the incoming - pod's pod (anti) affinity. - Keys that don't exist in the - incoming pod labels will be - ignored. The default value - is empty. The same key is - forbidden to exist in both - matchLabelKeys and labelSelector. - Also, matchLabelKeys cannot - be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming pod - labels, those key-value labels - are merged with `labelSelector` - as `key notin (value)` to - select the group of existing - pods which pods will be taken - into consideration for the - incoming pod's pod (anti) - affinity. Keys that don't - exist in the incoming pod - labels will be ignored. The - default value is empty. The - same key is forbidden to exist - in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over - the set of namespaces that - the term applies to. The term - is applied to the union of - the namespaces selected by - this field and the ones listed - in the namespaces field. null - selector and null or empty - namespaces list means "this - pod's namespace". An empty - selector ({}) matches all - namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key - and values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, Exists - and DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -2383,57 +975,20 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an element - of matchExpressions, whose - key field is "key", the - operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace - names that the term applies - to. The term is applied to - the union of the namespaces - listed in this field and the - ones selected by namespaceSelector. - null or empty namespaces list - and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should - be co-located (affinity) or - not co-located (anti-affinity) - with the pods matching the - labelSelector in the specified - namespaces, where co-located - is defined as running on a - node whose value of the label - with key topologyKey matches - that of any node on which - any of the selected pods is - running. Empty topologyKey - is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated with - matching the corresponding podAffinityTerm, - in the range 1-100. format: int32 type: integer required: @@ -2443,74 +998,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the anti-affinity requirements - specified by this field are not met - at scheduling time, the pod will not - be scheduled onto the node. If the anti-affinity - requirements specified by this field - cease to be met at some point during - pod execution (e.g. due to a pod label - update), the system may or may not try - to eventually evict the pod from its - node. When there are multiple elements, - the lists of nodes corresponding to - each podAffinityTerm are intersected, - i.e. all terms must be satisfied. items: - description: Defines a set of pods (namely - those matching the labelSelector relative - to the given namespace(s)) that this - pod should be co-located (affinity) - or not co-located (anti-affinity) - with, where co-located is defined - as running on a node whose value of - the label with key matches - that of any node on which a pod of - the set of pods is running properties: labelSelector: - description: A label query over - a set of resources, in this case - pods. If it's null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator - represents a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is - an array of string values. - If the operator is In - or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the - values array must be - empty. This array is - replaced during a strategic - merge patch. items: type: string type: array @@ -2524,120 +1023,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in the - matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is a - set of pod label keys to select - which pods will be taken into - consideration. The keys are used - to lookup values from the incoming - pod labels, those key-value labels - are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, matchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys is - a set of pod label keys to select - which pods will be taken into - consideration. The keys are used - to lookup values from the incoming - pod labels, those key-value labels - are merged with `labelSelector` - as `key notin (value)` to select - the group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over - the set of namespaces that the - term applies to. The term is applied - to the union of the namespaces - selected by this field and the - ones listed in the namespaces - field. null selector and null - or empty namespaces list means - "this pod's namespace". An empty - selector ({}) matches all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator - represents a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is - an array of string values. - If the operator is In - or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the - values array must be - empty. This array is - replaced during a strategic - merge patch. items: type: string type: array @@ -2651,45 +1059,15 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in the - matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace names - that the term applies to. The - term is applied to the union of - the namespaces listed in this - field and the ones selected by - namespaceSelector. null or empty - namespaces list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be - co-located (affinity) or not co-located - (anti-affinity) with the pods - matching the labelSelector in - the specified namespaces, where - co-located is defined as running - on a node whose value of the label - with key topologyKey matches that - of any node on which any of the - selected pods is running. Empty - topologyKey is not allowed. type: string required: - topologyKey @@ -2699,273 +1077,92 @@ spec: type: object type: object args: - description: 'Arguments to the entrypoint. The - docker image''s CMD is used if this is not provided. - Variable references $(VAR_NAME) are expanded - using the container''s environment. If a variable - cannot be resolved, the reference in the input - string will be unchanged. The $(VAR_NAME) syntax - can be escaped with a double $$, ie: $$(VAR_NAME). - Escaped references will never be expanded, regardless - of whether the variable exists or not. Cannot - be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' items: type: string type: array containerSecurityContext: - description: 'Security options the pod should - run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: allowPrivilegeEscalation: - description: 'AllowPrivilegeEscalation controls - whether a process can gain more privileges - than its parent process. This bool directly - controls if the no_new_privs flag will be - set on the container process. AllowPrivilegeEscalation - is true always when the container is: 1) - run as Privileged 2) has CAP_SYS_ADMIN Note - that this field cannot be set when spec.os.name - is windows.' type: boolean appArmorProfile: - description: appArmorProfile is the AppArmor - options to use by this container. If set, - this profile overrides the pod's appArmorProfile. - Note that this field cannot be set when - spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile loaded on the node that should - be used. The profile must be preconfigured - on the node to work. Must match the - loaded name of the profile. Must be - set if and only if type is "Localhost". type: string type: - description: 'type indicates which kind - of AppArmor profile will be applied. - Valid options are: Localhost - a profile - pre-loaded on the node. RuntimeDefault - - the container runtime''s default profile. - Unconfined - no AppArmor enforcement.' type: string required: - type type: object capabilities: - description: The capabilities to add/drop - when running containers. Defaults to the - default set of capabilities granted by the - container runtime. Note that this field - cannot be set when spec.os.name is windows. properties: add: - description: Added capabilities items: - description: Capability represent POSIX - capabilities type type: string type: array x-kubernetes-list-type: atomic drop: - description: Removed capabilities items: - description: Capability represent POSIX - capabilities type type: string type: array x-kubernetes-list-type: atomic type: object privileged: - description: Run container in privileged mode. - Processes in privileged containers are essentially - equivalent to root on the host. Defaults - to false. Note that this field cannot be - set when spec.os.name is windows. type: boolean procMount: - description: procMount denotes the type of - proc mount to use for the containers. The - default is DefaultProcMount which uses the - container runtime defaults for readonly - paths and masked paths. This requires the - ProcMountType feature flag to be enabled. - Note that this field cannot be set when - spec.os.name is windows. type: string readOnlyRootFilesystem: - description: Whether this container has a - read-only root filesystem. Default is false. - Note that this field cannot be set when - spec.os.name is windows. type: boolean runAsGroup: - description: The GID to run the entrypoint - of the container process. Uses runtime default - if unset. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. Note that this field cannot - be set when spec.os.name is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container - must run as a non-root user. If true, the - Kubelet will validate the image at runtime - to ensure that it does not run as UID 0 - (root) and fail to start the container if - it does. If unset or false, no such validation - will be performed. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. type: boolean runAsUser: - description: The UID to run the entrypoint - of the container process. Defaults to user - specified in image metadata if unspecified. - May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. Note that this field cannot - be set when spec.os.name is windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be applied - to the container. If unspecified, the container - runtime will allocate a random SELinux context - for each container. May also be set in - PodSecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. Note - that this field cannot be set when spec.os.name - is windows. properties: level: - description: Level is SELinux level label - that applies to the container. type: string role: - description: Role is a SELinux role label - that applies to the container. type: string type: - description: Type is a SELinux type label - that applies to the container. type: string user: - description: User is a SELinux user label - that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to use by - this container. If seccomp options are provided - at both the pod & container level, the container - options override the pod options. Note that - this field cannot be set when spec.os.name - is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile defined in a file on the node - should be used. The profile must be - preconfigured on the node to work. Must - be a descending path, relative to the - kubelet's configured seccomp profile - location. Must be set if type is "Localhost". - Must NOT be set for any other type. type: string type: - description: "type indicates which kind - of seccomp profile will be applied. - Valid options are: \n Localhost - a - profile defined in a file on the node - should be used. RuntimeDefault - the - container runtime default profile should - be used. Unconfined - no profile should - be applied." type: string required: - type type: object windowsOptions: - description: The Windows specific settings - applied to all containers. If unspecified, - the options from the PodSecurityContext - will be used. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. Note - that this field cannot be set when spec.os.name - is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is where - the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA credential - spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName is - the name of the GMSA credential spec - to use. type: string hostProcess: - description: HostProcess determines if - a container should be run as a 'Host - Process' container. All of a Pod's containers - must have the same effective HostProcess - value (it is not allowed to have a mix - of HostProcess containers and non-HostProcess - containers). In addition, if HostProcess - is true then HostNetwork must also be - set to true. type: boolean runAsUserName: - description: The UserName in Windows to - run the entrypoint of the container - process. Defaults to the user specified - in image metadata if unspecified. May - also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: string type: object type: object dnsConfig: - description: Specifies the DNS parameters of a - pod. Parameters specified here will be merged - to the generated DNS configuration based on - DNSPolicy. properties: nameservers: - description: A list of DNS name server IP - addresses. This will be appended to the - base nameservers generated from DNSPolicy. - Duplicated nameservers will be removed. items: type: string type: array x-kubernetes-list-type: atomic options: - description: A list of DNS resolver options. - This will be merged with the base options - generated from DNSPolicy. Duplicated entries - will be removed. Resolution options given - in Options will override those that appear - in the base DNSPolicy. items: - description: PodDNSConfigOption defines - DNS resolver options of a pod. properties: name: - description: Required. type: string value: type: string @@ -2973,169 +1170,71 @@ spec: type: array x-kubernetes-list-type: atomic searches: - description: A list of DNS search domains - for host-name lookup. This will be appended - to the base search paths generated from - DNSPolicy. Duplicated search paths will - be removed. items: type: string type: array x-kubernetes-list-type: atomic type: object dnsPolicy: - description: Set DNS policy for the pod. Defaults - to "ClusterFirst". Valid values are 'ClusterFirstWithHostNet', - 'ClusterFirst', 'Default' or 'None'. DNS parameters - given in DNSConfig will be merged with the policy - selected with DNSPolicy. To have DNS options - set along with hostNetwork, you have to specify - DNS policy explicitly to 'ClusterFirstWithHostNet'. type: string enableServiceLinks: - description: 'EnableServiceLinks indicates whether - information about services should be injected - into pod''s environment variables, matching - the syntax of Docker links. Optional: Defaults - to true.' type: boolean env: - description: List of environment variables to - set in the container. Cannot be updated. items: - description: EnvVar represents an environment - variable present in a Container. properties: name: - description: Name of the environment variable. - Must be a C_IDENTIFIER. type: string value: - description: 'Variable references $(VAR_NAME) - are expanded using the previously defined - environment variables in the container - and any service environment variables. - If a variable cannot be resolved, the - reference in the input string will be - unchanged. Double $$ are reduced to a - single $, which allows for escaping the - $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" - will produce the string literal "$(VAR_NAME)". - Escaped references will never be expanded, - regardless of whether the variable exists - or not. Defaults to "".' type: string valueFrom: - description: Source for the environment - variable's value. Cannot be used if value - is not empty. properties: configMapKeyRef: - description: Selects a key of a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the - ConfigMap or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field of the - pod: supports metadata.name, metadata.namespace, - `metadata.labels['''']`, `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, - status.hostIP, status.podIP, status.podIPs.' properties: apiVersion: - description: Version of the schema - the FieldPath is written in terms - of, defaults to "v1". type: string fieldPath: - description: Path of the field to - select in the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource of - the container: only resources limits - and requests (limits.cpu, limits.memory, - limits.ephemeral-storage, requests.cpu, - requests.memory and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: required - for volumes, optional for env - vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource - to select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret - in the pod's namespace properties: key: - description: The key of the secret - to select from. Must be a valid - secret key. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the - Secret or its key must be defined type: boolean required: - key @@ -3147,258 +1246,89 @@ spec: type: object type: array hostIPC: - description: 'Use the host''s ipc namespace. Optional: - Default to false.' type: boolean hostNetwork: - description: Host networking requested for this - pod. Use the host's network namespace. If this - option is set, the ports that will be used must - be specified. Default to false. type: boolean hostPID: - description: 'Use the host''s pid namespace. Optional: - Default to false.' type: boolean imagePullSecrets: - description: 'ImagePullSecrets is an optional - list of references to secrets in the same namespace - to use for pulling any of the images used by - this PodSpec. If specified, these secrets will - be passed to individual puller implementations - for them to use. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod' items: - description: LocalObjectReference contains enough - information to let you locate the referenced - object inside the same namespace. properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type with - an empty value here are almost certainly - wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic type: array initContainers: - description: 'List of initialization containers - belonging to the pod. Init containers are executed - in order prior to containers being started. - If any init container fails, the pod is considered - to have failed and is handled according to its - restartPolicy. The name for an init container - or normal container must be unique among all - containers. Init containers may not have Lifecycle - actions, Readiness probes, or Liveness probes. - The resourceRequirements of an init container - are taken into account during scheduling by - finding the highest request/limit for each resource - type, and then using the max of of that value - or the sum of the normal containers. Limits - are applied to init containers in a similar - fashion. Init containers cannot currently be - added or removed. Cannot be updated. More info: - https://kubernetes.io/docs/concepts/workloads/pods/init-containers/' items: - description: A single application container - that you want to run within a pod. properties: args: - description: 'Arguments to the entrypoint. - The container image''s CMD is used if - this is not provided. Variable references - $(VAR_NAME) are expanded using the container''s - environment. If a variable cannot be resolved, - the reference in the input string will - be unchanged. Double $$ are reduced to - a single $, which allows for escaping - the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" - will produce the string literal "$(VAR_NAME)". - Escaped references will never be expanded, - regardless of whether the variable exists - or not. Cannot be updated. More info: - https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' items: type: string type: array x-kubernetes-list-type: atomic command: - description: 'Entrypoint array. Not executed - within a shell. The container image''s - ENTRYPOINT is used if this is not provided. - Variable references $(VAR_NAME) are expanded - using the container''s environment. If - a variable cannot be resolved, the reference - in the input string will be unchanged. - Double $$ are reduced to a single $, which - allows for escaping the $(VAR_NAME) syntax: - i.e. "$$(VAR_NAME)" will produce the string - literal "$(VAR_NAME)". Escaped references - will never be expanded, regardless of - whether the variable exists or not. Cannot - be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' items: type: string type: array x-kubernetes-list-type: atomic env: - description: List of environment variables - to set in the container. Cannot be updated. items: - description: EnvVar represents an environment - variable present in a Container. properties: name: - description: Name of the environment - variable. Must be a C_IDENTIFIER. type: string value: - description: 'Variable references - $(VAR_NAME) are expanded using the - previously defined environment variables - in the container and any service - environment variables. If a variable - cannot be resolved, the reference - in the input string will be unchanged. - Double $$ are reduced to a single - $, which allows for escaping the - $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" - will produce the string literal - "$(VAR_NAME)". Escaped references - will never be expanded, regardless - of whether the variable exists or - not. Defaults to "".' type: string valueFrom: - description: Source for the environment - variable's value. Cannot be used - if value is not empty. properties: configMapKeyRef: - description: Selects a key of - a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the - referent. This field is - effectively required, but - due to backwards compatibility - is allowed to be empty. - Instances of this type with - an empty value here are - almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether - the ConfigMap or its key - must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field - of the pod: supports metadata.name, - metadata.namespace, `metadata.labels['''']`, - `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, - status.hostIP, status.podIP, - status.podIPs.' properties: apiVersion: - description: Version of the - schema the FieldPath is - written in terms of, defaults - to "v1". type: string fieldPath: - description: Path of the field - to select in the specified - API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource - of the container: only resources - limits and requests (limits.cpu, - limits.memory, limits.ephemeral-storage, - requests.cpu, requests.memory - and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: - required for volumes, optional - for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the - output format of the exposed - resources, defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource - to select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of - a secret in the pod's namespace properties: key: - description: The key of the - secret to select from. Must - be a valid secret key. type: string name: default: "" - description: 'Name of the - referent. This field is - effectively required, but - due to backwards compatibility - is allowed to be empty. - Instances of this type with - an empty value here are - almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether - the Secret or its key must - be defined type: boolean required: - key @@ -3413,72 +1343,25 @@ spec: - name x-kubernetes-list-type: map envFrom: - description: List of sources to populate - environment variables in the container. - The keys defined within a source must - be a C_IDENTIFIER. All invalid keys will - be reported as an event when the container - is starting. When a key exists in multiple - sources, the value associated with the - last source will take precedence. Values - defined by an Env with a duplicate key - will take precedence. Cannot be updated. items: - description: EnvFromSource represents - the source of a set of ConfigMaps properties: configMapRef: - description: The ConfigMap to select - from properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the - ConfigMap must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: - description: An optional identifier - to prepend to each key in the ConfigMap. - Must be a C_IDENTIFIER. type: string secretRef: - description: The Secret to select - from properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the - Secret must be defined type: boolean type: object x-kubernetes-map-type: atomic @@ -3486,88 +1369,31 @@ spec: type: array x-kubernetes-list-type: atomic image: - description: 'Container image name. More - info: https://kubernetes.io/docs/concepts/containers/images - This field is optional to allow higher - level config management to default or - override container images in workload - controllers like Deployments and StatefulSets.' type: string imagePullPolicy: - description: 'Image pull policy. One of - Always, Never, IfNotPresent. Defaults - to Always if :latest tag is specified, - or IfNotPresent otherwise. Cannot be updated. - More info: https://kubernetes.io/docs/concepts/containers/images#updating-images' type: string lifecycle: - description: Actions that the management - system should take in response to container - lifecycle events. Cannot be updated. properties: postStart: - description: 'PostStart is called immediately - after a container is created. If the - handler fails, the container is terminated - and restarted according to its restart - policy. Other management of the container - blocks until the hook completes. More - info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the - action to take. properties: command: - description: Command is the - command line to execute inside - the container, the working - directory for the command is - root ('/') in the container's - filesystem. The command is - simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, - you need to explicitly call - out to that shell. Exit status - of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the - http request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. - You probably want to set "Host" - in httpHeaders instead. type: string httpHeaders: - description: Custom headers - to set in the request. HTTP - allows repeated headers. items: - description: HTTPHeader describes - a custom header to be used - in HTTP probes properties: name: - description: The header - field name. This will - be canonicalized upon - output, so case-variant - names will be understood - as the same header. type: string value: - description: The header - field value type: string required: - name @@ -3576,141 +1402,58 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access - on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number - of the port to access on the - container. Number must be - in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for - connecting to the host. Defaults - to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the - duration that the container should - sleep before being terminated. properties: seconds: - description: Seconds is the - number of seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket - is NOT supported as a LifecycleHandler - and kept for the backward compatibility. - There are no validation of this - field and lifecycle hooks will - fail in runtime when tcp handler - is specified. properties: host: - description: 'Optional: Host - name to connect to, defaults - to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name - of the port to access on the - container. Number must be - in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object type: object preStop: - description: 'PreStop is called immediately - before a container is terminated due - to an API request or management event - such as liveness/startup probe failure, - preemption, resource contention, etc. - The handler is not called if the container - crashes or exits. The Pod''s termination - grace period countdown begins before - the PreStop hook is executed. Regardless - of the outcome of the handler, the - container will eventually terminate - within the Pod''s termination grace - period (unless delayed by finalizers). - Other management of the container - blocks until the hook completes or - until the termination grace period - is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the - action to take. properties: command: - description: Command is the - command line to execute inside - the container, the working - directory for the command is - root ('/') in the container's - filesystem. The command is - simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, - you need to explicitly call - out to that shell. Exit status - of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the - http request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. - You probably want to set "Host" - in httpHeaders instead. type: string httpHeaders: - description: Custom headers - to set in the request. HTTP - allows repeated headers. items: - description: HTTPHeader describes - a custom header to be used - in HTTP probes properties: name: - description: The header - field name. This will - be canonicalized upon - output, so case-variant - names will be understood - as the same header. type: string value: - description: The header - field value type: string required: - name @@ -3719,63 +1462,33 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access - on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number - of the port to access on the - container. Number must be - in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for - connecting to the host. Defaults - to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the - duration that the container should - sleep before being terminated. properties: seconds: - description: Seconds is the - number of seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket - is NOT supported as a LifecycleHandler - and kept for the backward compatibility. - There are no validation of this - field and lifecycle hooks will - fail in runtime when tcp handler - is specified. properties: host: - description: 'Optional: Host - name to connect to, defaults - to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name - of the port to access on the - container. Number must be - in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port @@ -3783,91 +1496,38 @@ spec: type: object type: object livenessProbe: - description: 'Periodic probe of container - liveness. Container will be restarted - if the probe fails. Cannot be updated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the - command is root ('/') in the - container's filesystem. The command - is simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, you - need to explicitly call out to - that shell. Exit status of 0 is - treated as live/healthy and non-zero - is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults to - 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action - involving a GRPC port. properties: port: - description: Port number of the - gRPC service. Number must be in - the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name - of the service to place in the - gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the - default behavior is defined by - gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in - httpHeaders instead. type: string httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood - as the same header. type: string value: - description: The header field - value type: string required: - name @@ -3876,152 +1536,62 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the - HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after - the container has started before liveness - probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) - to perform the probe. Default to 10 - seconds. Minimum value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. - Must be 1 for liveness and startup. - Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an - action involving a TCP port. properties: host: - description: 'Optional: Host name - to connect to, defaults to the - pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully - upon probe failure. The grace period - is the duration in seconds after the - processes running in the pod are sent - a termination signal and the time - when the processes are forcibly halted - with a kill signal. Set this value - longer than the expected cleanup time - for your process. If this value is - nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value - overrides the value provided by the - pod spec. Value must be non-negative - integer. The value zero indicates - stop immediately via the kill signal - (no opportunity to shut down). This - is a beta field and requires enabling - ProbeTerminationGracePeriod feature - gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after - which the probe times out. Defaults - to 1 second. Minimum value is 1. More - info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object name: - description: Name of the container specified - as a DNS_LABEL. Each container in a pod - must have a unique name (DNS_LABEL). Cannot - be updated. type: string ports: - description: List of ports to expose from - the container. Not specifying a port here - DOES NOT prevent that port from being - exposed. Any port which is listening on - the default "0.0.0.0" address inside a - container will be accessible from the - network. Modifying this array with strategic - merge patch may corrupt the data. For - more information See https://github.com/kubernetes/kubernetes/issues/108255. - Cannot be updated. items: - description: ContainerPort represents - a network port in a single container. properties: containerPort: - description: Number of port to expose - on the pod's IP address. This must - be a valid port number, 0 < x < - 65536. format: int32 type: integer hostIP: - description: What host IP to bind - the external port to. type: string hostPort: - description: Number of port to expose - on the host. If specified, this - must be a valid port number, 0 < - x < 65536. If HostNetwork is specified, - this must match ContainerPort. Most - containers do not need this. format: int32 type: integer name: - description: If specified, this must - be an IANA_SVC_NAME and unique within - the pod. Each named port in a pod - must have a unique name. Name for - the port that can be referred to - by services. type: string protocol: default: TCP - description: Protocol for port. Must - be UDP, TCP, or SCTP. Defaults to - "TCP". type: string required: - containerPort @@ -4032,91 +1602,38 @@ spec: - protocol x-kubernetes-list-type: map readinessProbe: - description: 'Periodic probe of container - service readiness. Container will be removed - from service endpoints if the probe fails. - Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the - command is root ('/') in the - container's filesystem. The command - is simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, you - need to explicitly call out to - that shell. Exit status of 0 is - treated as live/healthy and non-zero - is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults to - 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action - involving a GRPC port. properties: port: - description: Port number of the - gRPC service. Number must be in - the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name - of the service to place in the - gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the - default behavior is defined by - gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in - httpHeaders instead. type: string httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood - as the same header. type: string value: - description: The header field - value type: string required: - name @@ -4125,116 +1642,51 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the - HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after - the container has started before liveness - probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) - to perform the probe. Default to 10 - seconds. Minimum value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. - Must be 1 for liveness and startup. - Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an - action involving a TCP port. properties: host: - description: 'Optional: Host name - to connect to, defaults to the - pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully - upon probe failure. The grace period - is the duration in seconds after the - processes running in the pod are sent - a termination signal and the time - when the processes are forcibly halted - with a kill signal. Set this value - longer than the expected cleanup time - for your process. If this value is - nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value - overrides the value provided by the - pod spec. Value must be non-negative - integer. The value zero indicates - stop immediately via the kill signal - (no opportunity to shut down). This - is a beta field and requires enabling - ProbeTerminationGracePeriod feature - gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after - which the probe times out. Defaults - to 1 second. Minimum value is 1. More - info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object resizePolicy: - description: Resources resize policy for - the container. items: - description: ContainerResizePolicy represents - resource resize policy for the container. properties: resourceName: - description: 'Name of the resource - to which this resource resize policy - applies. Supported values: cpu, - memory.' type: string restartPolicy: - description: Restart policy to apply - when specified resource is resized. - If not specified, it defaults to - NotRequired. type: string required: - resourceName @@ -4243,28 +1695,11 @@ spec: type: array x-kubernetes-list-type: atomic resources: - description: 'Compute Resources required - by this container. Cannot be updated. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' properties: claims: - description: "Claims lists the names - of resources, defined in spec.resourceClaims, - that are used by this container. \n - This is an alpha field and requires - enabling the DynamicResourceAllocation - feature gate. \n This field is immutable. - It can only be set for containers." items: - description: ResourceClaim references - one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the - name of one entry in pod.spec.resourceClaims - of the Pod where this field - is used. It makes that resource - available inside a container. type: string required: - name @@ -4280,9 +1715,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum - amount of compute resources allowed. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -4291,388 +1723,115 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the - minimum amount of compute resources - required. If Requests is omitted for - a container, it defaults to Limits - if that is explicitly specified, otherwise - to an implementation-defined value. - Requests cannot exceed Limits. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object restartPolicy: - description: 'RestartPolicy defines the - restart behavior of individual containers - in a pod. This field may only be set for - init containers, and the only allowed - value is "Always". For non-init containers - or when this field is not specified, the - restart behavior is defined by the Pod''s - restart policy and the container type. - Setting the RestartPolicy as "Always" - for the init container will have the following - effect: this init container will be continually - restarted on exit until all regular containers - have terminated. Once all regular containers - have completed, all init containers with - restartPolicy "Always" will be shut down. - This lifecycle differs from normal init - containers and is often referred to as - a "sidecar" container. Although this init - container still starts in the init container - sequence, it does not wait for the container - to complete before proceeding to the next - init container. Instead, the next init - container starts immediately after this - init container is started, or after any - startupProbe has successfully completed.' type: string securityContext: - description: 'SecurityContext defines the - security options the container should - be run with. If set, the fields of SecurityContext - override the equivalent fields of PodSecurityContext. - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: allowPrivilegeEscalation: - description: 'AllowPrivilegeEscalation - controls whether a process can gain - more privileges than its parent process. - This bool directly controls if the - no_new_privs flag will be set on the - container process. AllowPrivilegeEscalation - is true always when the container - is: 1) run as Privileged 2) has CAP_SYS_ADMIN - Note that this field cannot be set - when spec.os.name is windows.' type: boolean appArmorProfile: - description: appArmorProfile is the - AppArmor options to use by this container. - If set, this profile overrides the - pod's appArmorProfile. Note that this - field cannot be set when spec.os.name - is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile loaded on the node that - should be used. The profile must - be preconfigured on the node to - work. Must match the loaded name - of the profile. Must be set if - and only if type is "Localhost". type: string type: - description: 'type indicates which - kind of AppArmor profile will - be applied. Valid options are: - Localhost - a profile pre-loaded - on the node. RuntimeDefault - - the container runtime''s default - profile. Unconfined - no AppArmor - enforcement.' type: string required: - type type: object capabilities: - description: The capabilities to add/drop - when running containers. Defaults - to the default set of capabilities - granted by the container runtime. - Note that this field cannot be set - when spec.os.name is windows. properties: add: - description: Added capabilities items: - description: Capability represent - POSIX capabilities type type: string type: array x-kubernetes-list-type: atomic drop: - description: Removed capabilities items: - description: Capability represent - POSIX capabilities type type: string type: array x-kubernetes-list-type: atomic type: object privileged: - description: Run container in privileged - mode. Processes in privileged containers - are essentially equivalent to root - on the host. Defaults to false. Note - that this field cannot be set when - spec.os.name is windows. type: boolean procMount: - description: procMount denotes the type - of proc mount to use for the containers. - The default is DefaultProcMount which - uses the container runtime defaults - for readonly paths and masked paths. - This requires the ProcMountType feature - flag to be enabled. Note that this - field cannot be set when spec.os.name - is windows. type: string readOnlyRootFilesystem: - description: Whether this container - has a read-only root filesystem. Default - is false. Note that this field cannot - be set when spec.os.name is windows. type: boolean runAsGroup: - description: The GID to run the entrypoint - of the container process. Uses runtime - default if unset. May also be set - in PodSecurityContext. If set in - both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is - windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container - must run as a non-root user. If true, - the Kubelet will validate the image - at runtime to ensure that it does - not run as UID 0 (root) and fail to - start the container if it does. If - unset or false, no such validation - will be performed. May also be set - in PodSecurityContext. If set in - both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: boolean runAsUser: - description: The UID to run the entrypoint - of the container process. Defaults - to user specified in image metadata - if unspecified. May also be set in - PodSecurityContext. If set in both - SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is - windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to - be applied to the container. If unspecified, - the container runtime will allocate - a random SELinux context for each - container. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is - windows. properties: level: - description: Level is SELinux level - label that applies to the container. type: string role: - description: Role is a SELinux role - label that applies to the container. type: string type: - description: Type is a SELinux type - label that applies to the container. type: string user: - description: User is a SELinux user - label that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to - use by this container. If seccomp - options are provided at both the pod - & container level, the container options - override the pod options. Note that - this field cannot be set when spec.os.name - is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile defined in a file on - the node should be used. The profile - must be preconfigured on the node - to work. Must be a descending - path, relative to the kubelet's - configured seccomp profile location. - Must be set if type is "Localhost". - Must NOT be set for any other - type. type: string type: - description: "type indicates which - kind of seccomp profile will be - applied. Valid options are: \n - Localhost - a profile defined - in a file on the node should be - used. RuntimeDefault - the container - runtime default profile should - be used. Unconfined - no profile - should be applied." type: string required: - type type: object windowsOptions: - description: The Windows specific settings - applied to all containers. If unspecified, - the options from the PodSecurityContext - will be used. If set in both SecurityContext - and PodSecurityContext, the value - specified in SecurityContext takes - precedence. Note that this field cannot - be set when spec.os.name is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec - is where the GMSA admission webhook - (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA - credential spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName - is the name of the GMSA credential - spec to use. type: string hostProcess: - description: HostProcess determines - if a container should be run as - a 'Host Process' container. All - of a Pod's containers must have - the same effective HostProcess - value (it is not allowed to have - a mix of HostProcess containers - and non-HostProcess containers). - In addition, if HostProcess is - true then HostNetwork must also - be set to true. type: boolean runAsUserName: - description: The UserName in Windows - to run the entrypoint of the container - process. Defaults to the user - specified in image metadata if - unspecified. May also be set in - PodSecurityContext. If set in - both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: string type: object type: object startupProbe: - description: 'StartupProbe indicates that - the Pod has successfully initialized. - If specified, no other probes are executed - until this completes successfully. If - this probe fails, the Pod will be restarted, - just as if the livenessProbe failed. This - can be used to provide different probe - parameters at the beginning of a Pod''s - lifecycle, when it might take a long time - to load data or warm a cache, than during - steady-state operation. This cannot be - updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the - command is root ('/') in the - container's filesystem. The command - is simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, you - need to explicitly call out to - that shell. Exit status of 0 is - treated as live/healthy and non-zero - is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults to - 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action - involving a GRPC port. properties: port: - description: Port number of the - gRPC service. Number must be in - the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name - of the service to place in the - gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the - default behavior is defined by - gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in - httpHeaders instead. type: string httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood - as the same header. type: string value: - description: The header field - value type: string required: - name @@ -4681,170 +1840,61 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the - HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after - the container has started before liveness - probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) - to perform the probe. Default to 10 - seconds. Minimum value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. - Must be 1 for liveness and startup. - Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an - action involving a TCP port. properties: host: - description: 'Optional: Host name - to connect to, defaults to the - pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully - upon probe failure. The grace period - is the duration in seconds after the - processes running in the pod are sent - a termination signal and the time - when the processes are forcibly halted - with a kill signal. Set this value - longer than the expected cleanup time - for your process. If this value is - nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value - overrides the value provided by the - pod spec. Value must be non-negative - integer. The value zero indicates - stop immediately via the kill signal - (no opportunity to shut down). This - is a beta field and requires enabling - ProbeTerminationGracePeriod feature - gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after - which the probe times out. Defaults - to 1 second. Minimum value is 1. More - info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object stdin: - description: Whether this container should - allocate a buffer for stdin in the container - runtime. If this is not set, reads from - stdin in the container will always result - in EOF. Default is false. type: boolean stdinOnce: - description: Whether the container runtime - should close the stdin channel after it - has been opened by a single attach. When - stdin is true the stdin stream will remain - open across multiple attach sessions. - If stdinOnce is set to true, stdin is - opened on container start, is empty until - the first client attaches to stdin, and - then remains open and accepts data until - the client disconnects, at which time - stdin is closed and remains closed until - the container is restarted. If this flag - is false, a container processes that reads - from stdin will never receive an EOF. - Default is false type: boolean terminationMessagePath: - description: 'Optional: Path at which the - file to which the container''s termination - message will be written is mounted into - the container''s filesystem. Message written - is intended to be brief final status, - such as an assertion failure message. - Will be truncated by the node if greater - than 4096 bytes. The total message length - across all containers will be limited - to 12kb. Defaults to /dev/termination-log. - Cannot be updated.' type: string terminationMessagePolicy: - description: Indicate how the termination - message should be populated. File will - use the contents of terminationMessagePath - to populate the container status message - on both success and failure. FallbackToLogsOnError - will use the last chunk of container log - output if the termination message file - is empty and the container exited with - an error. The log output is limited to - 2048 bytes or 80 lines, whichever is smaller. - Defaults to File. Cannot be updated. type: string tty: - description: Whether this container should - allocate a TTY for itself, also requires - 'stdin' to be true. Default is false. type: boolean volumeDevices: - description: volumeDevices is the list of - block devices to be used by the container. items: - description: volumeDevice describes a - mapping of a raw block device within - a container. properties: devicePath: - description: devicePath is the path - inside of the container that the - device will be mapped to. type: string name: - description: name must match the name - of a persistentVolumeClaim in the - pod type: string required: - devicePath @@ -4855,78 +1905,21 @@ spec: - devicePath x-kubernetes-list-type: map volumeMounts: - description: Pod volumes to mount into the - container's filesystem. Cannot be updated. items: - description: VolumeMount describes a mounting - of a Volume within a container. properties: mountPath: - description: Path within the container - at which the volume should be mounted. Must - not contain ':'. type: string mountPropagation: - description: mountPropagation determines - how mounts are propagated from the - host to container and the other - way around. When not set, MountPropagationNone - is used. This field is beta in 1.10. - When RecursiveReadOnly is set to - IfPossible or to Enabled, MountPropagation - must be None or unspecified (which - defaults to None). type: string name: - description: This must match the Name - of a Volume. type: string readOnly: - description: Mounted read-only if - true, read-write otherwise (false - or unspecified). Defaults to false. type: boolean recursiveReadOnly: - description: "RecursiveReadOnly specifies - whether read-only mounts should - be handled recursively. \n If ReadOnly - is false, this field has no meaning - and must be unspecified. \n If ReadOnly - is true, and this field is set to - Disabled, the mount is not made - recursively read-only. If this - field is set to IfPossible, the - mount is made recursively read-only, - if it is supported by the container - runtime. If this field is set to - Enabled, the mount is made recursively - read-only if it is supported by - the container runtime, otherwise - the pod will not be started and - an error will be generated to indicate - the reason. \n If this field is - set to IfPossible or Enabled, MountPropagation - must be set to None (or be unspecified, - which defaults to None). \n If this - field is not specified, it is treated - as an equivalent of Disabled." type: string subPath: - description: Path within the volume - from which the container's volume - should be mounted. Defaults to "" - (volume's root). type: string subPathExpr: - description: Expanded path within - the volume from which the container's - volume should be mounted. Behaves - similarly to SubPath but environment - variable references $(VAR_NAME) - are expanded using the container's - environment. Defaults to "" (volume's - root). SubPathExpr and SubPath are - mutually exclusive. type: string required: - mountPath @@ -4937,78 +1930,33 @@ spec: - mountPath x-kubernetes-list-type: map workingDir: - description: Container's working directory. - If not specified, the container runtime's - default will be used, which might be configured - in the container image. Cannot be updated. type: string required: - name type: object type: array lifecycle: - description: Actions that the management system - should take in response to container lifecycle - events. Cannot be updated. properties: postStart: - description: 'PostStart is called immediately - after a container is created. If the handler - fails, the container is terminated and restarted - according to its restart policy. Other management - of the container blocks until the hook completes. - More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it - is not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to - explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in httpHeaders - instead. type: string httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood as - the same header. type: string value: - description: The header field - value type: string required: - name @@ -5017,131 +1965,58 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the - HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 to - 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration - that the container should sleep before - being terminated. properties: seconds: - description: Seconds is the number - of seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is - NOT supported as a LifecycleHandler - and kept for the backward compatibility. - There are no validation of this field - and lifecycle hooks will fail in runtime - when tcp handler is specified. properties: host: - description: 'Optional: Host name - to connect to, defaults to the pod - IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 to - 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object type: object preStop: - description: 'PreStop is called immediately - before a container is terminated due to - an API request or management event such - as liveness/startup probe failure, preemption, - resource contention, etc. The handler is - not called if the container crashes or exits. - The Pod''s termination grace period countdown - begins before the PreStop hook is executed. - Regardless of the outcome of the handler, - the container will eventually terminate - within the Pod''s termination grace period - (unless delayed by finalizers). Other management - of the container blocks until the hook completes - or until the termination grace period is - reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it - is not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to - explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in httpHeaders - instead. type: string httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood as - the same header. type: string value: - description: The header field - value type: string required: - name @@ -5150,59 +2025,33 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the - HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 to - 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration - that the container should sleep before - being terminated. properties: seconds: - description: Seconds is the number - of seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is - NOT supported as a LifecycleHandler - and kept for the backward compatibility. - There are no validation of this field - and lifecycle hooks will fail in runtime - when tcp handler is specified. properties: host: - description: 'Optional: Host name - to connect to, defaults to the pod - IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 to - 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port @@ -5210,85 +2059,38 @@ spec: type: object type: object livenessProbe: - description: 'Periodic probe of container liveness. - Container will be restarted if the probe fails. - Controllers may set default LivenessProbe if - no liveness probe is provided. To ignore defaulting, - set the value to empty LivenessProbe "{}". Cannot - be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to - take. properties: command: - description: Command is the command line - to execute inside the container, the - working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it is - not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to explicitly - call out to that shell. Exit status - of 0 is treated as live/healthy and - non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed after - having succeeded. Defaults to 3. Minimum - value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving - a GRPC port. properties: port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name of the - service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default - behavior is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http request - to perform. properties: host: - description: Host name to connect to, - defaults to the pod IP. You probably - want to set "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated headers. items: - description: HTTPHeader describes a - custom header to be used in HTTP probes properties: name: - description: The header field name. - This will be canonicalized upon - output, so case-variant names - will be understood as the same - header. type: string value: - description: The header field value type: string required: - name @@ -5297,222 +2099,95 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP - server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the - container has started before liveness probes - are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform - the probe. Default to 10 seconds. Minimum - value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. Must - be 1 for liveness and startup. Minimum value - is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action - involving a TCP port. properties: host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully upon - probe failure. The grace period is the duration - in seconds after the processes running in - the pod are sent a termination signal and - the time when the processes are forcibly - halted with a kill signal. Set this value - longer than the expected cleanup time for - your process. If this value is nil, the - pod's terminationGracePeriodSeconds will - be used. Otherwise, this value overrides - the value provided by the pod spec. Value - must be non-negative integer. The value - zero indicates stop immediately via the - kill signal (no opportunity to shut down). - This is a beta field and requires enabling - ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which - the probe times out. Defaults to 1 second. - Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object nodeSelector: additionalProperties: type: string - description: 'NodeSelector is a selector which - must be true for the pod to fit on a node. Selector - which must match a node''s labels for the pod - to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/' type: object x-kubernetes-map-type: atomic podPlacementPolicy: - description: PodPlacementPolicy is the reference - of the podPlacementPolicy properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other - useful fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic priority: - description: The priority value. Various system - components use this field to find the priority - of the pod. When Priority Admission Controller - is enabled, it prevents users from setting this - field. The admission controller populates this - field from PriorityClassName. The higher the - value, the higher the priority. format: int32 type: integer priorityClassName: - description: If specified, indicates the pod's - priority. "system-node-critical" and "system-cluster-critical" - are two special keywords which indicate the - highest priorities with the former being the - highest priority. Any other name must be defined - by creating a PriorityClass object with that - name. If not specified, the pod priority will - be default or zero if there is no default. type: string readinessProbe: - description: 'Periodic probe of container service - readiness. Container will be removed from service - endpoints if the probe fails. Cannot be updated. - Controllers may set default ReadinessProbe if - no readyness probe is provided. To ignore defaulting, - set the value to empty ReadynessProbe "{}". - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to - take. properties: command: - description: Command is the command line - to execute inside the container, the - working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it is - not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to explicitly - call out to that shell. Exit status - of 0 is treated as live/healthy and - non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed after - having succeeded. Defaults to 3. Minimum - value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving - a GRPC port. properties: port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name of the - service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default - behavior is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http request - to perform. properties: host: - description: Host name to connect to, - defaults to the pod IP. You probably - want to set "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated headers. items: - description: HTTPHeader describes a - custom header to be used in HTTP probes properties: name: - description: The header field name. - This will be canonicalized upon - output, so case-variant names - will be understood as the same - header. type: string value: - description: The header field value type: string required: - name @@ -5521,115 +2196,51 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP - server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the - container has started before liveness probes - are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform - the probe. Default to 10 seconds. Minimum - value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. Must - be 1 for liveness and startup. Minimum value - is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action - involving a TCP port. properties: host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully upon - probe failure. The grace period is the duration - in seconds after the processes running in - the pod are sent a termination signal and - the time when the processes are forcibly - halted with a kill signal. Set this value - longer than the expected cleanup time for - your process. If this value is nil, the - pod's terminationGracePeriodSeconds will - be used. Otherwise, this value overrides - the value provided by the pod spec. Value - must be non-negative integer. The value - zero indicates stop immediately via the - kill signal (no opportunity to shut down). - This is a beta field and requires enabling - ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which - the probe times out. Defaults to 1 second. - Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object resources: - description: Compute Resources required by the - sidecar container. properties: claims: - description: "Claims lists the names of resources, - defined in spec.resourceClaims, that are - used by this container. \n This is an alpha - field and requires enabling the DynamicResourceAllocation - feature gate. \n This field is immutable. - It can only be set for containers." items: - description: ResourceClaim references one - entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name - of one entry in pod.spec.resourceClaims - of the Pod where this field is used. - It makes that resource available inside - a container. type: string required: - name @@ -5645,9 +2256,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum - amount of compute resources allowed. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -5656,216 +2264,68 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum - amount of compute resources required. If - Requests is omitted for a container, it - defaults to Limits if that is explicitly - specified, otherwise to an implementation-defined - value. Requests cannot exceed Limits. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object runtimeClassName: - description: 'RuntimeClassName refers to a RuntimeClass - object in the node.k8s.io group, which should - be used to run this pod. If no RuntimeClass - resource matches the named class, the pod will - not be run. If unset or empty, the "legacy" - RuntimeClass will be used, which is an implicit - class with an empty definition that uses the - default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class' type: string schedulerName: - description: If specified, the pod will be dispatched - by specified scheduler. If not specified, the - pod will be dispatched by default scheduler. type: string securityContext: - description: 'SecurityContext holds pod-level - security attributes and common container settings. - Optional: Defaults to empty. See type description - for default values of each field.' properties: appArmorProfile: - description: appArmorProfile is the AppArmor - options to use by the containers in this - pod. Note that this field cannot be set - when spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile loaded on the node that should - be used. The profile must be preconfigured - on the node to work. Must match the - loaded name of the profile. Must be - set if and only if type is "Localhost". type: string type: - description: 'type indicates which kind - of AppArmor profile will be applied. - Valid options are: Localhost - a profile - pre-loaded on the node. RuntimeDefault - - the container runtime''s default profile. - Unconfined - no AppArmor enforcement.' type: string required: - type type: object fsGroup: - description: "A special supplemental group - that applies to all containers in a pod. - Some volume types allow the Kubelet to change - the ownership of that volume to be owned - by the pod: \n 1. The owning GID will be - the FSGroup 2. The setgid bit is set (new - files created in the volume will be owned - by FSGroup) 3. The permission bits are OR'd - with rw-rw---- \n If unset, the Kubelet - will not modify the ownership and permissions - of any volume. Note that this field cannot - be set when spec.os.name is windows." format: int64 type: integer fsGroupChangePolicy: - description: 'fsGroupChangePolicy defines - behavior of changing ownership and permission - of the volume before being exposed inside - Pod. This field will only apply to volume - types which support fsGroup based ownership(and - permissions). It will have no effect on - ephemeral volume types such as: secret, - configmaps and emptydir. Valid values are - "OnRootMismatch" and "Always". If not specified, - "Always" is used. Note that this field cannot - be set when spec.os.name is windows.' type: string runAsGroup: - description: The GID to run the entrypoint - of the container process. Uses runtime default - if unset. May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence for that container. Note that - this field cannot be set when spec.os.name - is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container - must run as a non-root user. If true, the - Kubelet will validate the image at runtime - to ensure that it does not run as UID 0 - (root) and fail to start the container if - it does. If unset or false, no such validation - will be performed. May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. type: boolean runAsUser: - description: The UID to run the entrypoint - of the container process. Defaults to user - specified in image metadata if unspecified. - May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence for that container. Note that - this field cannot be set when spec.os.name - is windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be applied - to all containers. If unspecified, the container - runtime will allocate a random SELinux context - for each container. May also be set in - SecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence for - that container. Note that this field cannot - be set when spec.os.name is windows. properties: level: - description: Level is SELinux level label - that applies to the container. type: string role: - description: Role is a SELinux role label - that applies to the container. type: string type: - description: Type is a SELinux type label - that applies to the container. type: string user: - description: User is a SELinux user label - that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to use by - the containers in this pod. Note that this - field cannot be set when spec.os.name is - windows. properties: localhostProfile: - description: localhostProfile indicates - a profile defined in a file on the node - should be used. The profile must be - preconfigured on the node to work. Must - be a descending path, relative to the - kubelet's configured seccomp profile - location. Must be set if type is "Localhost". - Must NOT be set for any other type. type: string type: - description: "type indicates which kind - of seccomp profile will be applied. - Valid options are: \n Localhost - a - profile defined in a file on the node - should be used. RuntimeDefault - the - container runtime default profile should - be used. Unconfined - no profile should - be applied." type: string required: - type type: object supplementalGroups: - description: A list of groups applied to the - first process run in each container, in - addition to the container's primary GID, - the fsGroup (if specified), and group memberships - defined in the container image for the uid - of the container process. If unspecified, - no additional groups are added to any container. - Note that group memberships defined in the - container image for the uid of the container - process are still effective, even if they - are not included in this list. Note that - this field cannot be set when spec.os.name - is windows. items: format: int64 type: integer type: array x-kubernetes-list-type: atomic sysctls: - description: Sysctls hold a list of namespaced - sysctls used for the pod. Pods with unsupported - sysctls (by the container runtime) might - fail to launch. Note that this field cannot - be set when spec.os.name is windows. items: - description: Sysctl defines a kernel parameter - to be set properties: name: - description: Name of a property to set type: string value: - description: Value of a property to - set type: string required: - name @@ -5874,178 +2334,53 @@ spec: type: array x-kubernetes-list-type: atomic windowsOptions: - description: The Windows specific settings - applied to all containers. If unspecified, - the options within a container's SecurityContext - will be used. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. Note - that this field cannot be set when spec.os.name - is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is where - the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA credential - spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName is - the name of the GMSA credential spec - to use. type: string hostProcess: - description: HostProcess determines if - a container should be run as a 'Host - Process' container. All of a Pod's containers - must have the same effective HostProcess - value (it is not allowed to have a mix - of HostProcess containers and non-HostProcess - containers). In addition, if HostProcess - is true then HostNetwork must also be - set to true. type: boolean runAsUserName: - description: The UserName in Windows to - run the entrypoint of the container - process. Defaults to the user specified - in image metadata if unspecified. May - also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: string type: object type: object serviceAccountName: - description: 'ServiceAccountName is the name of - the ServiceAccount to use to run this pod. More - info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/' type: string shareProcessNamespace: - description: 'Share a single process namespace - between all of the containers in a pod. When - this is set containers will be able to view - and signal processes from other containers in - the same pod, and the first process in each - container will not be assigned PID 1. HostPID - and ShareProcessNamespace cannot both be set. - Optional: Default to false.' type: boolean terminationGracePeriodSeconds: - description: Optional duration in seconds the - pod needs to terminate gracefully. May be decreased - in delete request. Value must be non-negative - integer. The value zero indicates stop immediately - via the kill signal (no opportunity to shut - down). If this value is nil, the default grace - period will be used instead. The grace period - is the duration in seconds after the processes - running in the pod are sent a termination signal - and the time when the processes are forcibly - halted with a kill signal. Set this value longer - than the expected cleanup time for your process. - Defaults to 30 seconds. format: int64 type: integer tolerations: - description: If specified, the pod's tolerations. items: - description: The pod this Toleration is attached - to tolerates any taint that matches the triple - using the matching operator - . properties: effect: - description: Effect indicates the taint - effect to match. Empty means match all - taint effects. When specified, allowed - values are NoSchedule, PreferNoSchedule - and NoExecute. type: string key: - description: Key is the taint key that the - toleration applies to. Empty means match - all taint keys. If the key is empty, operator - must be Exists; this combination means - to match all values and all keys. type: string operator: - description: Operator represents a key's - relationship to the value. Valid operators - are Exists and Equal. Defaults to Equal. - Exists is equivalent to wildcard for value, - so that a pod can tolerate all taints - of a particular category. type: string tolerationSeconds: - description: TolerationSeconds represents - the period of time the toleration (which - must be of effect NoExecute, otherwise - this field is ignored) tolerates the taint. - By default, it is not set, which means - tolerate the taint forever (do not evict). - Zero and negative values will be treated - as 0 (evict immediately) by the system. format: int64 type: integer value: - description: Value is the taint value the - toleration matches to. If the operator - is Exists, the value should be empty, - otherwise just a regular string. type: string type: object type: array topologySpreadConstraints: - description: TopologySpreadConstraints describes - how a group of pods ought to spread across topology - domains. Scheduler will schedule pods in a way - which abides by the constraints. All topologySpreadConstraints - are ANDed. items: - description: TopologySpreadConstraint specifies - how to spread matching pods among the given - topology. properties: labelSelector: - description: LabelSelector is used to find - matching pods. Pods that match this label - selector are counted to determine the - number of pods in their corresponding - topology domain. properties: matchExpressions: - description: matchExpressions is a list - of label selector requirements. The - requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to a set - of values. Valid operators are - In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array - of string values. If the operator - is In or NotIn, the values array - must be non-empty. If the operator - is Exists or DoesNotExist, the - values array must be empty. - This array is replaced during - a strategic merge patch. items: type: string type: array @@ -6059,172 +2394,27 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of - {key,value} pairs. A single {key,value} - in the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: "MatchLabelKeys is a set of - pod label keys to select the pods over - which spreading will be calculated. The - keys are used to lookup values from the - incoming pod labels, those key-value labels - are ANDed with labelSelector to select - the group of existing pods over which - spreading will be calculated for the incoming - pod. The same key is forbidden to exist - in both MatchLabelKeys and LabelSelector. - MatchLabelKeys cannot be set when LabelSelector - isn't set. Keys that don't exist in the - incoming pod labels will be ignored. A - null or empty list means only match against - labelSelector. \n This is a beta field - and requires the MatchLabelKeysInPodTopologySpread - feature gate to be enabled (enabled by - default)." items: type: string type: array x-kubernetes-list-type: atomic maxSkew: - description: 'MaxSkew describes the degree - to which pods may be unevenly distributed. - When `whenUnsatisfiable=DoNotSchedule`, - it is the maximum permitted difference - between the number of matching pods in - the target topology and the global minimum. - The global minimum is the minimum number - of matching pods in an eligible domain - or zero if the number of eligible domains - is less than MinDomains. For example, - in a 3-zone cluster, MaxSkew is set to - 1, and pods with the same labelSelector - spread as 2/2/1: In this case, the global - minimum is 1. | zone1 | zone2 | zone3 - | | P P | P P | P | - if MaxSkew - is 1, incoming pod can only be scheduled - to zone3 to become 2/2/2; scheduling it - onto zone1(zone2) would make the ActualSkew(3-1) - on zone1(zone2) violate MaxSkew(1). - - if MaxSkew is 2, incoming pod can be scheduled - onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, - it is used to give higher precedence to - topologies that satisfy it. It''s a required - field. Default value is 1 and 0 is not - allowed.' format: int32 type: integer minDomains: - description: "MinDomains indicates a minimum - number of eligible domains. When the number - of eligible domains with matching topology - keys is less than minDomains, Pod Topology - Spread treats \"global minimum\" as 0, - and then the calculation of Skew is performed. - And when the number of eligible domains - with matching topology keys equals or - greater than minDomains, this value has - no effect on scheduling. As a result, - when the number of eligible domains is - less than minDomains, scheduler won't - schedule more than maxSkew Pods to those - domains. If value is nil, the constraint - behaves as if MinDomains is equal to 1. - Valid values are integers greater than - 0. When value is not nil, WhenUnsatisfiable - must be DoNotSchedule. \n For example, - in a 3-zone cluster, MaxSkew is set to - 2, MinDomains is set to 5 and pods with - the same labelSelector spread as 2/2/2: - | zone1 | zone2 | zone3 | | P P | P - P | P P | The number of domains is - less than 5(MinDomains), so \"global minimum\" - is treated as 0. In this situation, new - pod with the same labelSelector cannot - be scheduled, because computed skew will - be 3(3 - 0) if new Pod is scheduled to - any of the three zones, it will violate - MaxSkew." format: int32 type: integer nodeAffinityPolicy: - description: "NodeAffinityPolicy indicates - how we will treat Pod's nodeAffinity/nodeSelector - when calculating pod topology spread skew. - Options are: - Honor: only nodes matching - nodeAffinity/nodeSelector are included - in the calculations. - Ignore: nodeAffinity/nodeSelector - are ignored. All nodes are included in - the calculations. \n If this value is - nil, the behavior is equivalent to the - Honor policy. This is a beta-level feature - default enabled by the NodeInclusionPolicyInPodTopologySpread - feature flag." type: string nodeTaintsPolicy: - description: "NodeTaintsPolicy indicates - how we will treat node taints when calculating - pod topology spread skew. Options are: - - Honor: nodes without taints, along with - tainted nodes for which the incoming pod - has a toleration, are included. - Ignore: - node taints are ignored. All nodes are - included. \n If this value is nil, the - behavior is equivalent to the Ignore policy. - This is a beta-level feature default enabled - by the NodeInclusionPolicyInPodTopologySpread - feature flag." type: string topologyKey: - description: TopologyKey is the key of node - labels. Nodes that have a label with this - key and identical values are considered - to be in the same topology. We consider - each as a "bucket", and try - to put balanced number of pods into each - bucket. We define a domain as a particular - instance of a topology. Also, we define - an eligible domain as a domain whose nodes - meet the requirements of nodeAffinityPolicy - and nodeTaintsPolicy. e.g. If TopologyKey - is "kubernetes.io/hostname", each Node - is a domain of that topology. And, if - TopologyKey is "topology.kubernetes.io/zone", - each zone is a domain of that topology. - It's a required field. type: string whenUnsatisfiable: - description: 'WhenUnsatisfiable indicates - how to deal with a pod if it doesn''t - satisfy the spread constraint. - DoNotSchedule - (default) tells the scheduler not to schedule - it. - ScheduleAnyway tells the scheduler - to schedule the pod in any location, but - giving higher precedence to topologies - that would help reduce the skew. A constraint - is considered "Unsatisfiable" for an incoming - pod if and only if every possible node - assignment for that pod would violate - "MaxSkew" on some topology. For example, - in a 3-zone cluster, MaxSkew is set to - 1, and pods with the same labelSelector - spread as 3/1/1: | zone1 | zone2 | zone3 - | | P P P | P | P | If WhenUnsatisfiable - is set to DoNotSchedule, incoming pod - can only be scheduled to zone2(zone3) - to become 3/2/1(3/1/2) as ActualSkew(2-1) - on zone2(zone3) satisfies MaxSkew(1). - In other words, the cluster can still - be imbalanced, but scheduler won''t make - it *more* imbalanced. It''s a required - field.' type: string required: - maxSkew @@ -6237,72 +2427,21 @@ spec: - whenUnsatisfiable x-kubernetes-list-type: map volumeMounts: - description: Pod volumes to mount into the container's - filesystem. Cannot be updated. items: - description: VolumeMount describes a mounting - of a Volume within a container. properties: mountPath: - description: Path within the container at - which the volume should be mounted. Must - not contain ':'. type: string mountPropagation: - description: mountPropagation determines - how mounts are propagated from the host - to container and the other way around. - When not set, MountPropagationNone is - used. This field is beta in 1.10. When - RecursiveReadOnly is set to IfPossible - or to Enabled, MountPropagation must be - None or unspecified (which defaults to - None). type: string name: - description: This must match the Name of - a Volume. type: string readOnly: - description: Mounted read-only if true, - read-write otherwise (false or unspecified). - Defaults to false. type: boolean recursiveReadOnly: - description: "RecursiveReadOnly specifies - whether read-only mounts should be handled - recursively. \n If ReadOnly is false, - this field has no meaning and must be - unspecified. \n If ReadOnly is true, and - this field is set to Disabled, the mount - is not made recursively read-only. If - this field is set to IfPossible, the mount - is made recursively read-only, if it is - supported by the container runtime. If - this field is set to Enabled, the mount - is made recursively read-only if it is - supported by the container runtime, otherwise - the pod will not be started and an error - will be generated to indicate the reason. - \n If this field is set to IfPossible - or Enabled, MountPropagation must be set - to None (or be unspecified, which defaults - to None). \n If this field is not specified, - it is treated as an equivalent of Disabled." type: string subPath: - description: Path within the volume from - which the container's volume should be - mounted. Defaults to "" (volume's root). type: string subPathExpr: - description: Expanded path within the volume - from which the container's volume should - be mounted. Behaves similarly to SubPath - but environment variable references $(VAR_NAME) - are expanded using the container's environment. - Defaults to "" (volume's root). SubPathExpr - and SubPath are mutually exclusive. type: string required: - mountPath @@ -6310,300 +2449,109 @@ spec: type: object type: array volumes: - description: 'List of volumes that can be mounted - by containers belonging to the pod. More info: - https://kubernetes.io/docs/concepts/storage/volumes' items: - description: Volume represents a named volume - in a pod that may be accessed by any container - in the pod. properties: awsElasticBlockStore: - description: 'awsElasticBlockStore represents - an AWS Disk resource that is attached - to a kubelet''s host machine and then - exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' properties: fsType: - description: 'fsType is the filesystem - type of the volume that you want to - mount. Tip: Ensure that the filesystem - type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in - the filesystem from compromising the - machine' type: string partition: - description: 'partition is the partition - in the volume that you want to mount. - If omitted, the default is to mount - by volume name. Examples: For volume - /dev/sda1, you specify the partition - as "1". Similarly, the volume partition - for /dev/sda is "0" (or you can leave - the property empty).' format: int32 type: integer readOnly: - description: 'readOnly value true will - force the readOnly setting in VolumeMounts. - More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: boolean volumeID: - description: 'volumeID is unique ID - of the persistent disk resource in - AWS (Amazon EBS volume). More info: - https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: string required: - volumeID type: object azureDisk: - description: azureDisk represents an Azure - Data Disk mount on the host and bind mount - to the pod. properties: cachingMode: - description: 'cachingMode is the Host - Caching mode: None, Read Only, Read - Write.' type: string diskName: - description: diskName is the Name of - the data disk in the blob storage type: string diskURI: - description: diskURI is the URI of data - disk in the blob storage type: string fsType: - description: fsType is Filesystem type - to mount. Must be a filesystem type - supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string kind: - description: 'kind expected values are - Shared: multiple blob disks per storage - account Dedicated: single blob disk - per storage account Managed: azure - managed data disk (only in managed - availability set). defaults to shared' type: string readOnly: - description: readOnly Defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean required: - diskName - diskURI type: object azureFile: - description: azureFile represents an Azure - File Service mount on the host and bind - mount to the pod. properties: readOnly: - description: readOnly defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean secretName: - description: secretName is the name - of secret that contains Azure Storage - Account Name and Key type: string shareName: - description: shareName is the azure - share Name type: string required: - secretName - shareName type: object cephfs: - description: cephFS represents a Ceph FS - mount on the host that shares a pod's - lifetime properties: monitors: - description: 'monitors is Required: - Monitors is a collection of Ceph monitors - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic path: - description: 'path is Optional: Used - as the mounted root, rather than the - full Ceph tree, default is /' type: string readOnly: - description: 'readOnly is Optional: - Defaults to false (read/write). ReadOnly - here will force the ReadOnly setting - in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: boolean secretFile: - description: 'secretFile is Optional: - SecretFile is the path to key ring - for User, default is /etc/ceph/user.secret - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string secretRef: - description: 'secretRef is Optional: - SecretRef is reference to the authentication - secret for User, default is empty. - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is optional: User - is the rados user name, default is - admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string required: - monitors type: object cinder: - description: 'cinder represents a cinder - volume attached and mounted on kubelets - host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' properties: fsType: - description: 'fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string readOnly: - description: 'readOnly defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. - More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: boolean secretRef: - description: 'secretRef is optional: - points to a secret object containing - parameters used to connect to OpenStack.' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeID: - description: 'volumeID used to identify - the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string required: - volumeID type: object configMap: - description: configMap represents a configMap - that should populate this volume properties: defaultMode: - description: 'defaultMode is optional: - mode bits used to set permissions - on created files by default. Must - be an octal value between 0000 and - 0777 or a decimal value between 0 - and 511. YAML accepts both octal and - decimal values, JSON requires decimal - values for mode bits. Defaults to - 0644. Directories within the path - are not affected by this setting. - This might be in conflict with other - options that affect the file mode, - like fsGroup, and the result can be - other mode bits set.' format: int32 type: integer items: - description: items if unspecified, each - key-value pair in the Data field of - the referenced ConfigMap will be projected - into the volume as a file whose name - is the key and content is the value. - If specified, the listed keys will - be projected into the specified paths, - and unlisted keys will not be present. - If a key is specified which is not - present in the ConfigMap, the volume - setup will error unless it is marked - optional. Paths must be relative and - may not contain the '..' path or start - with '..'. items: - description: Maps a string key to - a path within a volume. properties: key: - description: key is the key to - project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an octal - value between 0000 and 0777 - or a decimal value between 0 - and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. - If not specified, the volume - defaultMode will be used. This - might be in conflict with other - options that affect the file - mode, like fsGroup, and the - result can be other mode bits - set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the - key to. May not be an absolute - path. May not contain the path - element '..'. May not start - with the string '..'. type: string required: - key @@ -6613,191 +2561,67 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value here - are almost certainly wrong. TODO: - Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether - the ConfigMap or its keys must be - defined type: boolean type: object x-kubernetes-map-type: atomic csi: - description: csi (Container Storage Interface) - represents ephemeral storage that is handled - by certain external CSI drivers (Beta - feature). properties: driver: - description: driver is the name of the - CSI driver that handles this volume. - Consult with your admin for the correct - name as registered in the cluster. type: string fsType: - description: fsType to mount. Ex. "ext4", - "xfs", "ntfs". If not provided, the - empty value is passed to the associated - CSI driver which will determine the - default filesystem to apply. type: string nodePublishSecretRef: - description: nodePublishSecretRef is - a reference to the secret object containing - sensitive information to pass to the - CSI driver to complete the CSI NodePublishVolume - and NodeUnpublishVolume calls. This - field is optional, and may be empty - if no secret is required. If the secret - object contains more than one secret, - all secret references are passed. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic readOnly: - description: readOnly specifies a read-only - configuration for the volume. Defaults - to false (read/write). type: boolean volumeAttributes: additionalProperties: type: string - description: volumeAttributes stores - driver-specific properties that are - passed to the CSI driver. Consult - your driver's documentation for supported - values. type: object required: - driver type: object downwardAPI: - description: downwardAPI represents downward - API about the pod that should populate - this volume properties: defaultMode: - description: 'Optional: mode bits to - use on created files by default. Must - be a Optional: mode bits used to set - permissions on created files by default. - Must be an octal value between 0000 - and 0777 or a decimal value between - 0 and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. Defaults - to 0644. Directories within the path - are not affected by this setting. - This might be in conflict with other - options that affect the file mode, - like fsGroup, and the result can be - other mode bits set.' format: int32 type: integer items: - description: Items is a list of downward - API volume file items: - description: DownwardAPIVolumeFile - represents information to create - the file containing the pod field properties: fieldRef: - description: 'Required: Selects - a field of the pod: only annotations, - labels, name, namespace and - uid are supported.' properties: apiVersion: - description: Version of the - schema the FieldPath is - written in terms of, defaults - to "v1". type: string fieldPath: - description: Path of the field - to select in the specified - API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode bits - used to set permissions on this - file, must be an octal value - between 0000 and 0777 or a decimal - value between 0 and 511. YAML - accepts both octal and decimal - values, JSON requires decimal - values for mode bits. If not - specified, the volume defaultMode - will be used. This might be - in conflict with other options - that affect the file mode, like - fsGroup, and the result can - be other mode bits set.' format: int32 type: integer path: - description: 'Required: Path is the - relative path name of the file - to be created. Must not be absolute - or contain the ''..'' path. - Must be utf-8 encoded. The first - item of the relative path must - not start with ''..''' type: string resourceFieldRef: - description: 'Selects a resource - of the container: only resources - limits and requests (limits.cpu, - limits.memory, requests.cpu - and requests.memory) are currently - supported.' properties: containerName: - description: 'Container name: - required for volumes, optional - for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the - output format of the exposed - resources, defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource - to select' type: string required: - resource @@ -6810,251 +2634,50 @@ spec: x-kubernetes-list-type: atomic type: object emptyDir: - description: 'emptyDir represents a temporary - directory that shares a pod''s lifetime. - More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' properties: medium: - description: 'medium represents what - type of storage medium should back - this directory. The default is "" - which means to use the node''s default - medium. Must be an empty string (default) - or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' type: string sizeLimit: anyOf: - type: integer - type: string - description: 'sizeLimit is the total - amount of local storage required for - this EmptyDir volume. The size limit - is also applicable for memory medium. - The maximum usage on memory medium - EmptyDir would be the minimum value - between the SizeLimit specified here - and the sum of memory limits of all - containers in a pod. The default is - nil which means that the limit is - undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object ephemeral: - description: "ephemeral represents a volume - that is handled by a cluster storage driver. - The volume's lifecycle is tied to the - pod that defines it - it will be created - before the pod starts, and deleted when - the pod is removed. \n Use this if: a) - the volume is only needed while the pod - runs, b) features of normal volumes like - restoring from snapshot or capacity tracking - are needed, c) the storage driver is specified - through a storage class, and d) the storage - driver supports dynamic volume provisioning - through a PersistentVolumeClaim (see EphemeralVolumeSource - for more information on the connection - between this volume type and PersistentVolumeClaim). - \n Use PersistentVolumeClaim or one of - the vendor-specific APIs for volumes that - persist for longer than the lifecycle - of an individual pod. \n Use CSI for light-weight - local ephemeral volumes if the CSI driver - is meant to be used that way - see the - documentation of the driver for more information. - \n A pod can use both types of ephemeral - volumes and persistent volumes at the - same time." properties: volumeClaimTemplate: - description: "Will be used to create - a stand-alone PVC to provision the - volume. The pod in which this EphemeralVolumeSource - is embedded will be the owner of the - PVC, i.e. the PVC will be deleted - together with the pod. The name of - the PVC will be `-` where `` is the - name from the `PodSpec.Volumes` array - entry. Pod validation will reject - the pod if the concatenated name is - not valid for a PVC (for example, - too long). \n An existing PVC with - that name that is not owned by the - pod will *not* be used for the pod - to avoid using an unrelated volume - by mistake. Starting the pod is then - blocked until the unrelated PVC is - removed. If such a pre-created PVC - is meant to be used by the pod, the - PVC has to updated with an owner reference - to the pod once the pod exists. Normally - this should not be necessary, but - it may be useful when manually reconstructing - a broken cluster. \n This field is - read-only and no changes will be made - by Kubernetes to the PVC after it - has been created. \n Required, must - not be nil." properties: metadata: - description: May contain labels - and annotations that will be copied - into the PVC when creating it. - No other fields are allowed and - will be rejected during validation. properties: annotations: additionalProperties: type: string - description: 'Annotations is - an unstructured key value - map stored with a resource - that may be set by external - tools to store and retrieve - arbitrary metadata. They are - not queryable and should be - preserved when modifying objects. - More info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName is - an optional prefix, used by - the server, to generate a - unique name ONLY IF the Name - field has not been provided. - If this field is used, the - name returned to the client - will be different than the - name passed. This value will - also be combined with a unique - suffix. The provided value - has the same validation rules - as the Name field, and may - be truncated by the length - of the suffix required to - make the value unique on the - server. \n If this field is - specified and the generated - name exists, the server will - NOT return a 409 - instead, - it will either return 201 - Created or 500 with Reason - ServerTimeout indicating a - unique name could not be found - in the time allotted, and - the client should retry (optionally - after the time indicated in - the Retry-After header). \n - Applied only if Name is not - specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string - keys and values that can be - used to organize and categorize - (scope and select) objects. - May match selectors of replication - controllers and services. - More info: http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must be unique - within a namespace. Is required - when creating resources, although - some resources may allow a - client to request the generation - of an appropriate name automatically. - Name is primarily intended - for creation idempotence and - configuration definition. - Cannot be updated. More info: - http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace defines - the space within each name - must be unique. An empty namespace - is equivalent to the \"default\" - namespace, but \"default\" - is the canonical representation. - Not all objects are required - to be scoped to a namespace - - the value of this field - for those objects will be - empty. \n Must be a DNS_LABEL. - Cannot be updated. More info: - http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects - depended by this object. If - ALL objects in the list have - been deleted, this object - will be garbage collected. - If this object is managed - by a controller, then an entry - in this list will point to - this controller, with the - controller field set to true. - There cannot be more than - one managing controller. items: - description: OwnerReference - contains enough information - to let you identify an owning - object. An owning object - must be in the same namespace - as the dependent, or be - cluster-scoped, so there - is no namespace field. properties: apiVersion: - description: API version - of the referent. type: string blockOwnerDeletion: - description: If true, - AND if the owner has - the "foregroundDeletion" - finalizer, then the - owner cannot be deleted - from the key-value store - until this reference - is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage - collector interacts - with this field and - enforces the foreground - deletion. Defaults to - false. To set this field, - a user needs "delete" - permission of the owner, - otherwise 422 (Unprocessable - Entity) will be returned. type: boolean controller: - description: If true, - this reference points - to the managing controller. type: boolean kind: - description: 'Kind of - the referent. More info: - https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of - the referent. More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the - referent. More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -7066,63 +2689,19 @@ spec: type: array type: object spec: - description: The specification for - the PersistentVolumeClaim. The - entire content is copied unchanged - into the PVC that gets created - from this template. The same fields - as in a PersistentVolumeClaim - are also valid here. properties: accessModes: - description: 'accessModes contains - the desired access modes the - volume should have. More info: - https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource field - can be used to specify either: - * An existing VolumeSnapshot - object (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an external - controller can support the - specified data source, it - will create a new volume based - on the contents of the specified - data source. When the AnyVolumeDataSource - feature gate is enabled, dataSource - contents will be copied to - dataSourceRef, and dataSourceRef - contents will be copied to - dataSource when dataSourceRef.namespace - is not specified. If the namespace - is specified, then dataSourceRef - will not be copied to dataSource.' properties: apiGroup: - description: APIGroup is - the group for the resource - being referenced. If APIGroup - is not specified, the - specified Kind must be - in the core API group. - For any other third-party - types, APIGroup is required. type: string kind: - description: Kind is the - type of resource being - referenced type: string name: - description: Name is the - name of resource being - referenced type: string required: - kind @@ -7130,110 +2709,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef - specifies the object from - which to populate the volume - with data, if a non-empty - volume is desired. This may - be any object from a non-empty - API group (non core object) - or a PersistentVolumeClaim - object. When this field is - specified, volume binding - will only succeed if the type - of the specified object matches - some installed volume populator - or dynamic provisioner. This - field will replace the functionality - of the dataSource field and - as such if both fields are - non-empty, they must have - the same value. For backwards - compatibility, when namespace - isn''t specified in dataSourceRef, - both fields (dataSource and - dataSourceRef) will be set - to the same value automatically - if one of them is empty and - the other is non-empty. When - namespace is specified in - dataSourceRef, dataSource - isn''t set to the same value - and must be empty. There are - three important differences - between dataSource and dataSourceRef: - * While dataSource only allows - two specific types of objects, - dataSourceRef allows any non-core - object, as well as PersistentVolumeClaim - objects. * While dataSource - ignores disallowed values - (dropping them), dataSourceRef - preserves all values, and - generates an error if a disallowed - value is specified. * While - dataSource only allows local - objects, dataSourceRef allows - objects in any namespaces. - (Beta) Using this field requires - the AnyVolumeDataSource feature - gate to be enabled. (Alpha) - Using the namespace field - of dataSourceRef requires - the CrossNamespaceVolumeDataSource - feature gate to be enabled.' properties: apiGroup: - description: APIGroup is - the group for the resource - being referenced. If APIGroup - is not specified, the - specified Kind must be - in the core API group. - For any other third-party - types, APIGroup is required. type: string kind: - description: Kind is the - type of resource being - referenced type: string name: - description: Name is the - name of resource being - referenced type: string namespace: - description: Namespace is - the namespace of resource - being referenced Note - that when a namespace - is specified, a gateway.networking.k8s.io/ReferenceGrant - object is required in - the referent namespace - to allow that namespace's - owner to accept the reference. - See the ReferenceGrant - documentation for details. - (Alpha) This field requires - the CrossNamespaceVolumeDataSource - feature gate to be enabled. type: string required: - kind - name type: object resources: - description: 'resources represents - the minimum resources the - volume should have. If RecoverVolumeExpansionFailure - feature is enabled users are - allowed to specify resource - requirements that are lower - than previous value but must - still be higher than capacity - recorded in the status field - of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -7242,10 +2731,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes - the maximum amount of - compute resources allowed. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -7254,66 +2739,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes - the minimum amount of - compute resources required. - If Requests is omitted - for a container, it defaults - to Limits if that is explicitly - specified, otherwise to - an implementation-defined - value. Requests cannot - exceed Limits. More info: - https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is a label - query over volumes to consider - for binding. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key - and values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, Exists - and DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -7327,69 +2764,16 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an element - of matchExpressions, whose - key field is "key", the - operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName - is the name of the StorageClass - required by the claim. More - info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName - may be used to set the VolumeAttributesClass - used by this claim. If specified, - the CSI driver will create - or update the volume with - the attributes defined in - the corresponding VolumeAttributesClass. - This has a different purpose - than storageClassName, it - can be changed after the claim - is created. An empty string - value means that no VolumeAttributesClass - will be applied to the claim - but it''s not allowed to reset - this field to empty string - once it is set. If unspecified - and the PersistentVolumeClaim - is unbound, the default VolumeAttributesClass - will be set by the persistentvolume - controller if it exists. If - the resource referred to by - volumeAttributesClass does - not exist, this PersistentVolumeClaim - will be set to a Pending state, - as reflected by the modifyVolumeStatus - field, until such as a resource - exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires - the VolumeAttributesClass - feature gate to be enabled.' type: string volumeMode: - description: volumeMode defines - what type of volume is required - by the claim. Value of Filesystem - is implied when not included - in claim spec. type: string volumeName: - description: volumeName is the - binding reference to the PersistentVolume - backing this claim. type: string type: object required: @@ -7397,103 +2781,41 @@ spec: type: object type: object fc: - description: fc represents a Fibre Channel - resource that is attached to a kubelet's - host machine and then exposed to the pod. properties: fsType: - description: 'fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. TODO: how do we prevent - errors in the filesystem from compromising - the machine' type: string lun: - description: 'lun is Optional: FC target - lun number' format: int32 type: integer readOnly: - description: 'readOnly is Optional: - Defaults to false (read/write). ReadOnly - here will force the ReadOnly setting - in VolumeMounts.' type: boolean targetWWNs: - description: 'targetWWNs is Optional: - FC target worldwide names (WWNs)' items: type: string type: array x-kubernetes-list-type: atomic wwids: - description: 'wwids Optional: FC volume - world wide identifiers (wwids) Either - wwids or combination of targetWWNs - and lun must be set, but not both - simultaneously.' items: type: string type: array x-kubernetes-list-type: atomic type: object flexVolume: - description: flexVolume represents a generic - volume resource that is provisioned/attached - using an exec based plugin. properties: driver: - description: driver is the name of the - driver to use for this volume. type: string fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - The default filesystem depends on - FlexVolume script. type: string options: additionalProperties: type: string - description: 'options is Optional: this - field holds extra command options - if any.' type: object readOnly: - description: 'readOnly is Optional: - defaults to false (read/write). ReadOnly - here will force the ReadOnly setting - in VolumeMounts.' type: boolean secretRef: - description: 'secretRef is Optional: - secretRef is reference to the secret - object containing sensitive information - to pass to the plugin scripts. This - may be empty if no secret object is - specified. If the secret object contains - more than one secret, all secrets - are passed to the plugin scripts.' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic @@ -7501,207 +2823,79 @@ spec: - driver type: object flocker: - description: flocker represents a Flocker - volume attached to a kubelet's host machine. - This depends on the Flocker control service - being running properties: datasetName: - description: datasetName is Name of - the dataset stored as metadata -> - name on the dataset for Flocker should - be considered as deprecated type: string datasetUUID: - description: datasetUUID is the UUID - of the dataset. This is unique identifier - of a Flocker dataset type: string type: object gcePersistentDisk: - description: 'gcePersistentDisk represents - a GCE Disk resource that is attached to - a kubelet''s host machine and then exposed - to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' properties: fsType: - description: 'fsType is filesystem type - of the volume that you want to mount. - Tip: Ensure that the filesystem type - is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in - the filesystem from compromising the - machine' type: string partition: - description: 'partition is the partition - in the volume that you want to mount. - If omitted, the default is to mount - by volume name. Examples: For volume - /dev/sda1, you specify the partition - as "1". Similarly, the volume partition - for /dev/sda is "0" (or you can leave - the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' format: int32 type: integer pdName: - description: 'pdName is unique name - of the PD resource in GCE. Used to - identify the disk in GCE. More info: - https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: string readOnly: - description: 'readOnly here will force - the ReadOnly setting in VolumeMounts. - Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: boolean required: - pdName type: object glusterfs: - description: 'glusterfs represents a Glusterfs - mount on the host that shares a pod''s - lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md' properties: endpoints: - description: 'endpoints is the endpoint - name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string path: - description: 'path is the Glusterfs - volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string readOnly: - description: 'readOnly here will force - the Glusterfs volume to be mounted - with read-only permissions. Defaults - to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: boolean required: - endpoints - path type: object hostPath: - description: 'hostPath represents a pre-existing - file or directory on the host machine - that is directly exposed to the container. - This is generally used for system agents - or other privileged things that are allowed - to see the host machine. Most containers - will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- TODO(jonesdl) We need to restrict - who can use host directory mounts and - who can/can not mount host directories - as read/write.' properties: path: - description: 'path of the directory - on the host. If the path is a symlink, - it will follow the link to the real - path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string type: - description: 'type for HostPath Volume - Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string required: - path type: object iscsi: - description: 'iscsi represents an ISCSI - Disk resource that is attached to a kubelet''s - host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md' properties: chapAuthDiscovery: - description: chapAuthDiscovery defines - whether support iSCSI Discovery CHAP - authentication type: boolean chapAuthSession: - description: chapAuthSession defines - whether support iSCSI Session CHAP - authentication type: boolean fsType: - description: 'fsType is the filesystem - type of the volume that you want to - mount. Tip: Ensure that the filesystem - type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in - the filesystem from compromising the - machine' type: string initiatorName: - description: initiatorName is the custom - iSCSI Initiator Name. If initiatorName - is specified with iscsiInterface simultaneously, - new iSCSI interface : will be created for the connection. type: string iqn: - description: iqn is the target iSCSI - Qualified Name. type: string iscsiInterface: - description: iscsiInterface is the interface - Name that uses an iSCSI transport. - Defaults to 'default' (tcp). type: string lun: - description: lun represents iSCSI Target - Lun number. format: int32 type: integer portals: - description: portals is the iSCSI Target - Portal List. The portal is either - an IP or ip_addr:port if the port - is other than default (typically TCP - ports 860 and 3260). items: type: string type: array x-kubernetes-list-type: atomic readOnly: - description: readOnly here will force - the ReadOnly setting in VolumeMounts. - Defaults to false. type: boolean secretRef: - description: secretRef is the CHAP Secret - for iSCSI target and initiator authentication properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic targetPortal: - description: targetPortal is iSCSI Target - Portal. The Portal is either an IP - or ip_addr:port if the port is other - than default (typically TCP ports - 860 and 3260). type: string required: - iqn @@ -7709,204 +2903,68 @@ spec: - targetPortal type: object name: - description: 'name of the volume. Must be - a DNS_LABEL and unique within the pod. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string nfs: - description: 'nfs represents an NFS mount - on the host that shares a pod''s lifetime - More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' properties: path: - description: 'path that is exported - by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string readOnly: - description: 'readOnly here will force - the NFS export to be mounted with - read-only permissions. Defaults to - false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: boolean server: - description: 'server is the hostname - or IP address of the NFS server. More - info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string required: - path - server type: object persistentVolumeClaim: - description: 'persistentVolumeClaimVolumeSource - represents a reference to a PersistentVolumeClaim - in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: claimName: - description: 'claimName is the name - of a PersistentVolumeClaim in the - same namespace as the pod using this - volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' type: string readOnly: - description: readOnly Will force the - ReadOnly setting in VolumeMounts. - Default false. type: boolean required: - claimName type: object photonPersistentDisk: - description: photonPersistentDisk represents - a PhotonController persistent disk attached - and mounted on kubelets host machine properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. type: string pdID: - description: pdID is the ID that identifies - Photon Controller persistent disk type: string required: - pdID type: object portworxVolume: - description: portworxVolume represents a - portworx volume attached and mounted on - kubelets host machine properties: fsType: - description: fSType represents the filesystem - type to mount Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs". Implicitly - inferred to be "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean volumeID: - description: volumeID uniquely identifies - a Portworx volume type: string required: - volumeID type: object projected: - description: projected items for all in - one resources secrets, configmaps, and - downward API properties: defaultMode: - description: defaultMode are the mode - bits used to set permissions on created - files by default. Must be an octal - value between 0000 and 0777 or a decimal - value between 0 and 511. YAML accepts - both octal and decimal values, JSON - requires decimal values for mode bits. - Directories within the path are not - affected by this setting. This might - be in conflict with other options - that affect the file mode, like fsGroup, - and the result can be other mode bits - set. format: int32 type: integer sources: - description: sources is the list of - volume projections items: - description: Projection that may be - projected along with other supported - volume types properties: clusterTrustBundle: - description: "ClusterTrustBundle - allows a pod to access the `.spec.trustBundle` - field of ClusterTrustBundle - objects in an auto-updating - file. \n Alpha, gated by the - ClusterTrustBundleProjection - feature gate. \n ClusterTrustBundle - objects can either be selected - by name, or by the combination - of signer name and a label selector. - \n Kubelet performs aggressive - normalization of the PEM contents - written into the pod filesystem. - \ Esoteric PEM features such - as inter-block comments and - block headers are stripped. - \ Certificates are deduplicated. - The ordering of certificates - within the file is arbitrary, - and Kubelet may change the order - over time." properties: labelSelector: - description: Select all ClusterTrustBundles - that match this label selector. Only - has effect if signerName - is set. Mutually-exclusive - with name. If unset, interpreted - as "match nothing". If - set but empty, interpreted - as "match everything". properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: key - is the label key - that the selector - applies to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values - is an array of - string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -7920,123 +2978,31 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an - element of matchExpressions, - whose key field is "key", - the operator is "In", - and the values array - contains only "value". - The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic name: - description: Select a single - ClusterTrustBundle by object - name. Mutually-exclusive - with signerName and labelSelector. type: string optional: - description: If true, don't - block pod startup if the - referenced ClusterTrustBundle(s) - aren't available. If using - name, then the named ClusterTrustBundle - is allowed not to exist. If - using signerName, then the - combination of signerName - and labelSelector is allowed - to match zero ClusterTrustBundles. type: boolean path: - description: Relative path - from the volume root to - write the bundle. type: string signerName: - description: Select all ClusterTrustBundles - that match this signer name. - Mutually-exclusive with - name. The contents of all - selected ClusterTrustBundles - will be unified and deduplicated. type: string required: - path type: object configMap: - description: configMap information - about the configMap data to - project properties: items: - description: items if unspecified, - each key-value pair in the - Data field of the referenced - ConfigMap will be projected - into the volume as a file - whose name is the key and - content is the value. If - specified, the listed keys - will be projected into the - specified paths, and unlisted - keys will not be present. - If a key is specified which - is not present in the ConfigMap, - the volume setup will error - unless it is marked optional. - Paths must be relative and - may not contain the '..' - path or start with '..'. items: - description: Maps a string - key to a path within a - volume. properties: key: - description: key is - the key to project. type: string mode: - description: 'mode is - Optional: mode bits - used to set permissions - on this file. Must - be an octal value - between 0000 and 0777 - or a decimal value - between 0 and 511. - YAML accepts both - octal and decimal - values, JSON requires - decimal values for - mode bits. If not - specified, the volume - defaultMode will be - used. This might be - in conflict with other - options that affect - the file mode, like - fsGroup, and the result - can be other mode - bits set.' format: int32 type: integer path: - description: path is - the relative path - of the file to map - the key to. May not - be an absolute path. - May not contain the - path element '..'. - May not start with - the string '..'. type: string required: - key @@ -8046,134 +3012,42 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the - referent. This field is - effectively required, but - due to backwards compatibility - is allowed to be empty. - Instances of this type with - an empty value here are - almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify - whether the ConfigMap or - its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic downwardAPI: - description: downwardAPI information - about the downwardAPI data to - project properties: items: - description: Items is a list - of DownwardAPIVolume file items: - description: DownwardAPIVolumeFile - represents information - to create the file containing - the pod field properties: fieldRef: - description: 'Required: - Selects a field of - the pod: only annotations, - labels, name, namespace - and uid are supported.' properties: apiVersion: - description: Version - of the schema - the FieldPath - is written in - terms of, defaults - to "v1". type: string fieldPath: - description: Path - of the field to - select in the - specified API - version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: - mode bits used to - set permissions on - this file, must be - an octal value between - 0000 and 0777 or a - decimal value between - 0 and 511. YAML accepts - both octal and decimal - values, JSON requires - decimal values for - mode bits. If not - specified, the volume - defaultMode will be - used. This might be - in conflict with other - options that affect - the file mode, like - fsGroup, and the result - can be other mode - bits set.' format: int32 type: integer path: - description: 'Required: - Path is the relative - path name of the file - to be created. Must - not be absolute or - contain the ''..'' - path. Must be utf-8 - encoded. The first - item of the relative - path must not start - with ''..''' type: string resourceFieldRef: - description: 'Selects - a resource of the - container: only resources - limits and requests - (limits.cpu, limits.memory, - requests.cpu and requests.memory) - are currently supported.' properties: containerName: - description: 'Container - name: required - for volumes, optional - for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies - the output format - of the exposed - resources, defaults - to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: - resource to select' type: string required: - resource @@ -8186,72 +3060,16 @@ spec: x-kubernetes-list-type: atomic type: object secret: - description: secret information - about the secret data to project properties: items: - description: items if unspecified, - each key-value pair in the - Data field of the referenced - Secret will be projected - into the volume as a file - whose name is the key and - content is the value. If - specified, the listed keys - will be projected into the - specified paths, and unlisted - keys will not be present. - If a key is specified which - is not present in the Secret, - the volume setup will error - unless it is marked optional. - Paths must be relative and - may not contain the '..' - path or start with '..'. items: - description: Maps a string - key to a path within a - volume. properties: key: - description: key is - the key to project. type: string mode: - description: 'mode is - Optional: mode bits - used to set permissions - on this file. Must - be an octal value - between 0000 and 0777 - or a decimal value - between 0 and 511. - YAML accepts both - octal and decimal - values, JSON requires - decimal values for - mode bits. If not - specified, the volume - defaultMode will be - used. This might be - in conflict with other - options that affect - the file mode, like - fsGroup, and the result - can be other mode - bits set.' format: int32 type: integer path: - description: path is - the relative path - of the file to map - the key to. May not - be an absolute path. - May not contain the - path element '..'. - May not start with - the string '..'. type: string required: - key @@ -8261,68 +3079,19 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the - referent. This field is - effectively required, but - due to backwards compatibility - is allowed to be empty. - Instances of this type with - an empty value here are - almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional field - specify whether the Secret - or its key must be defined type: boolean type: object x-kubernetes-map-type: atomic serviceAccountToken: - description: serviceAccountToken - is information about the serviceAccountToken - data to project properties: audience: - description: audience is the - intended audience of the - token. A recipient of a - token must identify itself - with an identifier specified - in the audience of the token, - and otherwise should reject - the token. The audience - defaults to the identifier - of the apiserver. type: string expirationSeconds: - description: expirationSeconds - is the requested duration - of validity of the service - account token. As the token - approaches expiration, the - kubelet volume plugin will - proactively rotate the service - account token. The kubelet - will start trying to rotate - the token if the token is - older than 80 percent of - its time to live or if the - token is older than 24 hours.Defaults - to 1 hour and must be at - least 10 minutes. format: int64 type: integer path: - description: path is the path - relative to the mount point - of the file to project the - token into. type: string required: - path @@ -8332,196 +3101,79 @@ spec: x-kubernetes-list-type: atomic type: object quobyte: - description: quobyte represents a Quobyte - mount on the host that shares a pod's - lifetime properties: group: - description: group to map volume access - to Default is no group type: string readOnly: - description: readOnly here will force - the Quobyte volume to be mounted with - read-only permissions. Defaults to - false. type: boolean registry: - description: registry represents a single - or multiple Quobyte Registry services - specified as a string as host:port - pair (multiple entries are separated - with commas) which acts as the central - registry for volumes type: string tenant: - description: tenant owning the given - Quobyte volume in the Backend Used - with dynamically provisioned Quobyte - volumes, value is set by the plugin type: string user: - description: user to map volume access - to Defaults to serivceaccount user type: string volume: - description: volume is a string that - references an already created Quobyte - volume by name. type: string required: - registry - volume type: object rbd: - description: 'rbd represents a Rados Block - Device mount on the host that shares a - pod''s lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md' properties: fsType: - description: 'fsType is the filesystem - type of the volume that you want to - mount. Tip: Ensure that the filesystem - type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in - the filesystem from compromising the - machine' type: string image: - description: 'image is the rados image - name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string keyring: - description: 'keyring is the path to - key ring for RBDUser. Default is /etc/ceph/keyring. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string monitors: - description: 'monitors is a collection - of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic pool: - description: 'pool is the rados pool - name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string readOnly: - description: 'readOnly here will force - the ReadOnly setting in VolumeMounts. - Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: boolean secretRef: - description: 'secretRef is name of the - authentication secret for RBDUser. - If provided overrides keyring. Default - is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is the rados user - name. Default is admin. More info: - https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string required: - image - monitors type: object scaleIO: - description: scaleIO represents a ScaleIO - persistent volume attached and mounted - on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Default is "xfs". type: string gateway: - description: gateway is the host address - of the ScaleIO API Gateway. type: string protectionDomain: - description: protectionDomain is the - name of the ScaleIO Protection Domain - for the configured storage. type: string readOnly: - description: readOnly Defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean secretRef: - description: secretRef references to - the secret for ScaleIO user and other - sensitive information. If this is - not provided, Login operation will - fail. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic sslEnabled: - description: sslEnabled Flag enable/disable - SSL communication with Gateway, default - false type: boolean storageMode: - description: storageMode indicates whether - the storage for a volume should be - ThickProvisioned or ThinProvisioned. - Default is ThinProvisioned. type: string storagePool: - description: storagePool is the ScaleIO - Storage Pool associated with the protection - domain. type: string system: - description: system is the name of the - storage system as configured in ScaleIO. type: string volumeName: - description: volumeName is the name - of a volume already created in the - ScaleIO system that is associated - with this volume source. type: string required: - gateway @@ -8529,75 +3181,19 @@ spec: - system type: object secret: - description: 'secret represents a secret - that should populate this volume. More - info: https://kubernetes.io/docs/concepts/storage/volumes#secret' properties: defaultMode: - description: 'defaultMode is Optional: - mode bits used to set permissions - on created files by default. Must - be an octal value between 0000 and - 0777 or a decimal value between 0 - and 511. YAML accepts both octal and - decimal values, JSON requires decimal - values for mode bits. Defaults to - 0644. Directories within the path - are not affected by this setting. - This might be in conflict with other - options that affect the file mode, - like fsGroup, and the result can be - other mode bits set.' format: int32 type: integer items: - description: items If unspecified, each - key-value pair in the Data field of - the referenced Secret will be projected - into the volume as a file whose name - is the key and content is the value. - If specified, the listed keys will - be projected into the specified paths, - and unlisted keys will not be present. - If a key is specified which is not - present in the Secret, the volume - setup will error unless it is marked - optional. Paths must be relative and - may not contain the '..' path or start - with '..'. items: - description: Maps a string key to - a path within a volume. properties: key: - description: key is the key to - project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an octal - value between 0000 and 0777 - or a decimal value between 0 - and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. - If not specified, the volume - defaultMode will be used. This - might be in conflict with other - options that affect the file - mode, like fsGroup, and the - result can be other mode bits - set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the - key to. May not be an absolute - path. May not contain the path - element '..'. May not start - with the string '..'. type: string required: - key @@ -8606,102 +3202,37 @@ spec: type: array x-kubernetes-list-type: atomic optional: - description: optional field specify - whether the Secret or its keys must - be defined type: boolean secretName: - description: 'secretName is the name - of the secret in the pod''s namespace - to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' type: string type: object storageos: - description: storageOS represents a StorageOS - volume attached and mounted on Kubernetes - nodes. properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. type: string readOnly: - description: readOnly defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean secretRef: - description: secretRef specifies the - secret to use for obtaining the StorageOS - API credentials. If not specified, - default values will be attempted. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeName: - description: volumeName is the human-readable - name of the StorageOS volume. Volume - names are only unique within a namespace. type: string volumeNamespace: - description: volumeNamespace specifies - the scope of the volume within StorageOS. If - no namespace is specified then the - Pod's namespace will be used. This - allows the Kubernetes name scoping - to be mirrored within StorageOS for - tighter integration. Set VolumeName - to any name to override the default - behaviour. Set to "default" if you - are not using namespaces within StorageOS. - Namespaces that do not pre-exist within - StorageOS will be created. type: string type: object vsphereVolume: - description: vsphereVolume represents a - vSphere volume attached and mounted on - kubelets host machine properties: fsType: - description: fsType is filesystem type - to mount. Must be a filesystem type - supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string storagePolicyID: - description: storagePolicyID is the - storage Policy Based Management (SPBM) - profile ID associated with the StoragePolicyName. type: string storagePolicyName: - description: storagePolicyName is the - storage Policy Based Management (SPBM) - profile name. type: string volumePath: - description: volumePath is the path - that identifies vSphere volume vmdk type: string required: - volumePath @@ -8713,328 +3244,118 @@ spec: type: object type: object name: - description: Name specifies the name of the addon that - will be used for the backup/restore purpose type: string tasks: - description: Tasks specifies a list of backup/restore - tasks and their configuration parameters items: - description: TaskReference specifies a task and its - configuration parameters properties: addonVolumes: - description: AddonVolumes lets you overwrite the - volume sources used in the VolumeTemplate section - of Addon. Make sure that name of your volume matches - with the name of the volume you want to overwrite. items: - description: AddonVolumeInfo specifies the name - and the source of volume properties: name: - description: Name specifies the name of the - volume type: string source: - description: Source specifies the source of - this volume. properties: awsElasticBlockStore: - description: 'awsElasticBlockStore represents - an AWS Disk resource that is attached - to a kubelet''s host machine and then - exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' properties: fsType: - description: 'fsType is the filesystem - type of the volume that you want - to mount. Tip: Ensure that the filesystem - type is supported by the host operating - system. Examples: "ext4", "xfs", - "ntfs". Implicitly inferred to be - "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in - the filesystem from compromising - the machine' type: string partition: - description: 'partition is the partition - in the volume that you want to mount. - If omitted, the default is to mount - by volume name. Examples: For volume - /dev/sda1, you specify the partition - as "1". Similarly, the volume partition - for /dev/sda is "0" (or you can - leave the property empty).' format: int32 type: integer readOnly: - description: 'readOnly value true - will force the readOnly setting - in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: boolean volumeID: - description: 'volumeID is unique ID - of the persistent disk resource - in AWS (Amazon EBS volume). More - info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: string required: - volumeID type: object azureDisk: - description: azureDisk represents an Azure - Data Disk mount on the host and bind - mount to the pod. properties: cachingMode: - description: 'cachingMode is the Host - Caching mode: None, Read Only, Read - Write.' type: string diskName: - description: diskName is the Name - of the data disk in the blob storage type: string diskURI: - description: diskURI is the URI of - data disk in the blob storage type: string fsType: - description: fsType is Filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" - if unspecified. type: string kind: - description: 'kind expected values - are Shared: multiple blob disks - per storage account Dedicated: - single blob disk per storage account Managed: - azure managed data disk (only in - managed availability set). defaults - to shared' type: string readOnly: - description: readOnly Defaults to - false (read/write). ReadOnly here - will force the ReadOnly setting - in VolumeMounts. type: boolean required: - diskName - diskURI type: object azureFile: - description: azureFile represents an Azure - File Service mount on the host and bind - mount to the pod. properties: readOnly: - description: readOnly defaults to - false (read/write). ReadOnly here - will force the ReadOnly setting - in VolumeMounts. type: boolean secretName: - description: secretName is the name - of secret that contains Azure Storage - Account Name and Key type: string shareName: - description: shareName is the azure - share Name type: string required: - secretName - shareName type: object cephfs: - description: cephFS represents a Ceph - FS mount on the host that shares a pod's - lifetime properties: monitors: - description: 'monitors is Required: - Monitors is a collection of Ceph - monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic path: - description: 'path is Optional: Used - as the mounted root, rather than - the full Ceph tree, default is /' type: string readOnly: - description: 'readOnly is Optional: - Defaults to false (read/write). - ReadOnly here will force the ReadOnly - setting in VolumeMounts. More info: - https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: boolean secretFile: - description: 'secretFile is Optional: - SecretFile is the path to key ring - for User, default is /etc/ceph/user.secret - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string secretRef: - description: 'secretRef is Optional: - SecretRef is reference to the authentication - secret for User, default is empty. - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is optional: User - is the rados user name, default - is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string required: - monitors type: object cinder: - description: 'cinder represents a cinder - volume attached and mounted on kubelets - host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' properties: fsType: - description: 'fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Examples: "ext4", "xfs", - "ntfs". Implicitly inferred to be - "ext4" if unspecified. More info: - https://examples.k8s.io/mysql-cinder-pd/README.md' type: string readOnly: - description: 'readOnly defaults to - false (read/write). ReadOnly here - will force the ReadOnly setting - in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: boolean secretRef: - description: 'secretRef is optional: - points to a secret object containing - parameters used to connect to OpenStack.' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeID: - description: 'volumeID used to identify - the volume in cinder. More info: - https://examples.k8s.io/mysql-cinder-pd/README.md' type: string required: - volumeID type: object configMap: - description: configMap represents a configMap - that should populate this volume properties: defaultMode: - description: 'defaultMode is optional: - mode bits used to set permissions - on created files by default. Must - be an octal value between 0000 and - 0777 or a decimal value between - 0 and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. Defaults - to 0644. Directories within the - path are not affected by this setting. - This might be in conflict with other - options that affect the file mode, - like fsGroup, and the result can - be other mode bits set.' format: int32 type: integer items: - description: items if unspecified, - each key-value pair in the Data - field of the referenced ConfigMap - will be projected into the volume - as a file whose name is the key - and content is the value. If specified, - the listed keys will be projected - into the specified paths, and unlisted - keys will not be present. If a key - is specified which is not present - in the ConfigMap, the volume setup - will error unless it is marked optional. - Paths must be relative and may not - contain the '..' path or start with - '..'. items: - description: Maps a string key to - a path within a volume. properties: key: - description: key is the key - to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an octal - value between 0000 and 0777 - or a decimal value between - 0 and 511. YAML accepts both - octal and decimal values, - JSON requires decimal values - for mode bits. If not specified, - the volume defaultMode will - be used. This might be in - conflict with other options - that affect the file mode, - like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the - key to. May not be an absolute - path. May not contain the - path element '..'. May not - start with the string '..'. type: string required: - key @@ -9044,199 +3365,67 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether - the ConfigMap or its keys must be - defined type: boolean type: object x-kubernetes-map-type: atomic csi: - description: csi (Container Storage Interface) - represents ephemeral storage that is - handled by certain external CSI drivers - (Beta feature). properties: driver: - description: driver is the name of - the CSI driver that handles this - volume. Consult with your admin - for the correct name as registered - in the cluster. type: string fsType: - description: fsType to mount. Ex. - "ext4", "xfs", "ntfs". If not provided, - the empty value is passed to the - associated CSI driver which will - determine the default filesystem - to apply. type: string nodePublishSecretRef: - description: nodePublishSecretRef - is a reference to the secret object - containing sensitive information - to pass to the CSI driver to complete - the CSI NodePublishVolume and NodeUnpublishVolume - calls. This field is optional, and may - be empty if no secret is required. - If the secret object contains more - than one secret, all secret references - are passed. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic readOnly: - description: readOnly specifies a - read-only configuration for the - volume. Defaults to false (read/write). type: boolean volumeAttributes: additionalProperties: type: string - description: volumeAttributes stores - driver-specific properties that - are passed to the CSI driver. Consult - your driver's documentation for - supported values. type: object required: - driver type: object downwardAPI: - description: downwardAPI represents downward - API about the pod that should populate - this volume properties: defaultMode: - description: 'Optional: mode bits - to use on created files by default. - Must be a Optional: mode bits used - to set permissions on created files - by default. Must be an octal value - between 0000 and 0777 or a decimal - value between 0 and 511. YAML accepts - both octal and decimal values, JSON - requires decimal values for mode - bits. Defaults to 0644. Directories - within the path are not affected - by this setting. This might be in - conflict with other options that - affect the file mode, like fsGroup, - and the result can be other mode - bits set.' format: int32 type: integer items: - description: Items is a list of downward - API volume file items: - description: DownwardAPIVolumeFile - represents information to create - the file containing the pod field properties: fieldRef: - description: 'Required: Selects - a field of the pod: only annotations, - labels, name, namespace and - uid are supported.' properties: apiVersion: - description: Version of - the schema the FieldPath - is written in terms of, - defaults to "v1". type: string fieldPath: - description: Path of the - field to select in the - specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode - bits used to set permissions - on this file, must be an octal - value between 0000 and 0777 - or a decimal value between - 0 and 511. YAML accepts both - octal and decimal values, - JSON requires decimal values - for mode bits. If not specified, - the volume defaultMode will - be used. This might be in - conflict with other options - that affect the file mode, - like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: 'Required: Path - is the relative path name - of the file to be created. - Must not be absolute or contain - the ''..'' path. Must be utf-8 - encoded. The first item of - the relative path must not - start with ''..''' type: string resourceFieldRef: - description: 'Selects a resource - of the container: only resources - limits and requests (limits.cpu, - limits.memory, requests.cpu - and requests.memory) are currently - supported.' properties: containerName: - description: 'Container - name: required for volumes, - optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the - output format of the exposed - resources, defaults to - "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: - resource to select' type: string required: - resource @@ -9249,265 +3438,50 @@ spec: x-kubernetes-list-type: atomic type: object emptyDir: - description: 'emptyDir represents a temporary - directory that shares a pod''s lifetime. - More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' properties: medium: - description: 'medium represents what - type of storage medium should back - this directory. The default is "" - which means to use the node''s default - medium. Must be an empty string - (default) or Memory. More info: - https://kubernetes.io/docs/concepts/storage/volumes#emptydir' type: string sizeLimit: anyOf: - type: integer - type: string - description: 'sizeLimit is the total - amount of local storage required - for this EmptyDir volume. The size - limit is also applicable for memory - medium. The maximum usage on memory - medium EmptyDir would be the minimum - value between the SizeLimit specified - here and the sum of memory limits - of all containers in a pod. The - default is nil which means that - the limit is undefined. More info: - https://kubernetes.io/docs/concepts/storage/volumes#emptydir' pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object ephemeral: - description: "ephemeral represents a volume - that is handled by a cluster storage - driver. The volume's lifecycle is tied - to the pod that defines it - it will - be created before the pod starts, and - deleted when the pod is removed. \n - Use this if: a) the volume is only needed - while the pod runs, b) features of normal - volumes like restoring from snapshot - or capacity tracking are needed, c) - the storage driver is specified through - a storage class, and d) the storage - driver supports dynamic volume provisioning - through a PersistentVolumeClaim (see - EphemeralVolumeSource for more information - on the connection between this volume - type and PersistentVolumeClaim). \n - Use PersistentVolumeClaim or one of - the vendor-specific APIs for volumes - that persist for longer than the lifecycle - of an individual pod. \n Use CSI for - light-weight local ephemeral volumes - if the CSI driver is meant to be used - that way - see the documentation of - the driver for more information. \n - A pod can use both types of ephemeral - volumes and persistent volumes at the - same time." properties: volumeClaimTemplate: - description: "Will be used to create - a stand-alone PVC to provision the - volume. The pod in which this EphemeralVolumeSource - is embedded will be the owner of - the PVC, i.e. the PVC will be deleted - together with the pod. The name - of the PVC will be `-` where `` is - the name from the `PodSpec.Volumes` - array entry. Pod validation will - reject the pod if the concatenated - name is not valid for a PVC (for - example, too long). \n An existing - PVC with that name that is not owned - by the pod will *not* be used for - the pod to avoid using an unrelated - volume by mistake. Starting the - pod is then blocked until the unrelated - PVC is removed. If such a pre-created - PVC is meant to be used by the pod, - the PVC has to updated with an owner - reference to the pod once the pod - exists. Normally this should not - be necessary, but it may be useful - when manually reconstructing a broken - cluster. \n This field is read-only - and no changes will be made by Kubernetes - to the PVC after it has been created. - \n Required, must not be nil." properties: metadata: - description: May contain labels - and annotations that will be - copied into the PVC when creating - it. No other fields are allowed - and will be rejected during - validation. properties: annotations: additionalProperties: type: string - description: 'Annotations - is an unstructured key value - map stored with a resource - that may be set by external - tools to store and retrieve - arbitrary metadata. They - are not queryable and should - be preserved when modifying - objects. More info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName - is an optional prefix, used - by the server, to generate - a unique name ONLY IF the - Name field has not been - provided. If this field - is used, the name returned - to the client will be different - than the name passed. This - value will also be combined - with a unique suffix. The - provided value has the same - validation rules as the - Name field, and may be truncated - by the length of the suffix - required to make the value - unique on the server. \n - If this field is specified - and the generated name exists, - the server will NOT return - a 409 - instead, it will - either return 201 Created - or 500 with Reason ServerTimeout - indicating a unique name - could not be found in the - time allotted, and the client - should retry (optionally - after the time indicated - in the Retry-After header). - \n Applied only if Name - is not specified. More info: - https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string - keys and values that can - be used to organize and - categorize (scope and select) - objects. May match selectors - of replication controllers - and services. More info: - http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must be - unique within a namespace. - Is required when creating - resources, although some - resources may allow a client - to request the generation - of an appropriate name automatically. - Name is primarily intended - for creation idempotence - and configuration definition. - Cannot be updated. More - info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace defines - the space within each name - must be unique. An empty - namespace is equivalent - to the \"default\" namespace, - but \"default\" is the canonical - representation. Not all - objects are required to - be scoped to a namespace - - the value of this field - for those objects will be - empty. \n Must be a DNS_LABEL. - Cannot be updated. More - info: http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects - depended by this object. - If ALL objects in the list - have been deleted, this - object will be garbage collected. - If this object is managed - by a controller, then an - entry in this list will - point to this controller, - with the controller field - set to true. There cannot - be more than one managing - controller. items: - description: OwnerReference - contains enough information - to let you identify an - owning object. An owning - object must be in the - same namespace as the - dependent, or be cluster-scoped, - so there is no namespace - field. properties: apiVersion: - description: API version - of the referent. type: string blockOwnerDeletion: - description: If true, - AND if the owner has - the "foregroundDeletion" - finalizer, then the - owner cannot be deleted - from the key-value - store until this reference - is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage - collector interacts - with this field and - enforces the foreground - deletion. Defaults - to false. To set this - field, a user needs - "delete" permission - of the owner, otherwise - 422 (Unprocessable - Entity) will be returned. type: boolean controller: - description: If true, - this reference points - to the managing controller. type: boolean kind: - description: 'Kind of - the referent. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of - the referent. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of - the referent. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -9519,66 +3493,19 @@ spec: type: array type: object spec: - description: The specification - for the PersistentVolumeClaim. - The entire content is copied - unchanged into the PVC that - gets created from this template. - The same fields as in a PersistentVolumeClaim - are also valid here. properties: accessModes: - description: 'accessModes - contains the desired access - modes the volume should - have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource field - can be used to specify either: - * An existing VolumeSnapshot - object (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an - external controller can - support the specified data - source, it will create a - new volume based on the - contents of the specified - data source. When the AnyVolumeDataSource - feature gate is enabled, - dataSource contents will - be copied to dataSourceRef, - and dataSourceRef contents - will be copied to dataSource - when dataSourceRef.namespace - is not specified. If the - namespace is specified, - then dataSourceRef will - not be copied to dataSource.' properties: apiGroup: - description: APIGroup - is the group for the - resource being referenced. - If APIGroup is not specified, - the specified Kind must - be in the core API group. - For any other third-party - types, APIGroup is required. type: string kind: - description: Kind is the - type of resource being - referenced type: string name: - description: Name is the - name of resource being - referenced type: string required: - kind @@ -9586,114 +3513,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef - specifies the object from - which to populate the volume - with data, if a non-empty - volume is desired. This - may be any object from a - non-empty API group (non - core object) or a PersistentVolumeClaim - object. When this field - is specified, volume binding - will only succeed if the - type of the specified object - matches some installed volume - populator or dynamic provisioner. - This field will replace - the functionality of the - dataSource field and as - such if both fields are - non-empty, they must have - the same value. For backwards - compatibility, when namespace - isn''t specified in dataSourceRef, - both fields (dataSource - and dataSourceRef) will - be set to the same value - automatically if one of - them is empty and the other - is non-empty. When namespace - is specified in dataSourceRef, - dataSource isn''t set to - the same value and must - be empty. There are three - important differences between - dataSource and dataSourceRef: - * While dataSource only - allows two specific types - of objects, dataSourceRef - allows any non-core object, - as well as PersistentVolumeClaim - objects. * While dataSource - ignores disallowed values - (dropping them), dataSourceRef - preserves all values, and - generates an error if a - disallowed value is specified. - * While dataSource only - allows local objects, dataSourceRef - allows objects in any namespaces. - (Beta) Using this field - requires the AnyVolumeDataSource - feature gate to be enabled. - (Alpha) Using the namespace - field of dataSourceRef requires - the CrossNamespaceVolumeDataSource - feature gate to be enabled.' properties: apiGroup: - description: APIGroup - is the group for the - resource being referenced. - If APIGroup is not specified, - the specified Kind must - be in the core API group. - For any other third-party - types, APIGroup is required. type: string kind: - description: Kind is the - type of resource being - referenced type: string name: - description: Name is the - name of resource being - referenced type: string namespace: - description: Namespace - is the namespace of - resource being referenced - Note that when a namespace - is specified, a gateway.networking.k8s.io/ReferenceGrant - object is required in - the referent namespace - to allow that namespace's - owner to accept the - reference. See the ReferenceGrant - documentation for details. - (Alpha) This field requires - the CrossNamespaceVolumeDataSource - feature gate to be enabled. type: string required: - kind - name type: object resources: - description: 'resources represents - the minimum resources the - volume should have. If RecoverVolumeExpansionFailure - feature is enabled users - are allowed to specify resource - requirements that are lower - than previous value but - must still be higher than - capacity recorded in the - status field of the claim. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -9702,10 +3535,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes - the maximum amount of - compute resources allowed. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -9714,70 +3543,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests - describes the minimum - amount of compute resources - required. If Requests - is omitted for a container, - it defaults to Limits - if that is explicitly - specified, otherwise - to an implementation-defined - value. Requests cannot - exceed Limits. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is a - label query over volumes - to consider for binding. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: key - is the label key - that the selector - applies to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values - is an array of - string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -9791,74 +3568,16 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an - element of matchExpressions, - whose key field is "key", - the operator is "In", - and the values array - contains only "value". - The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName - is the name of the StorageClass - required by the claim. More - info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName - may be used to set the VolumeAttributesClass - used by this claim. If specified, - the CSI driver will create - or update the volume with - the attributes defined in - the corresponding VolumeAttributesClass. - This has a different purpose - than storageClassName, it - can be changed after the - claim is created. An empty - string value means that - no VolumeAttributesClass - will be applied to the claim - but it''s not allowed to - reset this field to empty - string once it is set. If - unspecified and the PersistentVolumeClaim - is unbound, the default - VolumeAttributesClass will - be set by the persistentvolume - controller if it exists. - If the resource referred - to by volumeAttributesClass - does not exist, this PersistentVolumeClaim - will be set to a Pending - state, as reflected by the - modifyVolumeStatus field, - until such as a resource - exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field - requires the VolumeAttributesClass - feature gate to be enabled.' type: string volumeMode: - description: volumeMode defines - what type of volume is required - by the claim. Value of Filesystem - is implied when not included - in claim spec. type: string volumeName: - description: volumeName is - the binding reference to - the PersistentVolume backing - this claim. type: string type: object required: @@ -9866,105 +3585,41 @@ spec: type: object type: object fc: - description: fc represents a Fibre Channel - resource that is attached to a kubelet's - host machine and then exposed to the - pod. properties: fsType: - description: 'fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" - if unspecified. TODO: how do we - prevent errors in the filesystem - from compromising the machine' type: string lun: - description: 'lun is Optional: FC - target lun number' format: int32 type: integer readOnly: - description: 'readOnly is Optional: - Defaults to false (read/write). - ReadOnly here will force the ReadOnly - setting in VolumeMounts.' type: boolean targetWWNs: - description: 'targetWWNs is Optional: - FC target worldwide names (WWNs)' items: type: string type: array x-kubernetes-list-type: atomic wwids: - description: 'wwids Optional: FC volume - world wide identifiers (wwids) Either - wwids or combination of targetWWNs - and lun must be set, but not both - simultaneously.' items: type: string type: array x-kubernetes-list-type: atomic type: object flexVolume: - description: flexVolume represents a generic - volume resource that is provisioned/attached - using an exec based plugin. properties: driver: - description: driver is the name of - the driver to use for this volume. type: string fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - The default filesystem depends on - FlexVolume script. type: string options: additionalProperties: type: string - description: 'options is Optional: - this field holds extra command options - if any.' type: object readOnly: - description: 'readOnly is Optional: - defaults to false (read/write). - ReadOnly here will force the ReadOnly - setting in VolumeMounts.' type: boolean secretRef: - description: 'secretRef is Optional: - secretRef is reference to the secret - object containing sensitive information - to pass to the plugin scripts. This - may be empty if no secret object - is specified. If the secret object - contains more than one secret, all - secrets are passed to the plugin - scripts.' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic @@ -9972,214 +3627,79 @@ spec: - driver type: object flocker: - description: flocker represents a Flocker - volume attached to a kubelet's host - machine. This depends on the Flocker - control service being running properties: datasetName: - description: datasetName is Name of - the dataset stored as metadata -> - name on the dataset for Flocker - should be considered as deprecated type: string datasetUUID: - description: datasetUUID is the UUID - of the dataset. This is unique identifier - of a Flocker dataset type: string type: object gcePersistentDisk: - description: 'gcePersistentDisk represents - a GCE Disk resource that is attached - to a kubelet''s host machine and then - exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' properties: fsType: - description: 'fsType is filesystem - type of the volume that you want - to mount. Tip: Ensure that the filesystem - type is supported by the host operating - system. Examples: "ext4", "xfs", - "ntfs". Implicitly inferred to be - "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in - the filesystem from compromising - the machine' type: string partition: - description: 'partition is the partition - in the volume that you want to mount. - If omitted, the default is to mount - by volume name. Examples: For volume - /dev/sda1, you specify the partition - as "1". Similarly, the volume partition - for /dev/sda is "0" (or you can - leave the property empty). More - info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' format: int32 type: integer pdName: - description: 'pdName is unique name - of the PD resource in GCE. Used - to identify the disk in GCE. More - info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: string readOnly: - description: 'readOnly here will force - the ReadOnly setting in VolumeMounts. - Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: boolean required: - pdName type: object glusterfs: - description: 'glusterfs represents a Glusterfs - mount on the host that shares a pod''s - lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md' properties: endpoints: - description: 'endpoints is the endpoint - name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string path: - description: 'path is the Glusterfs - volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string readOnly: - description: 'readOnly here will force - the Glusterfs volume to be mounted - with read-only permissions. Defaults - to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: boolean required: - endpoints - path type: object hostPath: - description: 'hostPath represents a pre-existing - file or directory on the host machine - that is directly exposed to the container. - This is generally used for system agents - or other privileged things that are - allowed to see the host machine. Most - containers will NOT need this. More - info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- TODO(jonesdl) We need to restrict - who can use host directory mounts and - who can/can not mount host directories - as read/write.' properties: path: - description: 'path of the directory - on the host. If the path is a symlink, - it will follow the link to the real - path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string type: - description: 'type for HostPath Volume - Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string required: - path type: object iscsi: - description: 'iscsi represents an ISCSI - Disk resource that is attached to a - kubelet''s host machine and then exposed - to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md' properties: chapAuthDiscovery: - description: chapAuthDiscovery defines - whether support iSCSI Discovery - CHAP authentication type: boolean chapAuthSession: - description: chapAuthSession defines - whether support iSCSI Session CHAP - authentication type: boolean fsType: - description: 'fsType is the filesystem - type of the volume that you want - to mount. Tip: Ensure that the filesystem - type is supported by the host operating - system. Examples: "ext4", "xfs", - "ntfs". Implicitly inferred to be - "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in - the filesystem from compromising - the machine' type: string initiatorName: - description: initiatorName is the - custom iSCSI Initiator Name. If - initiatorName is specified with - iscsiInterface simultaneously, new - iSCSI interface : will be created for the connection. type: string iqn: - description: iqn is the target iSCSI - Qualified Name. type: string iscsiInterface: - description: iscsiInterface is the - interface Name that uses an iSCSI - transport. Defaults to 'default' - (tcp). type: string lun: - description: lun represents iSCSI - Target Lun number. format: int32 type: integer portals: - description: portals is the iSCSI - Target Portal List. The portal is - either an IP or ip_addr:port if - the port is other than default (typically - TCP ports 860 and 3260). items: type: string type: array x-kubernetes-list-type: atomic readOnly: - description: readOnly here will force - the ReadOnly setting in VolumeMounts. - Defaults to false. type: boolean secretRef: - description: secretRef is the CHAP - Secret for iSCSI target and initiator - authentication properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic targetPortal: - description: targetPortal is iSCSI - Target Portal. The Portal is either - an IP or ip_addr:port if the port - is other than default (typically - TCP ports 860 and 3260). type: string required: - iqn @@ -10187,209 +3707,66 @@ spec: - targetPortal type: object nfs: - description: 'nfs represents an NFS mount - on the host that shares a pod''s lifetime - More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' properties: path: - description: 'path that is exported - by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string readOnly: - description: 'readOnly here will force - the NFS export to be mounted with - read-only permissions. Defaults - to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: boolean server: - description: 'server is the hostname - or IP address of the NFS server. - More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string required: - path - server type: object persistentVolumeClaim: - description: 'persistentVolumeClaimVolumeSource - represents a reference to a PersistentVolumeClaim - in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: claimName: - description: 'claimName is the name - of a PersistentVolumeClaim in the - same namespace as the pod using - this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' type: string readOnly: - description: readOnly Will force the - ReadOnly setting in VolumeMounts. - Default false. type: boolean required: - claimName type: object photonPersistentDisk: - description: photonPersistentDisk represents - a PhotonController persistent disk attached - and mounted on kubelets host machine properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" - if unspecified. type: string pdID: - description: pdID is the ID that identifies - Photon Controller persistent disk type: string required: - pdID type: object portworxVolume: - description: portworxVolume represents - a portworx volume attached and mounted - on kubelets host machine properties: fsType: - description: fSType represents the - filesystem type to mount Must be - a filesystem type supported by the - host operating system. Ex. "ext4", - "xfs". Implicitly inferred to be - "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to - false (read/write). ReadOnly here - will force the ReadOnly setting - in VolumeMounts. type: boolean volumeID: - description: volumeID uniquely identifies - a Portworx volume type: string required: - volumeID type: object projected: - description: projected items for all in - one resources secrets, configmaps, and - downward API properties: defaultMode: - description: defaultMode are the mode - bits used to set permissions on - created files by default. Must be - an octal value between 0000 and - 0777 or a decimal value between - 0 and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. Directories - within the path are not affected - by this setting. This might be in - conflict with other options that - affect the file mode, like fsGroup, - and the result can be other mode - bits set. format: int32 type: integer sources: - description: sources is the list of - volume projections items: - description: Projection that may - be projected along with other - supported volume types properties: clusterTrustBundle: - description: "ClusterTrustBundle - allows a pod to access the - `.spec.trustBundle` field - of ClusterTrustBundle objects - in an auto-updating file. - \n Alpha, gated by the ClusterTrustBundleProjection - feature gate. \n ClusterTrustBundle - objects can either be selected - by name, or by the combination - of signer name and a label - selector. \n Kubelet performs - aggressive normalization of - the PEM contents written into - the pod filesystem. Esoteric - PEM features such as inter-block - comments and block headers - are stripped. Certificates - are deduplicated. The ordering - of certificates within the - file is arbitrary, and Kubelet - may change the order over - time." properties: labelSelector: - description: Select all - ClusterTrustBundles that - match this label selector. Only - has effect if signerName - is set. Mutually-exclusive - with name. If unset, - interpreted as "match - nothing". If set but - empty, interpreted as - "match everything". properties: matchExpressions: - description: matchExpressions - is a list of label - selector requirements. - The requirements are - ANDed. items: - description: A label - selector requirement - is a selector that - contains values, - a key, and an operator - that relates the - key and values. properties: key: - description: key - is the label - key that the - selector applies - to. type: string operator: - description: operator - represents a - key's relationship - to a set of - values. Valid - operators are - In, NotIn, Exists - and DoesNotExist. type: string values: - description: values - is an array - of string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or - DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic - merge patch. items: type: string type: array @@ -10403,131 +3780,31 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels - map is equivalent - to an element of matchExpressions, - whose key field is - "key", the operator - is "In", and the values - array contains only - "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic name: - description: Select a single - ClusterTrustBundle by - object name. Mutually-exclusive - with signerName and labelSelector. type: string optional: - description: If true, don't - block pod startup if the - referenced ClusterTrustBundle(s) - aren't available. If - using name, then the named - ClusterTrustBundle is - allowed not to exist. If - using signerName, then - the combination of signerName - and labelSelector is allowed - to match zero ClusterTrustBundles. type: boolean path: - description: Relative path - from the volume root to - write the bundle. type: string signerName: - description: Select all - ClusterTrustBundles that - match this signer name. - Mutually-exclusive with - name. The contents of - all selected ClusterTrustBundles - will be unified and deduplicated. type: string required: - path type: object configMap: - description: configMap information - about the configMap data to - project properties: items: - description: items if unspecified, - each key-value pair in - the Data field of the - referenced ConfigMap will - be projected into the - volume as a file whose - name is the key and content - is the value. If specified, - the listed keys will be - projected into the specified - paths, and unlisted keys - will not be present. If - a key is specified which - is not present in the - ConfigMap, the volume - setup will error unless - it is marked optional. - Paths must be relative - and may not contain the - '..' path or start with - '..'. items: - description: Maps a string - key to a path within - a volume. properties: key: - description: key is - the key to project. type: string mode: - description: 'mode - is Optional: mode - bits used to set - permissions on this - file. Must be an - octal value between - 0000 and 0777 or - a decimal value - between 0 and 511. - YAML accepts both - octal and decimal - values, JSON requires - decimal values for - mode bits. If not - specified, the volume - defaultMode will - be used. This might - be in conflict with - other options that - affect the file - mode, like fsGroup, - and the result can - be other mode bits - set.' format: int32 type: integer path: - description: path - is the relative - path of the file - to map the key to. - May not be an absolute - path. May not contain - the path element - '..'. May not start - with the string - '..'. type: string required: - key @@ -10537,141 +3814,42 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the - referent. This field is - effectively required, - but due to backwards compatibility - is allowed to be empty. - Instances of this type - with an empty value here - are almost certainly wrong. - TODO: Add other useful - fields. apiVersion, kind, - uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify - whether the ConfigMap - or its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic downwardAPI: - description: downwardAPI information - about the downwardAPI data - to project properties: items: - description: Items is a - list of DownwardAPIVolume - file items: - description: DownwardAPIVolumeFile - represents information - to create the file containing - the pod field properties: fieldRef: - description: 'Required: - Selects a field - of the pod: only - annotations, labels, - name, namespace - and uid are supported.' properties: apiVersion: - description: Version - of the schema - the FieldPath - is written in - terms of, defaults - to "v1". type: string fieldPath: - description: Path - of the field - to select in - the specified - API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: - mode bits used to - set permissions - on this file, must - be an octal value - between 0000 and - 0777 or a decimal - value between 0 - and 511. YAML accepts - both octal and decimal - values, JSON requires - decimal values for - mode bits. If not - specified, the volume - defaultMode will - be used. This might - be in conflict with - other options that - affect the file - mode, like fsGroup, - and the result can - be other mode bits - set.' format: int32 type: integer path: - description: 'Required: - Path is the relative - path name of the - file to be created. - Must not be absolute - or contain the ''..'' - path. Must be utf-8 - encoded. The first - item of the relative - path must not start - with ''..''' type: string resourceFieldRef: - description: 'Selects - a resource of the - container: only - resources limits - and requests (limits.cpu, - limits.memory, requests.cpu - and requests.memory) - are currently supported.' properties: containerName: - description: 'Container - name: required - for volumes, - optional for - env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies - the output format - of the exposed - resources, defaults - to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: - resource to - select' type: string required: - resource @@ -10684,77 +3862,16 @@ spec: x-kubernetes-list-type: atomic type: object secret: - description: secret information - about the secret data to project properties: items: - description: items if unspecified, - each key-value pair in - the Data field of the - referenced Secret will - be projected into the - volume as a file whose - name is the key and content - is the value. If specified, - the listed keys will be - projected into the specified - paths, and unlisted keys - will not be present. If - a key is specified which - is not present in the - Secret, the volume setup - will error unless it is - marked optional. Paths - must be relative and may - not contain the '..' path - or start with '..'. items: - description: Maps a string - key to a path within - a volume. properties: key: - description: key is - the key to project. type: string mode: - description: 'mode - is Optional: mode - bits used to set - permissions on this - file. Must be an - octal value between - 0000 and 0777 or - a decimal value - between 0 and 511. - YAML accepts both - octal and decimal - values, JSON requires - decimal values for - mode bits. If not - specified, the volume - defaultMode will - be used. This might - be in conflict with - other options that - affect the file - mode, like fsGroup, - and the result can - be other mode bits - set.' format: int32 type: integer path: - description: path - is the relative - path of the file - to map the key to. - May not be an absolute - path. May not contain - the path element - '..'. May not start - with the string - '..'. type: string required: - key @@ -10764,71 +3881,19 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the - referent. This field is - effectively required, - but due to backwards compatibility - is allowed to be empty. - Instances of this type - with an empty value here - are almost certainly wrong. - TODO: Add other useful - fields. apiVersion, kind, - uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional field - specify whether the Secret - or its key must be defined type: boolean type: object x-kubernetes-map-type: atomic serviceAccountToken: - description: serviceAccountToken - is information about the serviceAccountToken - data to project properties: audience: - description: audience is - the intended audience - of the token. A recipient - of a token must identify - itself with an identifier - specified in the audience - of the token, and otherwise - should reject the token. - The audience defaults - to the identifier of the - apiserver. type: string expirationSeconds: - description: expirationSeconds - is the requested duration - of validity of the service - account token. As the - token approaches expiration, - the kubelet volume plugin - will proactively rotate - the service account token. - The kubelet will start - trying to rotate the token - if the token is older - than 80 percent of its - time to live or if the - token is older than 24 - hours.Defaults to 1 hour - and must be at least 10 - minutes. format: int64 type: integer path: - description: path is the - path relative to the mount - point of the file to project - the token into. type: string required: - path @@ -10838,202 +3903,79 @@ spec: x-kubernetes-list-type: atomic type: object quobyte: - description: quobyte represents a Quobyte - mount on the host that shares a pod's - lifetime properties: group: - description: group to map volume access - to Default is no group type: string readOnly: - description: readOnly here will force - the Quobyte volume to be mounted - with read-only permissions. Defaults - to false. type: boolean registry: - description: registry represents a - single or multiple Quobyte Registry - services specified as a string as - host:port pair (multiple entries - are separated with commas) which - acts as the central registry for - volumes type: string tenant: - description: tenant owning the given - Quobyte volume in the Backend Used - with dynamically provisioned Quobyte - volumes, value is set by the plugin type: string user: - description: user to map volume access - to Defaults to serivceaccount user type: string volume: - description: volume is a string that - references an already created Quobyte - volume by name. type: string required: - registry - volume type: object rbd: - description: 'rbd represents a Rados Block - Device mount on the host that shares - a pod''s lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md' properties: fsType: - description: 'fsType is the filesystem - type of the volume that you want - to mount. Tip: Ensure that the filesystem - type is supported by the host operating - system. Examples: "ext4", "xfs", - "ntfs". Implicitly inferred to be - "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in - the filesystem from compromising - the machine' type: string image: - description: 'image is the rados image - name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string keyring: - description: 'keyring is the path - to key ring for RBDUser. Default - is /etc/ceph/keyring. More info: - https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string monitors: - description: 'monitors is a collection - of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic pool: - description: 'pool is the rados pool - name. Default is rbd. More info: - https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string readOnly: - description: 'readOnly here will force - the ReadOnly setting in VolumeMounts. - Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: boolean secretRef: - description: 'secretRef is name of - the authentication secret for RBDUser. - If provided overrides keyring. Default - is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is the rados user - name. Default is admin. More info: - https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string required: - image - monitors type: object scaleIO: - description: scaleIO represents a ScaleIO - persistent volume attached and mounted - on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Default is "xfs". type: string gateway: - description: gateway is the host address - of the ScaleIO API Gateway. type: string protectionDomain: - description: protectionDomain is the - name of the ScaleIO Protection Domain - for the configured storage. type: string readOnly: - description: readOnly Defaults to - false (read/write). ReadOnly here - will force the ReadOnly setting - in VolumeMounts. type: boolean secretRef: - description: secretRef references - to the secret for ScaleIO user and - other sensitive information. If - this is not provided, Login operation - will fail. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic sslEnabled: - description: sslEnabled Flag enable/disable - SSL communication with Gateway, - default false type: boolean storageMode: - description: storageMode indicates - whether the storage for a volume - should be ThickProvisioned or ThinProvisioned. - Default is ThinProvisioned. type: string storagePool: - description: storagePool is the ScaleIO - Storage Pool associated with the - protection domain. type: string system: - description: system is the name of - the storage system as configured - in ScaleIO. type: string volumeName: - description: volumeName is the name - of a volume already created in the - ScaleIO system that is associated - with this volume source. type: string required: - gateway @@ -11041,76 +3983,19 @@ spec: - system type: object secret: - description: 'secret represents a secret - that should populate this volume. More - info: https://kubernetes.io/docs/concepts/storage/volumes#secret' properties: defaultMode: - description: 'defaultMode is Optional: - mode bits used to set permissions - on created files by default. Must - be an octal value between 0000 and - 0777 or a decimal value between - 0 and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. Defaults - to 0644. Directories within the - path are not affected by this setting. - This might be in conflict with other - options that affect the file mode, - like fsGroup, and the result can - be other mode bits set.' format: int32 type: integer items: - description: items If unspecified, - each key-value pair in the Data - field of the referenced Secret will - be projected into the volume as - a file whose name is the key and - content is the value. If specified, - the listed keys will be projected - into the specified paths, and unlisted - keys will not be present. If a key - is specified which is not present - in the Secret, the volume setup - will error unless it is marked optional. - Paths must be relative and may not - contain the '..' path or start with - '..'. items: - description: Maps a string key to - a path within a volume. properties: key: - description: key is the key - to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an octal - value between 0000 and 0777 - or a decimal value between - 0 and 511. YAML accepts both - octal and decimal values, - JSON requires decimal values - for mode bits. If not specified, - the volume defaultMode will - be used. This might be in - conflict with other options - that affect the file mode, - like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the - key to. May not be an absolute - path. May not contain the - path element '..'. May not - start with the string '..'. type: string required: - key @@ -11119,229 +4004,60 @@ spec: type: array x-kubernetes-list-type: atomic optional: - description: optional field specify - whether the Secret or its keys must - be defined type: boolean secretName: - description: 'secretName is the name - of the secret in the pod''s namespace - to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' type: string type: object storageos: - description: storageOS represents a StorageOS - volume attached and mounted on Kubernetes - nodes. properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" - if unspecified. type: string readOnly: - description: readOnly defaults to - false (read/write). ReadOnly here - will force the ReadOnly setting - in VolumeMounts. type: boolean secretRef: - description: secretRef specifies the - secret to use for obtaining the - StorageOS API credentials. If not - specified, default values will be - attempted. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeName: - description: volumeName is the human-readable - name of the StorageOS volume. Volume - names are only unique within a namespace. type: string volumeNamespace: - description: volumeNamespace specifies - the scope of the volume within StorageOS. If - no namespace is specified then the - Pod's namespace will be used. This - allows the Kubernetes name scoping - to be mirrored within StorageOS - for tighter integration. Set VolumeName - to any name to override the default - behaviour. Set to "default" if you - are not using namespaces within - StorageOS. Namespaces that do not - pre-exist within StorageOS will - be created. type: string type: object volumeClaimTemplate: - description: VolumeClaimTemplate specifies - a template for volume to use by the - backup/restore executor properties: metadata: - description: May contain labels and - annotations that will be copied - into the PVC when creating it. No - other fields are allowed and will - be rejected during validation. properties: annotations: additionalProperties: type: string - description: 'Annotations is an - unstructured key value map stored - with a resource that may be - set by external tools to store - and retrieve arbitrary metadata. - They are not queryable and should - be preserved when modifying - objects. More info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName is - an optional prefix, used by - the server, to generate a unique - name ONLY IF the Name field - has not been provided. If this - field is used, the name returned - to the client will be different - than the name passed. This value - will also be combined with a - unique suffix. The provided - value has the same validation - rules as the Name field, and - may be truncated by the length - of the suffix required to make - the value unique on the server. - \n If this field is specified - and the generated name exists, - the server will NOT return a - 409 - instead, it will either - return 201 Created or 500 with - Reason ServerTimeout indicating - a unique name could not be found - in the time allotted, and the - client should retry (optionally - after the time indicated in - the Retry-After header). \n - Applied only if Name is not - specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string keys - and values that can be used - to organize and categorize (scope - and select) objects. May match - selectors of replication controllers - and services. More info: http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must be unique - within a namespace. Is required - when creating resources, although - some resources may allow a client - to request the generation of - an appropriate name automatically. - Name is primarily intended for - creation idempotence and configuration - definition. Cannot be updated. - More info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace defines - the space within each name must - be unique. An empty namespace - is equivalent to the \"default\" - namespace, but \"default\" is - the canonical representation. - Not all objects are required - to be scoped to a namespace - - the value of this field for - those objects will be empty. - \n Must be a DNS_LABEL. Cannot - be updated. More info: http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects depended - by this object. If ALL objects - in the list have been deleted, - this object will be garbage - collected. If this object is - managed by a controller, then - an entry in this list will point - to this controller, with the - controller field set to true. - There cannot be more than one - managing controller. items: - description: OwnerReference - contains enough information - to let you identify an owning - object. An owning object must - be in the same namespace as - the dependent, or be cluster-scoped, - so there is no namespace field. properties: apiVersion: - description: API version - of the referent. type: string blockOwnerDeletion: - description: If true, AND - if the owner has the "foregroundDeletion" - finalizer, then the owner - cannot be deleted from - the key-value store until - this reference is removed. - See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage collector - interacts with this field - and enforces the foreground - deletion. Defaults to - false. To set this field, - a user needs "delete" - permission of the owner, - otherwise 422 (Unprocessable - Entity) will be returned. type: boolean controller: - description: If true, this - reference points to the - managing controller. type: boolean kind: - description: 'Kind of the - referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of the - referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the - referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -11353,61 +4069,19 @@ spec: type: array type: object spec: - description: The specification for - the PersistentVolumeClaim. The entire - content is copied unchanged into - the PVC that gets created from this - template. The same fields as in - a PersistentVolumeClaim are also - valid here. properties: accessModes: - description: 'accessModes contains - the desired access modes the - volume should have. More info: - https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource field - can be used to specify either: - * An existing VolumeSnapshot - object (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an external - controller can support the specified - data source, it will create - a new volume based on the contents - of the specified data source. - When the AnyVolumeDataSource - feature gate is enabled, dataSource - contents will be copied to dataSourceRef, - and dataSourceRef contents will - be copied to dataSource when - dataSourceRef.namespace is not - specified. If the namespace - is specified, then dataSourceRef - will not be copied to dataSource.' properties: apiGroup: - description: APIGroup is the - group for the resource being - referenced. If APIGroup - is not specified, the specified - Kind must be in the core - API group. For any other - third-party types, APIGroup - is required. type: string kind: - description: Kind is the type - of resource being referenced type: string name: - description: Name is the name - of resource being referenced type: string required: - kind @@ -11415,103 +4089,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef specifies - the object from which to populate - the volume with data, if a non-empty - volume is desired. This may - be any object from a non-empty - API group (non core object) - or a PersistentVolumeClaim object. - When this field is specified, - volume binding will only succeed - if the type of the specified - object matches some installed - volume populator or dynamic - provisioner. This field will - replace the functionality of - the dataSource field and as - such if both fields are non-empty, - they must have the same value. - For backwards compatibility, - when namespace isn''t specified - in dataSourceRef, both fields - (dataSource and dataSourceRef) - will be set to the same value - automatically if one of them - is empty and the other is non-empty. - When namespace is specified - in dataSourceRef, dataSource - isn''t set to the same value - and must be empty. There are - three important differences - between dataSource and dataSourceRef: - * While dataSource only allows - two specific types of objects, - dataSourceRef allows any non-core - object, as well as PersistentVolumeClaim - objects. * While dataSource - ignores disallowed values (dropping - them), dataSourceRef preserves - all values, and generates an - error if a disallowed value - is specified. * While dataSource - only allows local objects, dataSourceRef - allows objects in any namespaces. - (Beta) Using this field requires - the AnyVolumeDataSource feature - gate to be enabled. (Alpha) - Using the namespace field of - dataSourceRef requires the CrossNamespaceVolumeDataSource - feature gate to be enabled.' properties: apiGroup: - description: APIGroup is the - group for the resource being - referenced. If APIGroup - is not specified, the specified - Kind must be in the core - API group. For any other - third-party types, APIGroup - is required. type: string kind: - description: Kind is the type - of resource being referenced type: string name: - description: Name is the name - of resource being referenced type: string namespace: - description: Namespace is - the namespace of resource - being referenced Note that - when a namespace is specified, - a gateway.networking.k8s.io/ReferenceGrant - object is required in the - referent namespace to allow - that namespace's owner to - accept the reference. See - the ReferenceGrant documentation - for details. (Alpha) This - field requires the CrossNamespaceVolumeDataSource - feature gate to be enabled. type: string required: - kind - name type: object resources: - description: 'resources represents - the minimum resources the volume - should have. If RecoverVolumeExpansionFailure - feature is enabled users are - allowed to specify resource - requirements that are lower - than previous value but must - still be higher than capacity - recorded in the status field - of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -11520,10 +4111,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes - the maximum amount of compute - resources allowed. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -11532,64 +4119,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes - the minimum amount of compute - resources required. If Requests - is omitted for a container, - it defaults to Limits if - that is explicitly specified, - otherwise to an implementation-defined - value. Requests cannot exceed - Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is a label - query over volumes to consider - for binding. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to a - set of values. Valid - operators are In, - NotIn, Exists and - DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, the - values array must - be non-empty. If the - operator is Exists - or DoesNotExist, the - values array must - be empty. This array - is replaced during - a strategic merge - patch. items: type: string type: array @@ -11603,100 +4144,30 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in - the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName - is the name of the StorageClass - required by the claim. More - info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName - may be used to set the VolumeAttributesClass - used by this claim. If specified, - the CSI driver will create or - update the volume with the attributes - defined in the corresponding - VolumeAttributesClass. This - has a different purpose than - storageClassName, it can be - changed after the claim is created. - An empty string value means - that no VolumeAttributesClass - will be applied to the claim - but it''s not allowed to reset - this field to empty string once - it is set. If unspecified and - the PersistentVolumeClaim is - unbound, the default VolumeAttributesClass - will be set by the persistentvolume - controller if it exists. If - the resource referred to by - volumeAttributesClass does not - exist, this PersistentVolumeClaim - will be set to a Pending state, - as reflected by the modifyVolumeStatus - field, until such as a resource - exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires - the VolumeAttributesClass feature - gate to be enabled.' type: string volumeMode: - description: volumeMode defines - what type of volume is required - by the claim. Value of Filesystem - is implied when not included - in claim spec. type: string volumeName: - description: volumeName is the - binding reference to the PersistentVolume - backing this claim. type: string type: object required: - spec type: object vsphereVolume: - description: vsphereVolume represents - a vSphere volume attached and mounted - on kubelets host machine properties: fsType: - description: fsType is filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" - if unspecified. type: string storagePolicyID: - description: storagePolicyID is the - storage Policy Based Management - (SPBM) profile ID associated with - the StoragePolicyName. type: string storagePolicyName: - description: storagePolicyName is - the storage Policy Based Management - (SPBM) profile name. type: string volumePath: - description: volumePath is the path - that identifies vSphere volume vmdk type: string required: - volumePath @@ -11705,175 +4176,49 @@ spec: type: object type: array name: - description: Name indicates to the name of the task type: string params: - description: Params specifies parameters for the - task. You must provide the parameter in the Addon - desired structure. type: object x-kubernetes-preserve-unknown-fields: true targetVolumes: - description: TargetVolumes specifies which volumes - from the target should be mounted in the backup/restore - job/container. properties: volumeClaimTemplates: - description: VolumeClaimTemplates specifies - a template for the PersistentVolumeClaims - that will be created for each Pod in a StatefulSet. items: - description: PersistentVolumeClaim is a user's - request for and claim to a persistent volume properties: apiVersion: - description: 'APIVersion defines the versioned - schema of this representation of an - object. Servers should convert recognized - schemas to the latest internal value, - and may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'Kind is a string value representing - the REST resource this object represents. - Servers may infer this from the endpoint - the client submits requests to. Cannot - be updated. In CamelCase. More info: - https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: - description: 'Standard object''s metadata. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata' properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured - key value map stored with a resource - that may be set by external tools - to store and retrieve arbitrary - metadata. They are not queryable - and should be preserved when modifying - objects. More info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName is an optional - prefix, used by the server, to generate - a unique name ONLY IF the Name field - has not been provided. If this field - is used, the name returned to the - client will be different than the - name passed. This value will also - be combined with a unique suffix. - The provided value has the same - validation rules as the Name field, - and may be truncated by the length - of the suffix required to make the - value unique on the server. \n If - this field is specified and the - generated name exists, the server - will NOT return a 409 - instead, - it will either return 201 Created - or 500 with Reason ServerTimeout - indicating a unique name could not - be found in the time allotted, and - the client should retry (optionally - after the time indicated in the - Retry-After header). \n Applied - only if Name is not specified. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string keys and - values that can be used to organize - and categorize (scope and select) - objects. May match selectors of - replication controllers and services. - More info: http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must be unique - within a namespace. Is required - when creating resources, although - some resources may allow a client - to request the generation of an - appropriate name automatically. - Name is primarily intended for creation - idempotence and configuration definition. - Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace defines the - space within each name must be unique. - An empty namespace is equivalent - to the \"default\" namespace, but - \"default\" is the canonical representation. - Not all objects are required to - be scoped to a namespace - the value - of this field for those objects - will be empty. \n Must be a DNS_LABEL. - Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects depended - by this object. If ALL objects in - the list have been deleted, this - object will be garbage collected. - If this object is managed by a controller, - then an entry in this list will - point to this controller, with the - controller field set to true. There - cannot be more than one managing - controller. items: - description: OwnerReference contains - enough information to let you - identify an owning object. An - owning object must be in the same - namespace as the dependent, or - be cluster-scoped, so there is - no namespace field. properties: apiVersion: - description: API version of - the referent. type: string blockOwnerDeletion: - description: If true, AND if - the owner has the "foregroundDeletion" - finalizer, then the owner - cannot be deleted from the - key-value store until this - reference is removed. See - https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage collector - interacts with this field - and enforces the foreground - deletion. Defaults to false. - To set this field, a user - needs "delete" permission - of the owner, otherwise 422 - (Unprocessable Entity) will - be returned. type: boolean controller: - description: If true, this reference - points to the managing controller. type: boolean kind: - description: 'Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -11885,53 +4230,19 @@ spec: type: array type: object spec: - description: 'Spec defines the desired - characteristics of a volume requested - by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: accessModes: - description: 'accessModes contains - the desired access modes the volume - should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource field can - be used to specify either: * An - existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an external - controller can support the specified - data source, it will create a new - volume based on the contents of - the specified data source. When - the AnyVolumeDataSource feature - gate is enabled, dataSource contents - will be copied to dataSourceRef, - and dataSourceRef contents will - be copied to dataSource when dataSourceRef.namespace - is not specified. If the namespace - is specified, then dataSourceRef - will not be copied to dataSource.' properties: apiGroup: - description: APIGroup is the group - for the resource being referenced. - If APIGroup is not specified, - the specified Kind must be in - the core API group. For any - other third-party types, APIGroup - is required. type: string kind: - description: Kind is the type - of resource being referenced type: string name: - description: Name is the name - of resource being referenced type: string required: - kind @@ -11939,93 +4250,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef specifies - the object from which to populate - the volume with data, if a non-empty - volume is desired. This may be any - object from a non-empty API group - (non core object) or a PersistentVolumeClaim - object. When this field is specified, - volume binding will only succeed - if the type of the specified object - matches some installed volume populator - or dynamic provisioner. This field - will replace the functionality of - the dataSource field and as such - if both fields are non-empty, they - must have the same value. For backwards - compatibility, when namespace isn''t - specified in dataSourceRef, both - fields (dataSource and dataSourceRef) - will be set to the same value automatically - if one of them is empty and the - other is non-empty. When namespace - is specified in dataSourceRef, dataSource - isn''t set to the same value and - must be empty. There are three important - differences between dataSource and - dataSourceRef: * While dataSource - only allows two specific types of - objects, dataSourceRef allows any - non-core object, as well as PersistentVolumeClaim - objects. * While dataSource ignores - disallowed values (dropping them), - dataSourceRef preserves all values, - and generates an error if a disallowed - value is specified. * While dataSource - only allows local objects, dataSourceRef - allows objects in any namespaces. - (Beta) Using this field requires - the AnyVolumeDataSource feature - gate to be enabled. (Alpha) Using - the namespace field of dataSourceRef - requires the CrossNamespaceVolumeDataSource - feature gate to be enabled.' properties: apiGroup: - description: APIGroup is the group - for the resource being referenced. - If APIGroup is not specified, - the specified Kind must be in - the core API group. For any - other third-party types, APIGroup - is required. type: string kind: - description: Kind is the type - of resource being referenced type: string name: - description: Name is the name - of resource being referenced type: string namespace: - description: Namespace is the - namespace of resource being - referenced Note that when a - namespace is specified, a gateway.networking.k8s.io/ReferenceGrant - object is required in the referent - namespace to allow that namespace's - owner to accept the reference. - See the ReferenceGrant documentation - for details. (Alpha) This field - requires the CrossNamespaceVolumeDataSource - feature gate to be enabled. type: string required: - kind - name type: object resources: - description: 'resources represents - the minimum resources the volume - should have. If RecoverVolumeExpansionFailure - feature is enabled users are allowed - to specify resource requirements - that are lower than previous value - but must still be higher than capacity - recorded in the status field of - the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -12034,10 +4272,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes - the maximum amount of compute - resources allowed. More info: - https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -12046,56 +4280,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes - the minimum amount of compute - resources required. If Requests - is omitted for a container, - it defaults to Limits if that - is explicitly specified, otherwise - to an implementation-defined - value. Requests cannot exceed - Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is a label query - over volumes to consider for binding. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a key, - and an operator that relates - the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator represents - a key's relationship to - a set of values. Valid - operators are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values is an - array of string values. - If the operator is In - or NotIn, the values array - must be non-empty. If - the operator is Exists - or DoesNotExist, the values - array must be empty. This - array is replaced during - a strategic merge patch. items: type: string type: array @@ -12109,141 +4305,28 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a - map of {key,value} pairs. A - single {key,value} in the matchLabels - map is equivalent to an element - of matchExpressions, whose key - field is "key", the operator - is "In", and the values array - contains only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName is - the name of the StorageClass required - by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName - may be used to set the VolumeAttributesClass - used by this claim. If specified, - the CSI driver will create or update - the volume with the attributes defined - in the corresponding VolumeAttributesClass. - This has a different purpose than - storageClassName, it can be changed - after the claim is created. An empty - string value means that no VolumeAttributesClass - will be applied to the claim but - it''s not allowed to reset this - field to empty string once it is - set. If unspecified and the PersistentVolumeClaim - is unbound, the default VolumeAttributesClass - will be set by the persistentvolume - controller if it exists. If the - resource referred to by volumeAttributesClass - does not exist, this PersistentVolumeClaim - will be set to a Pending state, - as reflected by the modifyVolumeStatus - field, until such as a resource - exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires - the VolumeAttributesClass feature - gate to be enabled.' type: string volumeMode: - description: volumeMode defines what - type of volume is required by the - claim. Value of Filesystem is implied - when not included in claim spec. type: string volumeName: - description: volumeName is the binding - reference to the PersistentVolume - backing this claim. type: string type: object status: - description: 'Status represents the current - information/status of a persistent volume - claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: accessModes: - description: 'accessModes contains - the actual access modes the volume - backing the PVC has. More info: - https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic allocatedResourceStatuses: additionalProperties: - description: When a controller receives - persistentvolume claim update - with ClaimResourceStatus for a - resource that it does not recognizes, - then it should ignore that update - and let other controllers handle - it. type: string - description: "allocatedResourceStatuses - stores status of resource being - resized for the given PVC. Key names - follow standard Kubernetes label - syntax. Valid values are either: - * Un-prefixed keys: - storage - - the capacity of the volume. * Custom - resources must use implementation-defined - prefixed names such as \"example.com/my-custom-resource\" - Apart from above values - keys that - are unprefixed or have kubernetes.io - prefix are considered reserved and - hence may not be used. \n ClaimResourceStatus - can be in any of following states: - - ControllerResizeInProgress: State - set when resize controller starts - resizing the volume in control-plane. - - ControllerResizeFailed: State - set when resize has failed in resize - controller with a terminal error. - - NodeResizePending: State set when - resize controller has finished resizing - the volume but further resizing - of volume is needed on the node. - - NodeResizeInProgress: State set - when kubelet starts resizing the - volume. - NodeResizeFailed: State - set when resizing has failed in - kubelet with a terminal error. Transient - errors don't set NodeResizeFailed. - For example: if expanding a PVC - for more capacity - this field can - be one of the following states: - - pvc.status.allocatedResourceStatus['storage'] - = \"ControllerResizeInProgress\" - - pvc.status.allocatedResourceStatus['storage'] - = \"ControllerResizeFailed\" - pvc.status.allocatedResourceStatus['storage'] - = \"NodeResizePending\" - pvc.status.allocatedResourceStatus['storage'] - = \"NodeResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] - = \"NodeResizeFailed\" When this - field is not set, it means that - no resize operation is in progress - for the given PVC. \n A controller - that receives PVC update with previously - unknown resourceName or ClaimResourceStatus - should ignore the update for the - purpose it was designed. For example - - a controller that only is responsible - for resizing capacity of the volume, - should ignore PVC updates that change - other valid resources associated - with PVC. \n This is an alpha field - and requires enabling RecoverVolumeExpansionFailure - feature." type: object x-kubernetes-map-type: granular allocatedResources: @@ -12253,44 +4336,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: "allocatedResources tracks - the resources allocated to a PVC - including its capacity. Key names - follow standard Kubernetes label - syntax. Valid values are either: - * Un-prefixed keys: - storage - - the capacity of the volume. * Custom - resources must use implementation-defined - prefixed names such as \"example.com/my-custom-resource\" - Apart from above values - keys that - are unprefixed or have kubernetes.io - prefix are considered reserved and - hence may not be used. \n Capacity - reported here may be larger than - the actual capacity when a volume - expansion operation is requested. - For storage quota, the larger value - from allocatedResources and PVC.spec.resources - is used. If allocatedResources is - not set, PVC.spec.resources alone - is used for quota calculation. If - a volume expansion capacity request - is lowered, allocatedResources is - only lowered if there are no expansion - operations in progress and if the - actual volume capacity is equal - or lower than the requested capacity. - \n A controller that receives PVC - update with previously unknown resourceName - should ignore the update for the - purpose it was designed. For example - - a controller that only is responsible - for resizing capacity of the volume, - should ignore PVC updates that change - other valid resources associated - with PVC. \n This is an alpha field - and requires enabling RecoverVolumeExpansionFailure - feature." type: object capacity: additionalProperties: @@ -12299,53 +4344,23 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: capacity represents the - actual resources of the underlying - volume. type: object conditions: - description: conditions is the current - Condition of persistent volume claim. - If underlying persistent volume - is being resized then the Condition - will be set to 'Resizing'. items: - description: PersistentVolumeClaimCondition - contains details about state of - pvc properties: lastProbeTime: - description: lastProbeTime is - the time we probed the condition. format: date-time type: string lastTransitionTime: - description: lastTransitionTime - is the time the condition - transitioned from one status - to another. format: date-time type: string message: - description: message is the - human-readable message indicating - details about last transition. type: string reason: - description: reason is a unique, - this should be a short, machine - understandable string that - gives the reason for condition's - last transition. If it reports - "Resizing" that means the - underlying persistent volume - is being resized. type: string status: type: string type: - description: PersistentVolumeClaimConditionType - is a valid value of PersistentVolumeClaimCondition.Type type: string required: - status @@ -12356,129 +4371,37 @@ spec: - type x-kubernetes-list-type: map currentVolumeAttributesClassName: - description: currentVolumeAttributesClassName - is the current name of the VolumeAttributesClass - the PVC is using. When unset, there - is no VolumeAttributeClass applied - to this PersistentVolumeClaim This - is an alpha field and requires enabling - VolumeAttributesClass feature. type: string modifyVolumeStatus: - description: ModifyVolumeStatus represents - the status object of ControllerModifyVolume - operation. When this is unset, there - is no ModifyVolume operation being - attempted. This is an alpha field - and requires enabling VolumeAttributesClass - feature. properties: status: - description: 'status is the status - of the ControllerModifyVolume - operation. It can be in any - of following states: - Pending - Pending indicates that the PersistentVolumeClaim - cannot be modified due to unmet - requirements, such as the specified - VolumeAttributesClass not existing. - - InProgress InProgress indicates - that the volume is being modified. - - Infeasible Infeasible indicates - that the request has been rejected - as invalid by the CSI driver. - To resolve the error, a valid - VolumeAttributesClass needs - to be specified. Note: New statuses - can be added in the future. - Consumers should check for unknown - statuses and fail appropriately.' type: string targetVolumeAttributesClassName: - description: targetVolumeAttributesClassName - is the name of the VolumeAttributesClass - the PVC currently being reconciled type: string required: - status type: object phase: - description: phase represents the - current phase of PersistentVolumeClaim. type: string type: object type: object type: array volumeMounts: - description: VolumeMounts specifies the mount - for the volumes specified in `Volumes` section items: - description: VolumeMount describes a mounting - of a Volume within a container. properties: mountPath: - description: Path within the container - at which the volume should be mounted. Must - not contain ':'. type: string mountPropagation: - description: mountPropagation determines - how mounts are propagated from the host - to container and the other way around. - When not set, MountPropagationNone is - used. This field is beta in 1.10. When - RecursiveReadOnly is set to IfPossible - or to Enabled, MountPropagation must - be None or unspecified (which defaults - to None). type: string name: - description: This must match the Name - of a Volume. type: string readOnly: - description: Mounted read-only if true, - read-write otherwise (false or unspecified). - Defaults to false. type: boolean recursiveReadOnly: - description: "RecursiveReadOnly specifies - whether read-only mounts should be handled - recursively. \n If ReadOnly is false, - this field has no meaning and must be - unspecified. \n If ReadOnly is true, - and this field is set to Disabled, the - mount is not made recursively read-only. - \ If this field is set to IfPossible, - the mount is made recursively read-only, - if it is supported by the container - runtime. If this field is set to Enabled, - the mount is made recursively read-only - if it is supported by the container - runtime, otherwise the pod will not - be started and an error will be generated - to indicate the reason. \n If this field - is set to IfPossible or Enabled, MountPropagation - must be set to None (or be unspecified, - which defaults to None). \n If this - field is not specified, it is treated - as an equivalent of Disabled." type: string subPath: - description: Path within the volume from - which the container's volume should - be mounted. Defaults to "" (volume's - root). type: string subPathExpr: - description: Expanded path within the - volume from which the container's volume - should be mounted. Behaves similarly - to SubPath but environment variable - references $(VAR_NAME) are expanded - using the container's environment. Defaults - to "" (volume's root). SubPathExpr and - SubPath are mutually exclusive. type: string required: - mountPath @@ -12486,309 +4409,109 @@ spec: type: object type: array volumes: - description: Volumes indicates the list of volumes - of targeted application that should be mounted - on the backup/restore job. items: - description: Volume represents a named volume - in a pod that may be accessed by any container - in the pod. properties: awsElasticBlockStore: - description: 'awsElasticBlockStore represents - an AWS Disk resource that is attached - to a kubelet''s host machine and then - exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' properties: fsType: - description: 'fsType is the filesystem - type of the volume that you want - to mount. Tip: Ensure that the filesystem - type is supported by the host operating - system. Examples: "ext4", "xfs", - "ntfs". Implicitly inferred to be - "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in - the filesystem from compromising - the machine' type: string partition: - description: 'partition is the partition - in the volume that you want to mount. - If omitted, the default is to mount - by volume name. Examples: For volume - /dev/sda1, you specify the partition - as "1". Similarly, the volume partition - for /dev/sda is "0" (or you can - leave the property empty).' format: int32 type: integer readOnly: - description: 'readOnly value true - will force the readOnly setting - in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: boolean volumeID: - description: 'volumeID is unique ID - of the persistent disk resource - in AWS (Amazon EBS volume). More - info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: string required: - volumeID type: object azureDisk: - description: azureDisk represents an Azure - Data Disk mount on the host and bind - mount to the pod. properties: cachingMode: - description: 'cachingMode is the Host - Caching mode: None, Read Only, Read - Write.' type: string diskName: - description: diskName is the Name - of the data disk in the blob storage type: string diskURI: - description: diskURI is the URI of - data disk in the blob storage type: string fsType: - description: fsType is Filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" - if unspecified. type: string kind: - description: 'kind expected values - are Shared: multiple blob disks - per storage account Dedicated: - single blob disk per storage account Managed: - azure managed data disk (only in - managed availability set). defaults - to shared' type: string readOnly: - description: readOnly Defaults to - false (read/write). ReadOnly here - will force the ReadOnly setting - in VolumeMounts. type: boolean required: - diskName - diskURI type: object azureFile: - description: azureFile represents an Azure - File Service mount on the host and bind - mount to the pod. properties: readOnly: - description: readOnly defaults to - false (read/write). ReadOnly here - will force the ReadOnly setting - in VolumeMounts. type: boolean secretName: - description: secretName is the name - of secret that contains Azure Storage - Account Name and Key type: string shareName: - description: shareName is the azure - share Name type: string required: - secretName - shareName type: object cephfs: - description: cephFS represents a Ceph - FS mount on the host that shares a pod's - lifetime properties: monitors: - description: 'monitors is Required: - Monitors is a collection of Ceph - monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic path: - description: 'path is Optional: Used - as the mounted root, rather than - the full Ceph tree, default is /' type: string readOnly: - description: 'readOnly is Optional: - Defaults to false (read/write). - ReadOnly here will force the ReadOnly - setting in VolumeMounts. More info: - https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: boolean secretFile: - description: 'secretFile is Optional: - SecretFile is the path to key ring - for User, default is /etc/ceph/user.secret - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string secretRef: - description: 'secretRef is Optional: - SecretRef is reference to the authentication - secret for User, default is empty. - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is optional: User - is the rados user name, default - is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string required: - monitors type: object cinder: - description: 'cinder represents a cinder - volume attached and mounted on kubelets - host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' properties: fsType: - description: 'fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Examples: "ext4", "xfs", - "ntfs". Implicitly inferred to be - "ext4" if unspecified. More info: - https://examples.k8s.io/mysql-cinder-pd/README.md' type: string readOnly: - description: 'readOnly defaults to - false (read/write). ReadOnly here - will force the ReadOnly setting - in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: boolean secretRef: - description: 'secretRef is optional: - points to a secret object containing - parameters used to connect to OpenStack.' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeID: - description: 'volumeID used to identify - the volume in cinder. More info: - https://examples.k8s.io/mysql-cinder-pd/README.md' type: string required: - volumeID type: object configMap: - description: configMap represents a configMap - that should populate this volume properties: defaultMode: - description: 'defaultMode is optional: - mode bits used to set permissions - on created files by default. Must - be an octal value between 0000 and - 0777 or a decimal value between - 0 and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. Defaults - to 0644. Directories within the - path are not affected by this setting. - This might be in conflict with other - options that affect the file mode, - like fsGroup, and the result can - be other mode bits set.' format: int32 type: integer items: - description: items if unspecified, - each key-value pair in the Data - field of the referenced ConfigMap - will be projected into the volume - as a file whose name is the key - and content is the value. If specified, - the listed keys will be projected - into the specified paths, and unlisted - keys will not be present. If a key - is specified which is not present - in the ConfigMap, the volume setup - will error unless it is marked optional. - Paths must be relative and may not - contain the '..' path or start with - '..'. items: - description: Maps a string key to - a path within a volume. properties: key: - description: key is the key - to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an octal - value between 0000 and 0777 - or a decimal value between - 0 and 511. YAML accepts both - octal and decimal values, - JSON requires decimal values - for mode bits. If not specified, - the volume defaultMode will - be used. This might be in - conflict with other options - that affect the file mode, - like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the - key to. May not be an absolute - path. May not contain the - path element '..'. May not - start with the string '..'. type: string required: - key @@ -12798,199 +4521,67 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether - the ConfigMap or its keys must be - defined type: boolean type: object x-kubernetes-map-type: atomic csi: - description: csi (Container Storage Interface) - represents ephemeral storage that is - handled by certain external CSI drivers - (Beta feature). properties: driver: - description: driver is the name of - the CSI driver that handles this - volume. Consult with your admin - for the correct name as registered - in the cluster. type: string fsType: - description: fsType to mount. Ex. - "ext4", "xfs", "ntfs". If not provided, - the empty value is passed to the - associated CSI driver which will - determine the default filesystem - to apply. type: string nodePublishSecretRef: - description: nodePublishSecretRef - is a reference to the secret object - containing sensitive information - to pass to the CSI driver to complete - the CSI NodePublishVolume and NodeUnpublishVolume - calls. This field is optional, and may - be empty if no secret is required. - If the secret object contains more - than one secret, all secret references - are passed. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic readOnly: - description: readOnly specifies a - read-only configuration for the - volume. Defaults to false (read/write). type: boolean volumeAttributes: additionalProperties: type: string - description: volumeAttributes stores - driver-specific properties that - are passed to the CSI driver. Consult - your driver's documentation for - supported values. type: object required: - driver type: object downwardAPI: - description: downwardAPI represents downward - API about the pod that should populate - this volume properties: defaultMode: - description: 'Optional: mode bits - to use on created files by default. - Must be a Optional: mode bits used - to set permissions on created files - by default. Must be an octal value - between 0000 and 0777 or a decimal - value between 0 and 511. YAML accepts - both octal and decimal values, JSON - requires decimal values for mode - bits. Defaults to 0644. Directories - within the path are not affected - by this setting. This might be in - conflict with other options that - affect the file mode, like fsGroup, - and the result can be other mode - bits set.' format: int32 type: integer items: - description: Items is a list of downward - API volume file items: - description: DownwardAPIVolumeFile - represents information to create - the file containing the pod field properties: fieldRef: - description: 'Required: Selects - a field of the pod: only annotations, - labels, name, namespace and - uid are supported.' properties: apiVersion: - description: Version of - the schema the FieldPath - is written in terms of, - defaults to "v1". type: string fieldPath: - description: Path of the - field to select in the - specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode - bits used to set permissions - on this file, must be an octal - value between 0000 and 0777 - or a decimal value between - 0 and 511. YAML accepts both - octal and decimal values, - JSON requires decimal values - for mode bits. If not specified, - the volume defaultMode will - be used. This might be in - conflict with other options - that affect the file mode, - like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: 'Required: Path - is the relative path name - of the file to be created. - Must not be absolute or contain - the ''..'' path. Must be utf-8 - encoded. The first item of - the relative path must not - start with ''..''' type: string resourceFieldRef: - description: 'Selects a resource - of the container: only resources - limits and requests (limits.cpu, - limits.memory, requests.cpu - and requests.memory) are currently - supported.' properties: containerName: - description: 'Container - name: required for volumes, - optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the - output format of the exposed - resources, defaults to - "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: - resource to select' type: string required: - resource @@ -13003,265 +4594,50 @@ spec: x-kubernetes-list-type: atomic type: object emptyDir: - description: 'emptyDir represents a temporary - directory that shares a pod''s lifetime. - More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' properties: medium: - description: 'medium represents what - type of storage medium should back - this directory. The default is "" - which means to use the node''s default - medium. Must be an empty string - (default) or Memory. More info: - https://kubernetes.io/docs/concepts/storage/volumes#emptydir' type: string sizeLimit: anyOf: - type: integer - type: string - description: 'sizeLimit is the total - amount of local storage required - for this EmptyDir volume. The size - limit is also applicable for memory - medium. The maximum usage on memory - medium EmptyDir would be the minimum - value between the SizeLimit specified - here and the sum of memory limits - of all containers in a pod. The - default is nil which means that - the limit is undefined. More info: - https://kubernetes.io/docs/concepts/storage/volumes#emptydir' pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object ephemeral: - description: "ephemeral represents a volume - that is handled by a cluster storage - driver. The volume's lifecycle is tied - to the pod that defines it - it will - be created before the pod starts, and - deleted when the pod is removed. \n - Use this if: a) the volume is only needed - while the pod runs, b) features of normal - volumes like restoring from snapshot - or capacity tracking are needed, c) - the storage driver is specified through - a storage class, and d) the storage - driver supports dynamic volume provisioning - through a PersistentVolumeClaim (see - EphemeralVolumeSource for more information - on the connection between this volume - type and PersistentVolumeClaim). \n - Use PersistentVolumeClaim or one of - the vendor-specific APIs for volumes - that persist for longer than the lifecycle - of an individual pod. \n Use CSI for - light-weight local ephemeral volumes - if the CSI driver is meant to be used - that way - see the documentation of - the driver for more information. \n - A pod can use both types of ephemeral - volumes and persistent volumes at the - same time." properties: volumeClaimTemplate: - description: "Will be used to create - a stand-alone PVC to provision the - volume. The pod in which this EphemeralVolumeSource - is embedded will be the owner of - the PVC, i.e. the PVC will be deleted - together with the pod. The name - of the PVC will be `-` where `` is - the name from the `PodSpec.Volumes` - array entry. Pod validation will - reject the pod if the concatenated - name is not valid for a PVC (for - example, too long). \n An existing - PVC with that name that is not owned - by the pod will *not* be used for - the pod to avoid using an unrelated - volume by mistake. Starting the - pod is then blocked until the unrelated - PVC is removed. If such a pre-created - PVC is meant to be used by the pod, - the PVC has to updated with an owner - reference to the pod once the pod - exists. Normally this should not - be necessary, but it may be useful - when manually reconstructing a broken - cluster. \n This field is read-only - and no changes will be made by Kubernetes - to the PVC after it has been created. - \n Required, must not be nil." properties: metadata: - description: May contain labels - and annotations that will be - copied into the PVC when creating - it. No other fields are allowed - and will be rejected during - validation. properties: annotations: additionalProperties: type: string - description: 'Annotations - is an unstructured key value - map stored with a resource - that may be set by external - tools to store and retrieve - arbitrary metadata. They - are not queryable and should - be preserved when modifying - objects. More info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName - is an optional prefix, used - by the server, to generate - a unique name ONLY IF the - Name field has not been - provided. If this field - is used, the name returned - to the client will be different - than the name passed. This - value will also be combined - with a unique suffix. The - provided value has the same - validation rules as the - Name field, and may be truncated - by the length of the suffix - required to make the value - unique on the server. \n - If this field is specified - and the generated name exists, - the server will NOT return - a 409 - instead, it will - either return 201 Created - or 500 with Reason ServerTimeout - indicating a unique name - could not be found in the - time allotted, and the client - should retry (optionally - after the time indicated - in the Retry-After header). - \n Applied only if Name - is not specified. More info: - https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string - keys and values that can - be used to organize and - categorize (scope and select) - objects. May match selectors - of replication controllers - and services. More info: - http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must be - unique within a namespace. - Is required when creating - resources, although some - resources may allow a client - to request the generation - of an appropriate name automatically. - Name is primarily intended - for creation idempotence - and configuration definition. - Cannot be updated. More - info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace defines - the space within each name - must be unique. An empty - namespace is equivalent - to the \"default\" namespace, - but \"default\" is the canonical - representation. Not all - objects are required to - be scoped to a namespace - - the value of this field - for those objects will be - empty. \n Must be a DNS_LABEL. - Cannot be updated. More - info: http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects - depended by this object. - If ALL objects in the list - have been deleted, this - object will be garbage collected. - If this object is managed - by a controller, then an - entry in this list will - point to this controller, - with the controller field - set to true. There cannot - be more than one managing - controller. items: - description: OwnerReference - contains enough information - to let you identify an - owning object. An owning - object must be in the - same namespace as the - dependent, or be cluster-scoped, - so there is no namespace - field. properties: apiVersion: - description: API version - of the referent. type: string blockOwnerDeletion: - description: If true, - AND if the owner has - the "foregroundDeletion" - finalizer, then the - owner cannot be deleted - from the key-value - store until this reference - is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage - collector interacts - with this field and - enforces the foreground - deletion. Defaults - to false. To set this - field, a user needs - "delete" permission - of the owner, otherwise - 422 (Unprocessable - Entity) will be returned. type: boolean controller: - description: If true, - this reference points - to the managing controller. type: boolean kind: - description: 'Kind of - the referent. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of - the referent. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of - the referent. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -13273,66 +4649,19 @@ spec: type: array type: object spec: - description: The specification - for the PersistentVolumeClaim. - The entire content is copied - unchanged into the PVC that - gets created from this template. - The same fields as in a PersistentVolumeClaim - are also valid here. properties: accessModes: - description: 'accessModes - contains the desired access - modes the volume should - have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource field - can be used to specify either: - * An existing VolumeSnapshot - object (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an - external controller can - support the specified data - source, it will create a - new volume based on the - contents of the specified - data source. When the AnyVolumeDataSource - feature gate is enabled, - dataSource contents will - be copied to dataSourceRef, - and dataSourceRef contents - will be copied to dataSource - when dataSourceRef.namespace - is not specified. If the - namespace is specified, - then dataSourceRef will - not be copied to dataSource.' properties: apiGroup: - description: APIGroup - is the group for the - resource being referenced. - If APIGroup is not specified, - the specified Kind must - be in the core API group. - For any other third-party - types, APIGroup is required. type: string kind: - description: Kind is the - type of resource being - referenced type: string name: - description: Name is the - name of resource being - referenced type: string required: - kind @@ -13340,114 +4669,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef - specifies the object from - which to populate the volume - with data, if a non-empty - volume is desired. This - may be any object from a - non-empty API group (non - core object) or a PersistentVolumeClaim - object. When this field - is specified, volume binding - will only succeed if the - type of the specified object - matches some installed volume - populator or dynamic provisioner. - This field will replace - the functionality of the - dataSource field and as - such if both fields are - non-empty, they must have - the same value. For backwards - compatibility, when namespace - isn''t specified in dataSourceRef, - both fields (dataSource - and dataSourceRef) will - be set to the same value - automatically if one of - them is empty and the other - is non-empty. When namespace - is specified in dataSourceRef, - dataSource isn''t set to - the same value and must - be empty. There are three - important differences between - dataSource and dataSourceRef: - * While dataSource only - allows two specific types - of objects, dataSourceRef - allows any non-core object, - as well as PersistentVolumeClaim - objects. * While dataSource - ignores disallowed values - (dropping them), dataSourceRef - preserves all values, and - generates an error if a - disallowed value is specified. - * While dataSource only - allows local objects, dataSourceRef - allows objects in any namespaces. - (Beta) Using this field - requires the AnyVolumeDataSource - feature gate to be enabled. - (Alpha) Using the namespace - field of dataSourceRef requires - the CrossNamespaceVolumeDataSource - feature gate to be enabled.' properties: apiGroup: - description: APIGroup - is the group for the - resource being referenced. - If APIGroup is not specified, - the specified Kind must - be in the core API group. - For any other third-party - types, APIGroup is required. type: string kind: - description: Kind is the - type of resource being - referenced type: string name: - description: Name is the - name of resource being - referenced type: string namespace: - description: Namespace - is the namespace of - resource being referenced - Note that when a namespace - is specified, a gateway.networking.k8s.io/ReferenceGrant - object is required in - the referent namespace - to allow that namespace's - owner to accept the - reference. See the ReferenceGrant - documentation for details. - (Alpha) This field requires - the CrossNamespaceVolumeDataSource - feature gate to be enabled. type: string required: - kind - name type: object resources: - description: 'resources represents - the minimum resources the - volume should have. If RecoverVolumeExpansionFailure - feature is enabled users - are allowed to specify resource - requirements that are lower - than previous value but - must still be higher than - capacity recorded in the - status field of the claim. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -13456,10 +4691,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes - the maximum amount of - compute resources allowed. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -13468,70 +4699,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests - describes the minimum - amount of compute resources - required. If Requests - is omitted for a container, - it defaults to Limits - if that is explicitly - specified, otherwise - to an implementation-defined - value. Requests cannot - exceed Limits. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is a - label query over volumes - to consider for binding. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: key - is the label key - that the selector - applies to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values - is an array of - string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -13545,74 +4724,16 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an - element of matchExpressions, - whose key field is "key", - the operator is "In", - and the values array - contains only "value". - The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName - is the name of the StorageClass - required by the claim. More - info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName - may be used to set the VolumeAttributesClass - used by this claim. If specified, - the CSI driver will create - or update the volume with - the attributes defined in - the corresponding VolumeAttributesClass. - This has a different purpose - than storageClassName, it - can be changed after the - claim is created. An empty - string value means that - no VolumeAttributesClass - will be applied to the claim - but it''s not allowed to - reset this field to empty - string once it is set. If - unspecified and the PersistentVolumeClaim - is unbound, the default - VolumeAttributesClass will - be set by the persistentvolume - controller if it exists. - If the resource referred - to by volumeAttributesClass - does not exist, this PersistentVolumeClaim - will be set to a Pending - state, as reflected by the - modifyVolumeStatus field, - until such as a resource - exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field - requires the VolumeAttributesClass - feature gate to be enabled.' type: string volumeMode: - description: volumeMode defines - what type of volume is required - by the claim. Value of Filesystem - is implied when not included - in claim spec. type: string volumeName: - description: volumeName is - the binding reference to - the PersistentVolume backing - this claim. type: string type: object required: @@ -13620,105 +4741,41 @@ spec: type: object type: object fc: - description: fc represents a Fibre Channel - resource that is attached to a kubelet's - host machine and then exposed to the - pod. properties: fsType: - description: 'fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" - if unspecified. TODO: how do we - prevent errors in the filesystem - from compromising the machine' type: string lun: - description: 'lun is Optional: FC - target lun number' format: int32 type: integer readOnly: - description: 'readOnly is Optional: - Defaults to false (read/write). - ReadOnly here will force the ReadOnly - setting in VolumeMounts.' type: boolean targetWWNs: - description: 'targetWWNs is Optional: - FC target worldwide names (WWNs)' items: type: string type: array x-kubernetes-list-type: atomic wwids: - description: 'wwids Optional: FC volume - world wide identifiers (wwids) Either - wwids or combination of targetWWNs - and lun must be set, but not both - simultaneously.' items: type: string type: array x-kubernetes-list-type: atomic type: object flexVolume: - description: flexVolume represents a generic - volume resource that is provisioned/attached - using an exec based plugin. properties: driver: - description: driver is the name of - the driver to use for this volume. type: string fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - The default filesystem depends on - FlexVolume script. type: string options: additionalProperties: type: string - description: 'options is Optional: - this field holds extra command options - if any.' type: object readOnly: - description: 'readOnly is Optional: - defaults to false (read/write). - ReadOnly here will force the ReadOnly - setting in VolumeMounts.' type: boolean secretRef: - description: 'secretRef is Optional: - secretRef is reference to the secret - object containing sensitive information - to pass to the plugin scripts. This - may be empty if no secret object - is specified. If the secret object - contains more than one secret, all - secrets are passed to the plugin - scripts.' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic @@ -13726,214 +4783,79 @@ spec: - driver type: object flocker: - description: flocker represents a Flocker - volume attached to a kubelet's host - machine. This depends on the Flocker - control service being running properties: datasetName: - description: datasetName is Name of - the dataset stored as metadata -> - name on the dataset for Flocker - should be considered as deprecated type: string datasetUUID: - description: datasetUUID is the UUID - of the dataset. This is unique identifier - of a Flocker dataset type: string type: object gcePersistentDisk: - description: 'gcePersistentDisk represents - a GCE Disk resource that is attached - to a kubelet''s host machine and then - exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' properties: fsType: - description: 'fsType is filesystem - type of the volume that you want - to mount. Tip: Ensure that the filesystem - type is supported by the host operating - system. Examples: "ext4", "xfs", - "ntfs". Implicitly inferred to be - "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in - the filesystem from compromising - the machine' type: string partition: - description: 'partition is the partition - in the volume that you want to mount. - If omitted, the default is to mount - by volume name. Examples: For volume - /dev/sda1, you specify the partition - as "1". Similarly, the volume partition - for /dev/sda is "0" (or you can - leave the property empty). More - info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' format: int32 type: integer pdName: - description: 'pdName is unique name - of the PD resource in GCE. Used - to identify the disk in GCE. More - info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: string readOnly: - description: 'readOnly here will force - the ReadOnly setting in VolumeMounts. - Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: boolean required: - pdName type: object glusterfs: - description: 'glusterfs represents a Glusterfs - mount on the host that shares a pod''s - lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md' properties: endpoints: - description: 'endpoints is the endpoint - name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string path: - description: 'path is the Glusterfs - volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string readOnly: - description: 'readOnly here will force - the Glusterfs volume to be mounted - with read-only permissions. Defaults - to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: boolean required: - endpoints - path type: object hostPath: - description: 'hostPath represents a pre-existing - file or directory on the host machine - that is directly exposed to the container. - This is generally used for system agents - or other privileged things that are - allowed to see the host machine. Most - containers will NOT need this. More - info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- TODO(jonesdl) We need to restrict - who can use host directory mounts and - who can/can not mount host directories - as read/write.' properties: path: - description: 'path of the directory - on the host. If the path is a symlink, - it will follow the link to the real - path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string type: - description: 'type for HostPath Volume - Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string required: - path type: object iscsi: - description: 'iscsi represents an ISCSI - Disk resource that is attached to a - kubelet''s host machine and then exposed - to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md' properties: chapAuthDiscovery: - description: chapAuthDiscovery defines - whether support iSCSI Discovery - CHAP authentication type: boolean chapAuthSession: - description: chapAuthSession defines - whether support iSCSI Session CHAP - authentication type: boolean fsType: - description: 'fsType is the filesystem - type of the volume that you want - to mount. Tip: Ensure that the filesystem - type is supported by the host operating - system. Examples: "ext4", "xfs", - "ntfs". Implicitly inferred to be - "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in - the filesystem from compromising - the machine' type: string initiatorName: - description: initiatorName is the - custom iSCSI Initiator Name. If - initiatorName is specified with - iscsiInterface simultaneously, new - iSCSI interface : will be created for the connection. type: string iqn: - description: iqn is the target iSCSI - Qualified Name. type: string iscsiInterface: - description: iscsiInterface is the - interface Name that uses an iSCSI - transport. Defaults to 'default' - (tcp). type: string lun: - description: lun represents iSCSI - Target Lun number. format: int32 type: integer portals: - description: portals is the iSCSI - Target Portal List. The portal is - either an IP or ip_addr:port if - the port is other than default (typically - TCP ports 860 and 3260). items: type: string type: array x-kubernetes-list-type: atomic readOnly: - description: readOnly here will force - the ReadOnly setting in VolumeMounts. - Defaults to false. type: boolean secretRef: - description: secretRef is the CHAP - Secret for iSCSI target and initiator - authentication properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic targetPortal: - description: targetPortal is iSCSI - Target Portal. The Portal is either - an IP or ip_addr:port if the port - is other than default (typically - TCP ports 860 and 3260). type: string required: - iqn @@ -13941,214 +4863,68 @@ spec: - targetPortal type: object name: - description: 'name of the volume. Must - be a DNS_LABEL and unique within the - pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string nfs: - description: 'nfs represents an NFS mount - on the host that shares a pod''s lifetime - More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' properties: path: - description: 'path that is exported - by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string readOnly: - description: 'readOnly here will force - the NFS export to be mounted with - read-only permissions. Defaults - to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: boolean server: - description: 'server is the hostname - or IP address of the NFS server. - More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string required: - path - server type: object persistentVolumeClaim: - description: 'persistentVolumeClaimVolumeSource - represents a reference to a PersistentVolumeClaim - in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: claimName: - description: 'claimName is the name - of a PersistentVolumeClaim in the - same namespace as the pod using - this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' type: string readOnly: - description: readOnly Will force the - ReadOnly setting in VolumeMounts. - Default false. type: boolean required: - claimName type: object photonPersistentDisk: - description: photonPersistentDisk represents - a PhotonController persistent disk attached - and mounted on kubelets host machine properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" - if unspecified. type: string pdID: - description: pdID is the ID that identifies - Photon Controller persistent disk type: string required: - pdID type: object portworxVolume: - description: portworxVolume represents - a portworx volume attached and mounted - on kubelets host machine properties: fsType: - description: fSType represents the - filesystem type to mount Must be - a filesystem type supported by the - host operating system. Ex. "ext4", - "xfs". Implicitly inferred to be - "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to - false (read/write). ReadOnly here - will force the ReadOnly setting - in VolumeMounts. type: boolean volumeID: - description: volumeID uniquely identifies - a Portworx volume type: string required: - volumeID type: object projected: - description: projected items for all in - one resources secrets, configmaps, and - downward API properties: defaultMode: - description: defaultMode are the mode - bits used to set permissions on - created files by default. Must be - an octal value between 0000 and - 0777 or a decimal value between - 0 and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. Directories - within the path are not affected - by this setting. This might be in - conflict with other options that - affect the file mode, like fsGroup, - and the result can be other mode - bits set. format: int32 type: integer sources: - description: sources is the list of - volume projections items: - description: Projection that may - be projected along with other - supported volume types properties: clusterTrustBundle: - description: "ClusterTrustBundle - allows a pod to access the - `.spec.trustBundle` field - of ClusterTrustBundle objects - in an auto-updating file. - \n Alpha, gated by the ClusterTrustBundleProjection - feature gate. \n ClusterTrustBundle - objects can either be selected - by name, or by the combination - of signer name and a label - selector. \n Kubelet performs - aggressive normalization of - the PEM contents written into - the pod filesystem. Esoteric - PEM features such as inter-block - comments and block headers - are stripped. Certificates - are deduplicated. The ordering - of certificates within the - file is arbitrary, and Kubelet - may change the order over - time." properties: labelSelector: - description: Select all - ClusterTrustBundles that - match this label selector. Only - has effect if signerName - is set. Mutually-exclusive - with name. If unset, - interpreted as "match - nothing". If set but - empty, interpreted as - "match everything". properties: matchExpressions: - description: matchExpressions - is a list of label - selector requirements. - The requirements are - ANDed. items: - description: A label - selector requirement - is a selector that - contains values, - a key, and an operator - that relates the - key and values. properties: key: - description: key - is the label - key that the - selector applies - to. type: string operator: - description: operator - represents a - key's relationship - to a set of - values. Valid - operators are - In, NotIn, Exists - and DoesNotExist. type: string values: - description: values - is an array - of string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or - DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic - merge patch. items: type: string type: array @@ -14162,131 +4938,31 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels - map is equivalent - to an element of matchExpressions, - whose key field is - "key", the operator - is "In", and the values - array contains only - "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic name: - description: Select a single - ClusterTrustBundle by - object name. Mutually-exclusive - with signerName and labelSelector. type: string optional: - description: If true, don't - block pod startup if the - referenced ClusterTrustBundle(s) - aren't available. If - using name, then the named - ClusterTrustBundle is - allowed not to exist. If - using signerName, then - the combination of signerName - and labelSelector is allowed - to match zero ClusterTrustBundles. type: boolean path: - description: Relative path - from the volume root to - write the bundle. type: string signerName: - description: Select all - ClusterTrustBundles that - match this signer name. - Mutually-exclusive with - name. The contents of - all selected ClusterTrustBundles - will be unified and deduplicated. type: string required: - path type: object configMap: - description: configMap information - about the configMap data to - project properties: items: - description: items if unspecified, - each key-value pair in - the Data field of the - referenced ConfigMap will - be projected into the - volume as a file whose - name is the key and content - is the value. If specified, - the listed keys will be - projected into the specified - paths, and unlisted keys - will not be present. If - a key is specified which - is not present in the - ConfigMap, the volume - setup will error unless - it is marked optional. - Paths must be relative - and may not contain the - '..' path or start with - '..'. items: - description: Maps a string - key to a path within - a volume. properties: key: - description: key is - the key to project. type: string mode: - description: 'mode - is Optional: mode - bits used to set - permissions on this - file. Must be an - octal value between - 0000 and 0777 or - a decimal value - between 0 and 511. - YAML accepts both - octal and decimal - values, JSON requires - decimal values for - mode bits. If not - specified, the volume - defaultMode will - be used. This might - be in conflict with - other options that - affect the file - mode, like fsGroup, - and the result can - be other mode bits - set.' format: int32 type: integer path: - description: path - is the relative - path of the file - to map the key to. - May not be an absolute - path. May not contain - the path element - '..'. May not start - with the string - '..'. type: string required: - key @@ -14296,141 +4972,42 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the - referent. This field is - effectively required, - but due to backwards compatibility - is allowed to be empty. - Instances of this type - with an empty value here - are almost certainly wrong. - TODO: Add other useful - fields. apiVersion, kind, - uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify - whether the ConfigMap - or its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic downwardAPI: - description: downwardAPI information - about the downwardAPI data - to project properties: items: - description: Items is a - list of DownwardAPIVolume - file items: - description: DownwardAPIVolumeFile - represents information - to create the file containing - the pod field properties: fieldRef: - description: 'Required: - Selects a field - of the pod: only - annotations, labels, - name, namespace - and uid are supported.' properties: apiVersion: - description: Version - of the schema - the FieldPath - is written in - terms of, defaults - to "v1". type: string fieldPath: - description: Path - of the field - to select in - the specified - API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: - mode bits used to - set permissions - on this file, must - be an octal value - between 0000 and - 0777 or a decimal - value between 0 - and 511. YAML accepts - both octal and decimal - values, JSON requires - decimal values for - mode bits. If not - specified, the volume - defaultMode will - be used. This might - be in conflict with - other options that - affect the file - mode, like fsGroup, - and the result can - be other mode bits - set.' format: int32 type: integer path: - description: 'Required: - Path is the relative - path name of the - file to be created. - Must not be absolute - or contain the ''..'' - path. Must be utf-8 - encoded. The first - item of the relative - path must not start - with ''..''' type: string resourceFieldRef: - description: 'Selects - a resource of the - container: only - resources limits - and requests (limits.cpu, - limits.memory, requests.cpu - and requests.memory) - are currently supported.' properties: containerName: - description: 'Container - name: required - for volumes, - optional for - env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies - the output format - of the exposed - resources, defaults - to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: - resource to - select' type: string required: - resource @@ -14443,77 +5020,16 @@ spec: x-kubernetes-list-type: atomic type: object secret: - description: secret information - about the secret data to project properties: items: - description: items if unspecified, - each key-value pair in - the Data field of the - referenced Secret will - be projected into the - volume as a file whose - name is the key and content - is the value. If specified, - the listed keys will be - projected into the specified - paths, and unlisted keys - will not be present. If - a key is specified which - is not present in the - Secret, the volume setup - will error unless it is - marked optional. Paths - must be relative and may - not contain the '..' path - or start with '..'. items: - description: Maps a string - key to a path within - a volume. properties: key: - description: key is - the key to project. type: string mode: - description: 'mode - is Optional: mode - bits used to set - permissions on this - file. Must be an - octal value between - 0000 and 0777 or - a decimal value - between 0 and 511. - YAML accepts both - octal and decimal - values, JSON requires - decimal values for - mode bits. If not - specified, the volume - defaultMode will - be used. This might - be in conflict with - other options that - affect the file - mode, like fsGroup, - and the result can - be other mode bits - set.' format: int32 type: integer path: - description: path - is the relative - path of the file - to map the key to. - May not be an absolute - path. May not contain - the path element - '..'. May not start - with the string - '..'. type: string required: - key @@ -14523,71 +5039,19 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the - referent. This field is - effectively required, - but due to backwards compatibility - is allowed to be empty. - Instances of this type - with an empty value here - are almost certainly wrong. - TODO: Add other useful - fields. apiVersion, kind, - uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional field - specify whether the Secret - or its key must be defined type: boolean type: object x-kubernetes-map-type: atomic serviceAccountToken: - description: serviceAccountToken - is information about the serviceAccountToken - data to project properties: audience: - description: audience is - the intended audience - of the token. A recipient - of a token must identify - itself with an identifier - specified in the audience - of the token, and otherwise - should reject the token. - The audience defaults - to the identifier of the - apiserver. type: string expirationSeconds: - description: expirationSeconds - is the requested duration - of validity of the service - account token. As the - token approaches expiration, - the kubelet volume plugin - will proactively rotate - the service account token. - The kubelet will start - trying to rotate the token - if the token is older - than 80 percent of its - time to live or if the - token is older than 24 - hours.Defaults to 1 hour - and must be at least 10 - minutes. format: int64 type: integer path: - description: path is the - path relative to the mount - point of the file to project - the token into. type: string required: - path @@ -14597,202 +5061,79 @@ spec: x-kubernetes-list-type: atomic type: object quobyte: - description: quobyte represents a Quobyte - mount on the host that shares a pod's - lifetime properties: group: - description: group to map volume access - to Default is no group type: string readOnly: - description: readOnly here will force - the Quobyte volume to be mounted - with read-only permissions. Defaults - to false. type: boolean registry: - description: registry represents a - single or multiple Quobyte Registry - services specified as a string as - host:port pair (multiple entries - are separated with commas) which - acts as the central registry for - volumes type: string tenant: - description: tenant owning the given - Quobyte volume in the Backend Used - with dynamically provisioned Quobyte - volumes, value is set by the plugin type: string user: - description: user to map volume access - to Defaults to serivceaccount user type: string volume: - description: volume is a string that - references an already created Quobyte - volume by name. type: string required: - registry - volume type: object rbd: - description: 'rbd represents a Rados Block - Device mount on the host that shares - a pod''s lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md' properties: fsType: - description: 'fsType is the filesystem - type of the volume that you want - to mount. Tip: Ensure that the filesystem - type is supported by the host operating - system. Examples: "ext4", "xfs", - "ntfs". Implicitly inferred to be - "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in - the filesystem from compromising - the machine' type: string image: - description: 'image is the rados image - name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string keyring: - description: 'keyring is the path - to key ring for RBDUser. Default - is /etc/ceph/keyring. More info: - https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string monitors: - description: 'monitors is a collection - of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic pool: - description: 'pool is the rados pool - name. Default is rbd. More info: - https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string readOnly: - description: 'readOnly here will force - the ReadOnly setting in VolumeMounts. - Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: boolean secretRef: - description: 'secretRef is name of - the authentication secret for RBDUser. - If provided overrides keyring. Default - is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is the rados user - name. Default is admin. More info: - https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string required: - image - monitors type: object scaleIO: - description: scaleIO represents a ScaleIO - persistent volume attached and mounted - on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Default is "xfs". type: string gateway: - description: gateway is the host address - of the ScaleIO API Gateway. type: string protectionDomain: - description: protectionDomain is the - name of the ScaleIO Protection Domain - for the configured storage. type: string readOnly: - description: readOnly Defaults to - false (read/write). ReadOnly here - will force the ReadOnly setting - in VolumeMounts. type: boolean secretRef: - description: secretRef references - to the secret for ScaleIO user and - other sensitive information. If - this is not provided, Login operation - will fail. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic sslEnabled: - description: sslEnabled Flag enable/disable - SSL communication with Gateway, - default false type: boolean storageMode: - description: storageMode indicates - whether the storage for a volume - should be ThickProvisioned or ThinProvisioned. - Default is ThinProvisioned. type: string storagePool: - description: storagePool is the ScaleIO - Storage Pool associated with the - protection domain. type: string system: - description: system is the name of - the storage system as configured - in ScaleIO. type: string volumeName: - description: volumeName is the name - of a volume already created in the - ScaleIO system that is associated - with this volume source. type: string required: - gateway @@ -14800,76 +5141,19 @@ spec: - system type: object secret: - description: 'secret represents a secret - that should populate this volume. More - info: https://kubernetes.io/docs/concepts/storage/volumes#secret' properties: defaultMode: - description: 'defaultMode is Optional: - mode bits used to set permissions - on created files by default. Must - be an octal value between 0000 and - 0777 or a decimal value between - 0 and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. Defaults - to 0644. Directories within the - path are not affected by this setting. - This might be in conflict with other - options that affect the file mode, - like fsGroup, and the result can - be other mode bits set.' format: int32 type: integer items: - description: items If unspecified, - each key-value pair in the Data - field of the referenced Secret will - be projected into the volume as - a file whose name is the key and - content is the value. If specified, - the listed keys will be projected - into the specified paths, and unlisted - keys will not be present. If a key - is specified which is not present - in the Secret, the volume setup - will error unless it is marked optional. - Paths must be relative and may not - contain the '..' path or start with - '..'. items: - description: Maps a string key to - a path within a volume. properties: key: - description: key is the key - to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an octal - value between 0000 and 0777 - or a decimal value between - 0 and 511. YAML accepts both - octal and decimal values, - JSON requires decimal values - for mode bits. If not specified, - the volume defaultMode will - be used. This might be in - conflict with other options - that affect the file mode, - like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the - key to. May not be an absolute - path. May not contain the - path element '..'. May not - start with the string '..'. type: string required: - key @@ -14878,107 +5162,37 @@ spec: type: array x-kubernetes-list-type: atomic optional: - description: optional field specify - whether the Secret or its keys must - be defined type: boolean secretName: - description: 'secretName is the name - of the secret in the pod''s namespace - to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' type: string type: object storageos: - description: storageOS represents a StorageOS - volume attached and mounted on Kubernetes - nodes. properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" - if unspecified. type: string readOnly: - description: readOnly defaults to - false (read/write). ReadOnly here - will force the ReadOnly setting - in VolumeMounts. type: boolean secretRef: - description: secretRef specifies the - secret to use for obtaining the - StorageOS API credentials. If not - specified, default values will be - attempted. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeName: - description: volumeName is the human-readable - name of the StorageOS volume. Volume - names are only unique within a namespace. type: string volumeNamespace: - description: volumeNamespace specifies - the scope of the volume within StorageOS. If - no namespace is specified then the - Pod's namespace will be used. This - allows the Kubernetes name scoping - to be mirrored within StorageOS - for tighter integration. Set VolumeName - to any name to override the default - behaviour. Set to "default" if you - are not using namespaces within - StorageOS. Namespaces that do not - pre-exist within StorageOS will - be created. type: string type: object vsphereVolume: - description: vsphereVolume represents - a vSphere volume attached and mounted - on kubelets host machine properties: fsType: - description: fsType is filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" - if unspecified. type: string storagePolicyID: - description: storagePolicyID is the - storage Policy Based Management - (SPBM) profile ID associated with - the StoragePolicyName. type: string storagePolicyName: - description: storagePolicyName is - the storage Policy Based Management - (SPBM) profile name. type: string volumePath: - description: volumePath is the path - that identifies vSphere volume vmdk type: string required: - volumePath @@ -14989,138 +5203,61 @@ spec: type: array type: object variables: - description: Variables specifies a list of variables - and their sources that will be used to resolve - the task. items: - description: EnvVar represents an environment - variable present in a Container. properties: name: - description: Name of the environment variable. - Must be a C_IDENTIFIER. type: string value: - description: 'Variable references $(VAR_NAME) - are expanded using the previously defined - environment variables in the container and - any service environment variables. If a - variable cannot be resolved, the reference - in the input string will be unchanged. Double - $$ are reduced to a single $, which allows - for escaping the $(VAR_NAME) syntax: i.e. - "$$(VAR_NAME)" will produce the string literal - "$(VAR_NAME)". Escaped references will never - be expanded, regardless of whether the variable - exists or not. Defaults to "".' type: string valueFrom: - description: Source for the environment variable's - value. Cannot be used if value is not empty. properties: configMapKeyRef: - description: Selects a key of a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap - or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field of the pod: - supports metadata.name, metadata.namespace, - `metadata.labels['''']`, `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, - status.hostIP, status.podIP, status.podIPs.' properties: apiVersion: - description: Version of the schema - the FieldPath is written in terms - of, defaults to "v1". type: string fieldPath: - description: Path of the field to - select in the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource of the - container: only resources limits and - requests (limits.cpu, limits.memory, - limits.ephemeral-storage, requests.cpu, - requests.memory and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: required - for volumes, optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource to - select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret - in the pod's namespace properties: key: - description: The key of the secret - to select from. Must be a valid - secret key. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret - or its key must be defined type: boolean required: - key @@ -15135,230 +5272,97 @@ spec: type: array type: object backupTimeout: - description: BackupTimeout specifies the maximum duration - of backup. Backup will be considered Failed if backup tasks - do not complete within this time limit. By default, KubeStash - don't set any timeout for backup. type: string hooks: - description: Hooks specifies the backup hooks that should - be executed before and/or after the backup. properties: postBackup: - description: PostBackup specifies a list of hooks that - will be executed after backup items: - description: HookInfo specifies the information about - the backup/restore hooks properties: executionPolicy: default: Always - description: 'ExecutionPolicy specifies when to - execute the hook. Valid values are: - "Always": - KubeStash will execute this hook no matter the - backup/restore failed. This is the default execution - policy. - "OnSuccess": KubeStash will execute - this hook only if the backup/restore has succeeded. - - "OnFailure": KubeStash will execute this hook - only if the backup/restore has failed.' enum: - Always - OnSuccess - OnFailure type: string hookTemplate: - description: HookTemplate points to a HookTemplate - CR that will be used to execute the hook. You - can refer to a HookTemplate from other namespaces - as long as your current namespace is allowed by - the `usagePolicy` in the respective HookTemplate. properties: name: - description: 'Name of the referent. More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: - description: 'Namespace of the referent. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string required: - name type: object maxRetry: - description: MaxRetry specifies how many times KubeStash - should retry the hook execution in case of failure. - The default value of this field is 0 which means - no retry. format: int32 minimum: 0 type: integer name: - description: Name specifies a name for the hook type: string params: - description: Params specifies parameters for the - hook. You must provide the parameter in the HookTemplates - desired structure. type: object x-kubernetes-preserve-unknown-fields: true runtimeSettings: - description: RuntimeSettings specifies runtime configurations - for the hook executor Job. Use this field only - for `Function` type hook executor. properties: container: properties: env: - description: List of environment variables - to set in the container. Cannot be updated. items: - description: EnvVar represents an environment - variable present in a Container. properties: name: - description: Name of the environment - variable. Must be a C_IDENTIFIER. type: string value: - description: 'Variable references - $(VAR_NAME) are expanded using the - previously defined environment variables - in the container and any service - environment variables. If a variable - cannot be resolved, the reference - in the input string will be unchanged. - Double $$ are reduced to a single - $, which allows for escaping the - $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" - will produce the string literal - "$(VAR_NAME)". Escaped references - will never be expanded, regardless - of whether the variable exists or - not. Defaults to "".' type: string valueFrom: - description: Source for the environment - variable's value. Cannot be used - if value is not empty. properties: configMapKeyRef: - description: Selects a key of - a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the - referent. This field is - effectively required, but - due to backwards compatibility - is allowed to be empty. - Instances of this type with - an empty value here are - almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether - the ConfigMap or its key - must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field - of the pod: supports metadata.name, - metadata.namespace, `metadata.labels['''']`, - `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, - status.hostIP, status.podIP, - status.podIPs.' properties: apiVersion: - description: Version of the - schema the FieldPath is - written in terms of, defaults - to "v1". type: string fieldPath: - description: Path of the field - to select in the specified - API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource - of the container: only resources - limits and requests (limits.cpu, - limits.memory, limits.ephemeral-storage, - requests.cpu, requests.memory - and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: - required for volumes, optional - for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the - output format of the exposed - resources, defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource - to select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of - a secret in the pod's namespace properties: key: - description: The key of the - secret to select from. Must - be a valid secret key. type: string name: default: "" - description: 'Name of the - referent. This field is - effectively required, but - due to backwards compatibility - is allowed to be empty. - Instances of this type with - an empty value here are - almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether - the Secret or its key must - be defined type: boolean required: - key @@ -15370,82 +5374,31 @@ spec: type: object type: array envFrom: - description: List of sources to populate - environment variables in the container. - The keys defined within a source must - be a C_IDENTIFIER. All invalid keys will - be reported as an event when the container - is starting. When a key exists in multiple - sources, the value associated with the - last source will take precedence. Values - defined by an Env with a duplicate key - will take precedence. Cannot be updated. items: - description: EnvFromSource represents - the source of a set of ConfigMaps properties: configMapRef: - description: The ConfigMap to select - from properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the - ConfigMap must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: - description: An optional identifier - to prepend to each key in the ConfigMap. - Must be a C_IDENTIFIER. type: string secretRef: - description: The Secret to select - from properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the - Secret must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array ionice: - description: 'Settings to configure `ionice` - to throttle the load on disk. More info: - http://kennystechtalk.blogspot.com/2015/04/throttling-cpu-usage-with-linux-cgroups.html - More info: https://oakbytes.wordpress.com/2012/06/06/linux-scheduler-cfs-and-nice/' properties: class: format: int32 @@ -15455,73 +5408,27 @@ spec: type: integer type: object lifecycle: - description: Actions that the management - system should take in response to container - lifecycle events. Cannot be updated. properties: postStart: - description: 'PostStart is called immediately - after a container is created. If the - handler fails, the container is terminated - and restarted according to its restart - policy. Other management of the container - blocks until the hook completes. More - info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the - action to take. properties: command: - description: Command is the - command line to execute inside - the container, the working - directory for the command is - root ('/') in the container's - filesystem. The command is - simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, - you need to explicitly call - out to that shell. Exit status - of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the - http request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. - You probably want to set "Host" - in httpHeaders instead. type: string httpHeaders: - description: Custom headers - to set in the request. HTTP - allows repeated headers. items: - description: HTTPHeader describes - a custom header to be used - in HTTP probes properties: name: - description: The header - field name. This will - be canonicalized upon - output, so case-variant - names will be understood - as the same header. type: string value: - description: The header - field value type: string required: - name @@ -15530,141 +5437,58 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access - on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number - of the port to access on the - container. Number must be - in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for - connecting to the host. Defaults - to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the - duration that the container should - sleep before being terminated. properties: seconds: - description: Seconds is the - number of seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket - is NOT supported as a LifecycleHandler - and kept for the backward compatibility. - There are no validation of this - field and lifecycle hooks will - fail in runtime when tcp handler - is specified. properties: host: - description: 'Optional: Host - name to connect to, defaults - to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name - of the port to access on the - container. Number must be - in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object type: object preStop: - description: 'PreStop is called immediately - before a container is terminated due - to an API request or management event - such as liveness/startup probe failure, - preemption, resource contention, etc. - The handler is not called if the container - crashes or exits. The Pod''s termination - grace period countdown begins before - the PreStop hook is executed. Regardless - of the outcome of the handler, the - container will eventually terminate - within the Pod''s termination grace - period (unless delayed by finalizers). - Other management of the container - blocks until the hook completes or - until the termination grace period - is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the - action to take. properties: command: - description: Command is the - command line to execute inside - the container, the working - directory for the command is - root ('/') in the container's - filesystem. The command is - simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, - you need to explicitly call - out to that shell. Exit status - of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the - http request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. - You probably want to set "Host" - in httpHeaders instead. type: string httpHeaders: - description: Custom headers - to set in the request. HTTP - allows repeated headers. items: - description: HTTPHeader describes - a custom header to be used - in HTTP probes properties: name: - description: The header - field name. This will - be canonicalized upon - output, so case-variant - names will be understood - as the same header. type: string value: - description: The header - field value type: string required: - name @@ -15673,63 +5497,33 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access - on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number - of the port to access on the - container. Number must be - in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for - connecting to the host. Defaults - to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the - duration that the container should - sleep before being terminated. properties: seconds: - description: Seconds is the - number of seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket - is NOT supported as a LifecycleHandler - and kept for the backward compatibility. - There are no validation of this - field and lifecycle hooks will - fail in runtime when tcp handler - is specified. properties: host: - description: 'Optional: Host - name to connect to, defaults - to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name - of the port to access on the - container. Number must be - in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port @@ -15737,91 +5531,38 @@ spec: type: object type: object livenessProbe: - description: 'Periodic probe of container - liveness. Container will be restarted - if the probe fails. Cannot be updated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the - command is root ('/') in the - container's filesystem. The command - is simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, you - need to explicitly call out to - that shell. Exit status of 0 is - treated as live/healthy and non-zero - is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults to - 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action - involving a GRPC port. properties: port: - description: Port number of the - gRPC service. Number must be in - the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name - of the service to place in the - gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the - default behavior is defined by - gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in - httpHeaders instead. type: string httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood - as the same header. type: string value: - description: The header field - value type: string required: - name @@ -15830,194 +5571,84 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the - HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after - the container has started before liveness - probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) - to perform the probe. Default to 10 - seconds. Minimum value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. - Must be 1 for liveness and startup. - Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an - action involving a TCP port. properties: host: - description: 'Optional: Host name - to connect to, defaults to the - pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully - upon probe failure. The grace period - is the duration in seconds after the - processes running in the pod are sent - a termination signal and the time - when the processes are forcibly halted - with a kill signal. Set this value - longer than the expected cleanup time - for your process. If this value is - nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value - overrides the value provided by the - pod spec. Value must be non-negative - integer. The value zero indicates - stop immediately via the kill signal - (no opportunity to shut down). This - is a beta field and requires enabling - ProbeTerminationGracePeriod feature - gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after - which the probe times out. Defaults - to 1 second. Minimum value is 1. More - info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object nice: - description: 'Settings to configure `nice` - to throttle the load on cpu. More info: - http://kennystechtalk.blogspot.com/2015/04/throttling-cpu-usage-with-linux-cgroups.html - More info: https://oakbytes.wordpress.com/2012/06/06/linux-scheduler-cfs-and-nice/' properties: adjustment: format: int32 type: integer type: object readinessProbe: - description: 'Periodic probe of container - service readiness. Container will be removed - from service endpoints if the probe fails. - Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the - command is root ('/') in the - container's filesystem. The command - is simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, you - need to explicitly call out to - that shell. Exit status of 0 is - treated as live/healthy and non-zero - is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults to - 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action - involving a GRPC port. properties: port: - description: Port number of the - gRPC service. Number must be in - the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name - of the service to place in the - gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the - default behavior is defined by - gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in - httpHeaders instead. type: string httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood - as the same header. type: string value: - description: The header field - value type: string required: - name @@ -16026,121 +5657,51 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the - HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after - the container has started before liveness - probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) - to perform the probe. Default to 10 - seconds. Minimum value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. - Must be 1 for liveness and startup. - Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an - action involving a TCP port. properties: host: - description: 'Optional: Host name - to connect to, defaults to the - pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully - upon probe failure. The grace period - is the duration in seconds after the - processes running in the pod are sent - a termination signal and the time - when the processes are forcibly halted - with a kill signal. Set this value - longer than the expected cleanup time - for your process. If this value is - nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value - overrides the value provided by the - pod spec. Value must be non-negative - integer. The value zero indicates - stop immediately via the kill signal - (no opportunity to shut down). This - is a beta field and requires enabling - ProbeTerminationGracePeriod feature - gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after - which the probe times out. Defaults - to 1 second. Minimum value is 1. More - info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object resources: - description: 'Compute Resources required - by container. Cannot be updated. More - info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' properties: claims: - description: "Claims lists the names - of resources, defined in spec.resourceClaims, - that are used by this container. \n - This is an alpha field and requires - enabling the DynamicResourceAllocation - feature gate. \n This field is immutable. - It can only be set for containers." items: - description: ResourceClaim references - one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the - name of one entry in pod.spec.resourceClaims - of the Pod where this field - is used. It makes that resource - available inside a container. type: string required: - name @@ -16156,9 +5717,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum - amount of compute resources allowed. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -16167,262 +5725,77 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the - minimum amount of compute resources - required. If Requests is omitted for - a container, it defaults to Limits - if that is explicitly specified, otherwise - to an implementation-defined value. - Requests cannot exceed Limits. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object securityContext: - description: 'Security options the pod should - run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: allowPrivilegeEscalation: - description: 'AllowPrivilegeEscalation - controls whether a process can gain - more privileges than its parent process. - This bool directly controls if the - no_new_privs flag will be set on the - container process. AllowPrivilegeEscalation - is true always when the container - is: 1) run as Privileged 2) has CAP_SYS_ADMIN - Note that this field cannot be set - when spec.os.name is windows.' type: boolean appArmorProfile: - description: appArmorProfile is the - AppArmor options to use by this container. - If set, this profile overrides the - pod's appArmorProfile. Note that this - field cannot be set when spec.os.name - is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile loaded on the node that - should be used. The profile must - be preconfigured on the node to - work. Must match the loaded name - of the profile. Must be set if - and only if type is "Localhost". type: string type: - description: 'type indicates which - kind of AppArmor profile will - be applied. Valid options are: - Localhost - a profile pre-loaded - on the node. RuntimeDefault - - the container runtime''s default - profile. Unconfined - no AppArmor - enforcement.' type: string required: - type type: object capabilities: - description: The capabilities to add/drop - when running containers. Defaults - to the default set of capabilities - granted by the container runtime. - Note that this field cannot be set - when spec.os.name is windows. properties: add: - description: Added capabilities items: - description: Capability represent - POSIX capabilities type type: string type: array x-kubernetes-list-type: atomic drop: - description: Removed capabilities items: - description: Capability represent - POSIX capabilities type type: string type: array x-kubernetes-list-type: atomic type: object privileged: - description: Run container in privileged - mode. Processes in privileged containers - are essentially equivalent to root - on the host. Defaults to false. Note - that this field cannot be set when - spec.os.name is windows. type: boolean procMount: - description: procMount denotes the type - of proc mount to use for the containers. - The default is DefaultProcMount which - uses the container runtime defaults - for readonly paths and masked paths. - This requires the ProcMountType feature - flag to be enabled. Note that this - field cannot be set when spec.os.name - is windows. type: string readOnlyRootFilesystem: - description: Whether this container - has a read-only root filesystem. Default - is false. Note that this field cannot - be set when spec.os.name is windows. type: boolean runAsGroup: - description: The GID to run the entrypoint - of the container process. Uses runtime - default if unset. May also be set - in PodSecurityContext. If set in - both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is - windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container - must run as a non-root user. If true, - the Kubelet will validate the image - at runtime to ensure that it does - not run as UID 0 (root) and fail to - start the container if it does. If - unset or false, no such validation - will be performed. May also be set - in PodSecurityContext. If set in - both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: boolean runAsUser: - description: The UID to run the entrypoint - of the container process. Defaults - to user specified in image metadata - if unspecified. May also be set in - PodSecurityContext. If set in both - SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is - windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to - be applied to the container. If unspecified, - the container runtime will allocate - a random SELinux context for each - container. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is - windows. properties: level: - description: Level is SELinux level - label that applies to the container. type: string role: - description: Role is a SELinux role - label that applies to the container. type: string type: - description: Type is a SELinux type - label that applies to the container. type: string user: - description: User is a SELinux user - label that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to - use by this container. If seccomp - options are provided at both the pod - & container level, the container options - override the pod options. Note that - this field cannot be set when spec.os.name - is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile defined in a file on - the node should be used. The profile - must be preconfigured on the node - to work. Must be a descending - path, relative to the kubelet's - configured seccomp profile location. - Must be set if type is "Localhost". - Must NOT be set for any other - type. type: string type: - description: "type indicates which - kind of seccomp profile will be - applied. Valid options are: \n - Localhost - a profile defined - in a file on the node should be - used. RuntimeDefault - the container - runtime default profile should - be used. Unconfined - no profile - should be applied." type: string required: - type type: object windowsOptions: - description: The Windows specific settings - applied to all containers. If unspecified, - the options from the PodSecurityContext - will be used. If set in both SecurityContext - and PodSecurityContext, the value - specified in SecurityContext takes - precedence. Note that this field cannot - be set when spec.os.name is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec - is where the GMSA admission webhook - (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA - credential spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName - is the name of the GMSA credential - spec to use. type: string hostProcess: - description: HostProcess determines - if a container should be run as - a 'Host Process' container. All - of a Pod's containers must have - the same effective HostProcess - value (it is not allowed to have - a mix of HostProcess containers - and non-HostProcess containers). - In addition, if HostProcess is - true then HostNetwork must also - be set to true. type: boolean runAsUserName: - description: The UserName in Windows - to run the entrypoint of the container - process. Defaults to the user - specified in image metadata if - unspecified. May also be set in - PodSecurityContext. If set in - both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: string type: object type: object @@ -16430,97 +5803,22 @@ spec: pod: properties: affinity: - description: If specified, the pod's scheduling - constraints properties: nodeAffinity: - description: Describes node affinity - scheduling rules for the pod. properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will - prefer to schedule pods to nodes - that satisfy the affinity expressions - specified by this field, but it - may choose a node that violates - one or more of the expressions. - The node that is most preferred - is the one with the greatest sum - of weights, i.e. for each node - that meets all of the scheduling - requirements (resource request, - requiredDuringScheduling affinity - expressions, etc.), compute a - sum by iterating through the elements - of this field and adding "weight" - to the sum if the node matches - the corresponding matchExpressions; - the node(s) with the highest sum - are the most preferred. items: - description: An empty preferred - scheduling term matches all - objects with implicit weight - 0 (i.e. it's a no-op). A null - preferred scheduling term matches - no objects (i.e. is also a no-op). properties: preference: - description: A node selector - term, associated with the - corresponding weight. properties: matchExpressions: - description: A list of - node selector requirements - by node's labels. items: - description: A node - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: The - label key that - the selector applies - to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators - are In, NotIn, - Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An - array of string - values. If the - operator is In - or NotIn, the - values array must - be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - If the operator - is Gt or Lt, the - values array must - have a single - element, which - will be interpreted - as an integer. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -16532,56 +5830,13 @@ spec: type: array x-kubernetes-list-type: atomic matchFields: - description: A list of - node selector requirements - by node's fields. items: - description: A node - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: The - label key that - the selector applies - to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators - are In, NotIn, - Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An - array of string - values. If the - operator is In - or NotIn, the - values array must - be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - If the operator - is Gt or Lt, the - values array must - have a single - element, which - will be interpreted - as an integer. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -16595,10 +5850,6 @@ spec: type: object x-kubernetes-map-type: atomic weight: - description: Weight associated - with matching the corresponding - nodeSelectorTerm, in the - range 1-100. format: int32 type: integer required: @@ -16608,81 +5859,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements - specified by this field are not - met at scheduling time, the pod - will not be scheduled onto the - node. If the affinity requirements - specified by this field cease - to be met at some point during - pod execution (e.g. due to an - update), the system may or may - not try to eventually evict the - pod from its node. properties: nodeSelectorTerms: - description: Required. A list - of node selector terms. The - terms are ORed. items: - description: A null or empty - node selector term matches - no objects. The requirements - of them are ANDed. The TopologySelectorTerm - type implements a subset - of the NodeSelectorTerm. properties: matchExpressions: - description: A list of - node selector requirements - by node's labels. items: - description: A node - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: The - label key that - the selector applies - to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators - are In, NotIn, - Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An - array of string - values. If the - operator is In - or NotIn, the - values array must - be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - If the operator - is Gt or Lt, the - values array must - have a single - element, which - will be interpreted - as an integer. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -16694,56 +5882,13 @@ spec: type: array x-kubernetes-list-type: atomic matchFields: - description: A list of - node selector requirements - by node's fields. items: - description: A node - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: The - label key that - the selector applies - to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators - are In, NotIn, - Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An - array of string - values. If the - operator is In - or NotIn, the - values array must - be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - If the operator - is Gt or Lt, the - values array must - have a single - element, which - will be interpreted - as an integer. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -16764,103 +5909,22 @@ spec: x-kubernetes-map-type: atomic type: object podAffinity: - description: Describes pod affinity - scheduling rules (e.g. co-locate this - pod in the same node, zone, etc. as - some other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will - prefer to schedule pods to nodes - that satisfy the affinity expressions - specified by this field, but it - may choose a node that violates - one or more of the expressions. - The node that is most preferred - is the one with the greatest sum - of weights, i.e. for each node - that meets all of the scheduling - requirements (resource request, - requiredDuringScheduling affinity - expressions, etc.), compute a - sum by iterating through the elements - of this field and adding "weight" - to the sum if the node has pods - which matches the corresponding - podAffinityTerm; the node(s) with - the highest sum are the most preferred. items: - description: The weights of all - of the matched WeightedPodAffinityTerm - fields are added per-node to - find the most preferred node(s) properties: podAffinityTerm: - description: Required. A pod - affinity term, associated - with the corresponding weight. properties: labelSelector: - description: A label query - over a set of resources, - in this case pods. If - it's null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label - selector requirements. - The requirements - are ANDed. items: - description: A label - selector requirement - is a selector - that contains - values, a key, - and an operator - that relates the - key and values. properties: key: - description: key - is the label - key that the - selector applies - to. type: string operator: - description: operator - represents - a key's relationship - to a set of - values. Valid - operators - are In, NotIn, - Exists and - DoesNotExist. type: string values: - description: values - is an array - of string - values. If - the operator - is In or NotIn, - the values - array must - be non-empty. - If the operator - is Exists - or DoesNotExist, - the values - array must - be empty. - This array - is replaced - during a strategic - merge patch. items: type: string type: array @@ -16874,163 +5938,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single - {key,value} in the - matchLabels map - is equivalent to - an element of matchExpressions, - whose key field - is "key", the operator - is "In", and the - values array contains - only "value". The - requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys - is a set of pod label - keys to select which - pods will be taken into - consideration. The keys - are used to lookup values - from the incoming pod - labels, those key-value - labels are merged with - `labelSelector` as `key - in (value)` to select - the group of existing - pods which pods will - be taken into consideration - for the incoming pod's - pod (anti) affinity. - Keys that don't exist - in the incoming pod - labels will be ignored. - The default value is - empty. The same key - is forbidden to exist - in both matchLabelKeys - and labelSelector. Also, - matchLabelKeys cannot - be set when labelSelector - isn't set. This is an - alpha field and requires - enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label - keys to select which - pods will be taken into - consideration. The keys - are used to lookup values - from the incoming pod - labels, those key-value - labels are merged with - `labelSelector` as `key - notin (value)` to select - the group of existing - pods which pods will - be taken into consideration - for the incoming pod's - pod (anti) affinity. - Keys that don't exist - in the incoming pod - labels will be ignored. - The default value is - empty. The same key - is forbidden to exist - in both mismatchLabelKeys - and labelSelector. Also, - mismatchLabelKeys cannot - be set when labelSelector - isn't set. This is an - alpha field and requires - enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query - over the set of namespaces - that the term applies - to. The term is applied - to the union of the - namespaces selected - by this field and the - ones listed in the namespaces - field. null selector - and null or empty namespaces - list means "this pod's - namespace". An empty - selector ({}) matches - all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label - selector requirements. - The requirements - are ANDed. items: - description: A label - selector requirement - is a selector - that contains - values, a key, - and an operator - that relates the - key and values. properties: key: - description: key - is the label - key that the - selector applies - to. type: string operator: - description: operator - represents - a key's relationship - to a set of - values. Valid - operators - are In, NotIn, - Exists and - DoesNotExist. type: string values: - description: values - is an array - of string - values. If - the operator - is In or NotIn, - the values - array must - be non-empty. - If the operator - is Exists - or DoesNotExist, - the values - array must - be empty. - This array - is replaced - during a strategic - merge patch. items: type: string type: array @@ -17044,66 +5974,20 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single - {key,value} in the - matchLabels map - is equivalent to - an element of matchExpressions, - whose key field - is "key", the operator - is "In", and the - values array contains - only "value". The - requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces - specifies a static list - of namespace names that - the term applies to. - The term is applied - to the union of the - namespaces listed in - this field and the ones - selected by namespaceSelector. - null or empty namespaces - list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod - should be co-located - (affinity) or not co-located - (anti-affinity) with - the pods matching the - labelSelector in the - specified namespaces, - where co-located is - defined as running on - a node whose value of - the label with key topologyKey - matches that of any - node on which any of - the selected pods is - running. Empty topologyKey - is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated - with matching the corresponding - podAffinityTerm, in the - range 1-100. format: int32 type: integer required: @@ -17113,88 +5997,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements - specified by this field are not - met at scheduling time, the pod - will not be scheduled onto the - node. If the affinity requirements - specified by this field cease - to be met at some point during - pod execution (e.g. due to a pod - label update), the system may - or may not try to eventually evict - the pod from its node. When there - are multiple elements, the lists - of nodes corresponding to each - podAffinityTerm are intersected, - i.e. all terms must be satisfied. items: - description: Defines a set of - pods (namely those matching - the labelSelector relative to - the given namespace(s)) that - this pod should be co-located - (affinity) or not co-located - (anti-affinity) with, where - co-located is defined as running - on a node whose value of the - label with key - matches that of any node on - which a pod of the set of pods - is running properties: labelSelector: - description: A label query - over a set of resources, - in this case pods. If it's - null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: key - is the label key - that the selector - applies to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values - is an array of - string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -17208,141 +6022,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an - element of matchExpressions, - whose key field is "key", - the operator is "In", - and the values array - contains only "value". - The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming - pod labels, those key-value - labels are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods - which pods will be taken - into consideration for the - incoming pod's pod (anti) - affinity. Keys that don't - exist in the incoming pod - labels will be ignored. - The default value is empty. - The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, - matchLabelKeys cannot be - set when labelSelector isn't - set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming - pod labels, those key-value - labels are merged with `labelSelector` - as `key notin (value)` to - select the group of existing - pods which pods will be - taken into consideration - for the incoming pod's pod - (anti) affinity. Keys that - don't exist in the incoming - pod labels will be ignored. - The default value is empty. - The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, - mismatchLabelKeys cannot - be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query - over the set of namespaces - that the term applies to. - The term is applied to the - union of the namespaces - selected by this field and - the ones listed in the namespaces - field. null selector and - null or empty namespaces - list means "this pod's namespace". - An empty selector ({}) matches - all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: key - is the label key - that the selector - applies to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values - is an array of - string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -17356,50 +6058,15 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an - element of matchExpressions, - whose key field is "key", - the operator is "In", - and the values array - contains only "value". - The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace - names that the term applies - to. The term is applied - to the union of the namespaces - listed in this field and - the ones selected by namespaceSelector. - null or empty namespaces - list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should - be co-located (affinity) - or not co-located (anti-affinity) - with the pods matching the - labelSelector in the specified - namespaces, where co-located - is defined as running on - a node whose value of the - label with key topologyKey - matches that of any node - on which any of the selected - pods is running. Empty topologyKey - is not allowed. type: string required: - topologyKey @@ -17408,104 +6075,22 @@ spec: x-kubernetes-list-type: atomic type: object podAntiAffinity: - description: Describes pod anti-affinity - scheduling rules (e.g. avoid putting - this pod in the same node, zone, etc. - as some other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will - prefer to schedule pods to nodes - that satisfy the anti-affinity - expressions specified by this - field, but it may choose a node - that violates one or more of the - expressions. The node that is - most preferred is the one with - the greatest sum of weights, i.e. - for each node that meets all of - the scheduling requirements (resource - request, requiredDuringScheduling - anti-affinity expressions, etc.), - compute a sum by iterating through - the elements of this field and - adding "weight" to the sum if - the node has pods which matches - the corresponding podAffinityTerm; - the node(s) with the highest sum - are the most preferred. items: - description: The weights of all - of the matched WeightedPodAffinityTerm - fields are added per-node to - find the most preferred node(s) properties: podAffinityTerm: - description: Required. A pod - affinity term, associated - with the corresponding weight. properties: labelSelector: - description: A label query - over a set of resources, - in this case pods. If - it's null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label - selector requirements. - The requirements - are ANDed. items: - description: A label - selector requirement - is a selector - that contains - values, a key, - and an operator - that relates the - key and values. properties: key: - description: key - is the label - key that the - selector applies - to. type: string operator: - description: operator - represents - a key's relationship - to a set of - values. Valid - operators - are In, NotIn, - Exists and - DoesNotExist. type: string values: - description: values - is an array - of string - values. If - the operator - is In or NotIn, - the values - array must - be non-empty. - If the operator - is Exists - or DoesNotExist, - the values - array must - be empty. - This array - is replaced - during a strategic - merge patch. items: type: string type: array @@ -17519,163 +6104,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single - {key,value} in the - matchLabels map - is equivalent to - an element of matchExpressions, - whose key field - is "key", the operator - is "In", and the - values array contains - only "value". The - requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys - is a set of pod label - keys to select which - pods will be taken into - consideration. The keys - are used to lookup values - from the incoming pod - labels, those key-value - labels are merged with - `labelSelector` as `key - in (value)` to select - the group of existing - pods which pods will - be taken into consideration - for the incoming pod's - pod (anti) affinity. - Keys that don't exist - in the incoming pod - labels will be ignored. - The default value is - empty. The same key - is forbidden to exist - in both matchLabelKeys - and labelSelector. Also, - matchLabelKeys cannot - be set when labelSelector - isn't set. This is an - alpha field and requires - enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label - keys to select which - pods will be taken into - consideration. The keys - are used to lookup values - from the incoming pod - labels, those key-value - labels are merged with - `labelSelector` as `key - notin (value)` to select - the group of existing - pods which pods will - be taken into consideration - for the incoming pod's - pod (anti) affinity. - Keys that don't exist - in the incoming pod - labels will be ignored. - The default value is - empty. The same key - is forbidden to exist - in both mismatchLabelKeys - and labelSelector. Also, - mismatchLabelKeys cannot - be set when labelSelector - isn't set. This is an - alpha field and requires - enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query - over the set of namespaces - that the term applies - to. The term is applied - to the union of the - namespaces selected - by this field and the - ones listed in the namespaces - field. null selector - and null or empty namespaces - list means "this pod's - namespace". An empty - selector ({}) matches - all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label - selector requirements. - The requirements - are ANDed. items: - description: A label - selector requirement - is a selector - that contains - values, a key, - and an operator - that relates the - key and values. properties: key: - description: key - is the label - key that the - selector applies - to. type: string operator: - description: operator - represents - a key's relationship - to a set of - values. Valid - operators - are In, NotIn, - Exists and - DoesNotExist. type: string values: - description: values - is an array - of string - values. If - the operator - is In or NotIn, - the values - array must - be non-empty. - If the operator - is Exists - or DoesNotExist, - the values - array must - be empty. - This array - is replaced - during a strategic - merge patch. items: type: string type: array @@ -17689,66 +6140,20 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single - {key,value} in the - matchLabels map - is equivalent to - an element of matchExpressions, - whose key field - is "key", the operator - is "In", and the - values array contains - only "value". The - requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces - specifies a static list - of namespace names that - the term applies to. - The term is applied - to the union of the - namespaces listed in - this field and the ones - selected by namespaceSelector. - null or empty namespaces - list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod - should be co-located - (affinity) or not co-located - (anti-affinity) with - the pods matching the - labelSelector in the - specified namespaces, - where co-located is - defined as running on - a node whose value of - the label with key topologyKey - matches that of any - node on which any of - the selected pods is - running. Empty topologyKey - is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated - with matching the corresponding - podAffinityTerm, in the - range 1-100. format: int32 type: integer required: @@ -17758,88 +6163,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the anti-affinity - requirements specified by this - field are not met at scheduling - time, the pod will not be scheduled - onto the node. If the anti-affinity - requirements specified by this - field cease to be met at some - point during pod execution (e.g. - due to a pod label update), the - system may or may not try to eventually - evict the pod from its node. When - there are multiple elements, the - lists of nodes corresponding to - each podAffinityTerm are intersected, - i.e. all terms must be satisfied. items: - description: Defines a set of - pods (namely those matching - the labelSelector relative to - the given namespace(s)) that - this pod should be co-located - (affinity) or not co-located - (anti-affinity) with, where - co-located is defined as running - on a node whose value of the - label with key - matches that of any node on - which a pod of the set of pods - is running properties: labelSelector: - description: A label query - over a set of resources, - in this case pods. If it's - null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: key - is the label key - that the selector - applies to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values - is an array of - string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -17853,141 +6188,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an - element of matchExpressions, - whose key field is "key", - the operator is "In", - and the values array - contains only "value". - The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming - pod labels, those key-value - labels are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods - which pods will be taken - into consideration for the - incoming pod's pod (anti) - affinity. Keys that don't - exist in the incoming pod - labels will be ignored. - The default value is empty. - The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, - matchLabelKeys cannot be - set when labelSelector isn't - set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming - pod labels, those key-value - labels are merged with `labelSelector` - as `key notin (value)` to - select the group of existing - pods which pods will be - taken into consideration - for the incoming pod's pod - (anti) affinity. Keys that - don't exist in the incoming - pod labels will be ignored. - The default value is empty. - The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, - mismatchLabelKeys cannot - be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query - over the set of namespaces - that the term applies to. - The term is applied to the - union of the namespaces - selected by this field and - the ones listed in the namespaces - field. null selector and - null or empty namespaces - list means "this pod's namespace". - An empty selector ({}) matches - all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: key - is the label key - that the selector - applies to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values - is an array of - string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -18001,50 +6224,15 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an - element of matchExpressions, - whose key field is "key", - the operator is "In", - and the values array - contains only "value". - The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace - names that the term applies - to. The term is applied - to the union of the namespaces - listed in this field and - the ones selected by namespaceSelector. - null or empty namespaces - list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should - be co-located (affinity) - or not co-located (anti-affinity) - with the pods matching the - labelSelector in the specified - namespaces, where co-located - is defined as running on - a node whose value of the - label with key topologyKey - matches that of any node - on which any of the selected - pods is running. Empty topologyKey - is not allowed. type: string required: - topologyKey @@ -18054,344 +6242,106 @@ spec: type: object type: object automountServiceAccountToken: - description: AutomountServiceAccountToken - indicates whether a service account token - should be automatically mounted. type: boolean enableServiceLinks: - description: 'EnableServiceLinks indicates - whether information about services should - be injected into pod''s environment variables, - matching the syntax of Docker links. Optional: - Defaults to true.' type: boolean imagePullSecrets: - description: 'ImagePullSecrets is an optional - list of references to secrets in the same - namespace to use for pulling any of the - images used by this PodRuntimeSettings. - If specified, these secrets will be passed - to individual puller implementations for - them to use. For example, in the case - of docker, only DockerConfig type secrets - are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod' items: - description: LocalObjectReference contains - enough information to let you locate - the referenced object inside the same - namespace. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic type: array nodeName: - description: NodeName is a request to schedule - this pod onto a specific node. If it is - non-empty, the scheduler simply schedules - this pod onto that node, assuming that - it fits resource requirements. type: string nodeSelector: additionalProperties: type: string - description: 'NodeSelector is a selector - which must be true for the pod to fit - on a node. Selector which must match a - node''s labels for the pod to be scheduled - on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/' type: object podAnnotations: additionalProperties: type: string - description: PodAnnotations are the annotations - that will be attached with the respective - Pod type: object podLabels: additionalProperties: type: string - description: PodLabels are the labels that - will be attached with the respective Pod type: object priority: - description: The priority value. Various - system components use this field to find - the priority of the pod. When Priority - Admission Controller is enabled, it prevents - users from setting this field. The admission - controller populates this field from PriorityClassName. - The higher the value, the higher the priority. format: int32 type: integer priorityClassName: - description: If specified, indicates the - pod's priority. "system-node-critical" - and "system-cluster-critical" are two - special keywords which indicate the highest - priorities with the former being the highest - priority. Any other name must be defined - by creating a PriorityClass object with - that name. If not specified, the pod priority - will be default or zero if there is no - default. type: string readinessGates: - description: 'If specified, all readiness - gates will be evaluated for pod readiness. - A pod is ready when all its containers - are ready AND all conditions specified - in the readiness gates have status equal - to "True" More info: https://git.k8s.io/enhancements/keps/sig-network/0007-pod-ready%2B%2B.md' items: - description: PodReadinessGate contains - the reference to a pod condition properties: conditionType: - description: ConditionType refers - to a condition in the pod's condition - list with matching type. type: string required: - conditionType type: object type: array runtimeClassName: - description: 'RuntimeClassName refers to - a RuntimeClass object in the node.k8s.io - group, which should be used to run this - pod. If no RuntimeClass resource matches - the named class, the pod will not be run. - If unset or empty, the "legacy" RuntimeClass - will be used, which is an implicit class - with an empty definition that uses the - default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md - This is an alpha feature and may change - in the future.' type: string schedulerName: - description: If specified, the pod will - be dispatched by specified scheduler. - If not specified, the pod will be dispatched - by default scheduler. type: string securityContext: - description: 'Security options the pod should - run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: appArmorProfile: - description: appArmorProfile is the - AppArmor options to use by the containers - in this pod. Note that this field - cannot be set when spec.os.name is - windows. properties: localhostProfile: - description: localhostProfile indicates - a profile loaded on the node that - should be used. The profile must - be preconfigured on the node to - work. Must match the loaded name - of the profile. Must be set if - and only if type is "Localhost". type: string type: - description: 'type indicates which - kind of AppArmor profile will - be applied. Valid options are: - Localhost - a profile pre-loaded - on the node. RuntimeDefault - - the container runtime''s default - profile. Unconfined - no AppArmor - enforcement.' type: string required: - type type: object fsGroup: - description: "A special supplemental - group that applies to all containers - in a pod. Some volume types allow - the Kubelet to change the ownership - of that volume to be owned by the - pod: \n 1. The owning GID will be - the FSGroup 2. The setgid bit is set - (new files created in the volume will - be owned by FSGroup) 3. The permission - bits are OR'd with rw-rw---- \n If - unset, the Kubelet will not modify - the ownership and permissions of any - volume. Note that this field cannot - be set when spec.os.name is windows." format: int64 type: integer fsGroupChangePolicy: - description: 'fsGroupChangePolicy defines - behavior of changing ownership and - permission of the volume before being - exposed inside Pod. This field will - only apply to volume types which support - fsGroup based ownership(and permissions). - It will have no effect on ephemeral - volume types such as: secret, configmaps - and emptydir. Valid values are "OnRootMismatch" - and "Always". If not specified, "Always" - is used. Note that this field cannot - be set when spec.os.name is windows.' type: string runAsGroup: - description: The GID to run the entrypoint - of the container process. Uses runtime - default if unset. May also be set - in SecurityContext. If set in both - SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence for that container. - Note that this field cannot be set - when spec.os.name is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container - must run as a non-root user. If true, - the Kubelet will validate the image - at runtime to ensure that it does - not run as UID 0 (root) and fail to - start the container if it does. If - unset or false, no such validation - will be performed. May also be set - in SecurityContext. If set in both - SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: boolean runAsUser: - description: The UID to run the entrypoint - of the container process. Defaults - to user specified in image metadata - if unspecified. May also be set in - SecurityContext. If set in both SecurityContext - and PodSecurityContext, the value - specified in SecurityContext takes - precedence for that container. Note - that this field cannot be set when - spec.os.name is windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to - be applied to all containers. If unspecified, - the container runtime will allocate - a random SELinux context for each - container. May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence for that container. - Note that this field cannot be set - when spec.os.name is windows. properties: level: - description: Level is SELinux level - label that applies to the container. type: string role: - description: Role is a SELinux role - label that applies to the container. type: string type: - description: Type is a SELinux type - label that applies to the container. type: string user: - description: User is a SELinux user - label that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to - use by the containers in this pod. - Note that this field cannot be set - when spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile defined in a file on - the node should be used. The profile - must be preconfigured on the node - to work. Must be a descending - path, relative to the kubelet's - configured seccomp profile location. - Must be set if type is "Localhost". - Must NOT be set for any other - type. type: string type: - description: "type indicates which - kind of seccomp profile will be - applied. Valid options are: \n - Localhost - a profile defined - in a file on the node should be - used. RuntimeDefault - the container - runtime default profile should - be used. Unconfined - no profile - should be applied." type: string required: - type type: object supplementalGroups: - description: A list of groups applied - to the first process run in each container, - in addition to the container's primary - GID, the fsGroup (if specified), and - group memberships defined in the container - image for the uid of the container - process. If unspecified, no additional - groups are added to any container. - Note that group memberships defined - in the container image for the uid - of the container process are still - effective, even if they are not included - in this list. Note that this field - cannot be set when spec.os.name is - windows. items: format: int64 type: integer type: array x-kubernetes-list-type: atomic sysctls: - description: Sysctls hold a list of - namespaced sysctls used for the pod. - Pods with unsupported sysctls (by - the container runtime) might fail - to launch. Note that this field cannot - be set when spec.os.name is windows. items: - description: Sysctl defines a kernel - parameter to be set properties: name: - description: Name of a property - to set type: string value: - description: Value of a property - to set type: string required: - name @@ -18400,174 +6350,52 @@ spec: type: array x-kubernetes-list-type: atomic windowsOptions: - description: The Windows specific settings - applied to all containers. If unspecified, - the options within a container's SecurityContext - will be used. If set in both SecurityContext - and PodSecurityContext, the value - specified in SecurityContext takes - precedence. Note that this field cannot - be set when spec.os.name is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec - is where the GMSA admission webhook - (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA - credential spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName - is the name of the GMSA credential - spec to use. type: string hostProcess: - description: HostProcess determines - if a container should be run as - a 'Host Process' container. All - of a Pod's containers must have - the same effective HostProcess - value (it is not allowed to have - a mix of HostProcess containers - and non-HostProcess containers). - In addition, if HostProcess is - true then HostNetwork must also - be set to true. type: boolean runAsUserName: - description: The UserName in Windows - to run the entrypoint of the container - process. Defaults to the user - specified in image metadata if - unspecified. May also be set in - PodSecurityContext. If set in - both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: string type: object type: object serviceAccountAnnotations: additionalProperties: type: string - description: ServiceAccountAnnotations are - the annotations that will be attached - with the respective ServiceAccount type: object serviceAccountName: - description: 'ServiceAccountName is the - name of the ServiceAccount to use to run - this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/' type: string tolerations: - description: If specified, the pod's tolerations. items: - description: The pod this Toleration is - attached to tolerates any taint that - matches the triple - using the matching operator . properties: effect: - description: Effect indicates the - taint effect to match. Empty means - match all taint effects. When specified, - allowed values are NoSchedule, PreferNoSchedule - and NoExecute. type: string key: - description: Key is the taint key - that the toleration applies to. - Empty means match all taint keys. - If the key is empty, operator must - be Exists; this combination means - to match all values and all keys. type: string operator: - description: Operator represents a - key's relationship to the value. - Valid operators are Exists and Equal. - Defaults to Equal. Exists is equivalent - to wildcard for value, so that a - pod can tolerate all taints of a - particular category. type: string tolerationSeconds: - description: TolerationSeconds represents - the period of time the toleration - (which must be of effect NoExecute, - otherwise this field is ignored) - tolerates the taint. By default, - it is not set, which means tolerate - the taint forever (do not evict). - Zero and negative values will be - treated as 0 (evict immediately) - by the system. format: int64 type: integer value: - description: Value is the taint value - the toleration matches to. If the - operator is Exists, the value should - be empty, otherwise just a regular - string. type: string type: object type: array topologySpreadConstraints: - description: TopologySpreadConstraints describes - how a group of pods ought to spread across - topology domains. Scheduler will schedule - pods in a way which abides by the constraints. - All topologySpreadConstraints are ANDed. items: - description: TopologySpreadConstraint - specifies how to spread matching pods - among the given topology. properties: labelSelector: - description: LabelSelector is used - to find matching pods. Pods that - match this label selector are counted - to determine the number of pods - in their corresponding topology - domain. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a key, - and an operator that relates - the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator represents - a key's relationship to - a set of values. Valid - operators are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values is an - array of string values. - If the operator is In - or NotIn, the values array - must be non-empty. If - the operator is Exists - or DoesNotExist, the values - array must be empty. This - array is replaced during - a strategic merge patch. items: type: string type: array @@ -18581,192 +6409,27 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a - map of {key,value} pairs. A - single {key,value} in the matchLabels - map is equivalent to an element - of matchExpressions, whose key - field is "key", the operator - is "In", and the values array - contains only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: "MatchLabelKeys is a - set of pod label keys to select - the pods over which spreading will - be calculated. The keys are used - to lookup values from the incoming - pod labels, those key-value labels - are ANDed with labelSelector to - select the group of existing pods - over which spreading will be calculated - for the incoming pod. The same key - is forbidden to exist in both MatchLabelKeys - and LabelSelector. MatchLabelKeys - cannot be set when LabelSelector - isn't set. Keys that don't exist - in the incoming pod labels will - be ignored. A null or empty list - means only match against labelSelector. - \n This is a beta field and requires - the MatchLabelKeysInPodTopologySpread - feature gate to be enabled (enabled - by default)." items: type: string type: array x-kubernetes-list-type: atomic maxSkew: - description: 'MaxSkew describes the - degree to which pods may be unevenly - distributed. When `whenUnsatisfiable=DoNotSchedule`, - it is the maximum permitted difference - between the number of matching pods - in the target topology and the global - minimum. The global minimum is the - minimum number of matching pods - in an eligible domain or zero if - the number of eligible domains is - less than MinDomains. For example, - in a 3-zone cluster, MaxSkew is - set to 1, and pods with the same - labelSelector spread as 2/2/1: In - this case, the global minimum is - 1. | zone1 | zone2 | zone3 | | P - P | P P | P | - if MaxSkew - is 1, incoming pod can only be scheduled - to zone3 to become 2/2/2; scheduling - it onto zone1(zone2) would make - the ActualSkew(3-1) on zone1(zone2) - violate MaxSkew(1). - if MaxSkew - is 2, incoming pod can be scheduled - onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, - it is used to give higher precedence - to topologies that satisfy it. It''s - a required field. Default value - is 1 and 0 is not allowed.' format: int32 type: integer minDomains: - description: "MinDomains indicates - a minimum number of eligible domains. - When the number of eligible domains - with matching topology keys is less - than minDomains, Pod Topology Spread - treats \"global minimum\" as 0, - and then the calculation of Skew - is performed. And when the number - of eligible domains with matching - topology keys equals or greater - than minDomains, this value has - no effect on scheduling. As a result, - when the number of eligible domains - is less than minDomains, scheduler - won't schedule more than maxSkew - Pods to those domains. If value - is nil, the constraint behaves as - if MinDomains is equal to 1. Valid - values are integers greater than - 0. When value is not nil, WhenUnsatisfiable - must be DoNotSchedule. \n For example, - in a 3-zone cluster, MaxSkew is - set to 2, MinDomains is set to 5 - and pods with the same labelSelector - spread as 2/2/2: | zone1 | zone2 - | zone3 | | P P | P P | P P - \ | The number of domains is less - than 5(MinDomains), so \"global - minimum\" is treated as 0. In this - situation, new pod with the same - labelSelector cannot be scheduled, - because computed skew will be 3(3 - - 0) if new Pod is scheduled to - any of the three zones, it will - violate MaxSkew." format: int32 type: integer nodeAffinityPolicy: - description: "NodeAffinityPolicy indicates - how we will treat Pod's nodeAffinity/nodeSelector - when calculating pod topology spread - skew. Options are: - Honor: only - nodes matching nodeAffinity/nodeSelector - are included in the calculations. - - Ignore: nodeAffinity/nodeSelector - are ignored. All nodes are included - in the calculations. \n If this - value is nil, the behavior is equivalent - to the Honor policy. This is a beta-level - feature default enabled by the NodeInclusionPolicyInPodTopologySpread - feature flag." type: string nodeTaintsPolicy: - description: "NodeTaintsPolicy indicates - how we will treat node taints when - calculating pod topology spread - skew. Options are: - Honor: nodes - without taints, along with tainted - nodes for which the incoming pod - has a toleration, are included. - - Ignore: node taints are ignored. - All nodes are included. \n If this - value is nil, the behavior is equivalent - to the Ignore policy. This is a - beta-level feature default enabled - by the NodeInclusionPolicyInPodTopologySpread - feature flag." type: string topologyKey: - description: TopologyKey is the key - of node labels. Nodes that have - a label with this key and identical - values are considered to be in the - same topology. We consider each - as a "bucket", and - try to put balanced number of pods - into each bucket. We define a domain - as a particular instance of a topology. - Also, we define an eligible domain - as a domain whose nodes meet the - requirements of nodeAffinityPolicy - and nodeTaintsPolicy. e.g. If TopologyKey - is "kubernetes.io/hostname", each - Node is a domain of that topology. - And, if TopologyKey is "topology.kubernetes.io/zone", - each zone is a domain of that topology. - It's a required field. type: string whenUnsatisfiable: - description: 'WhenUnsatisfiable indicates - how to deal with a pod if it doesn''t - satisfy the spread constraint. - - DoNotSchedule (default) tells the - scheduler not to schedule it. - - ScheduleAnyway tells the scheduler - to schedule the pod in any location, - but giving higher precedence to - topologies that would help reduce - the skew. A constraint is considered - "Unsatisfiable" for an incoming - pod if and only if every possible - node assignment for that pod would - violate "MaxSkew" on some topology. - For example, in a 3-zone cluster, - MaxSkew is set to 1, and pods with - the same labelSelector spread as - 3/1/1: | zone1 | zone2 | zone3 | - | P P P | P | P | If WhenUnsatisfiable - is set to DoNotSchedule, incoming - pod can only be scheduled to zone2(zone3) - to become 3/2/1(3/1/2) as ActualSkew(2-1) - on zone2(zone3) satisfies MaxSkew(1). - In other words, the cluster can - still be imbalanced, but scheduler - won''t make it *more* imbalanced. - It''s a required field.' type: string required: - maxSkew @@ -18781,146 +6444,63 @@ spec: type: object type: object timeout: - description: Timeout specifies a duration in seconds - that KubeStash should wait for the hook execution - to be completed. If the hook execution does not - finish within this time period, KubeStash will - consider this hook execution as failure. Then, - it will be re-tried according to MaxRetry policy. type: string variables: - description: Variables specifies a list of variables - and their sources that will be used to resolve - the HookTemplate. items: - description: EnvVar represents an environment - variable present in a Container. properties: name: - description: Name of the environment variable. - Must be a C_IDENTIFIER. type: string value: - description: 'Variable references $(VAR_NAME) - are expanded using the previously defined - environment variables in the container and - any service environment variables. If a - variable cannot be resolved, the reference - in the input string will be unchanged. Double - $$ are reduced to a single $, which allows - for escaping the $(VAR_NAME) syntax: i.e. - "$$(VAR_NAME)" will produce the string literal - "$(VAR_NAME)". Escaped references will never - be expanded, regardless of whether the variable - exists or not. Defaults to "".' type: string valueFrom: - description: Source for the environment variable's - value. Cannot be used if value is not empty. properties: configMapKeyRef: - description: Selects a key of a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap - or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field of the pod: - supports metadata.name, metadata.namespace, - `metadata.labels['''']`, `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, - status.hostIP, status.podIP, status.podIPs.' properties: apiVersion: - description: Version of the schema - the FieldPath is written in terms - of, defaults to "v1". type: string fieldPath: - description: Path of the field to - select in the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource of the - container: only resources limits and - requests (limits.cpu, limits.memory, - limits.ephemeral-storage, requests.cpu, - requests.memory and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: required - for volumes, optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource to - select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret - in the pod's namespace properties: key: - description: The key of the secret - to select from. Must be a valid - secret key. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret - or its key must be defined type: boolean required: - key @@ -18932,71 +6512,21 @@ spec: type: object type: array volumeMounts: - description: VolumeMounts specifies the mount for - the volumes specified in `Volumes` section Use - this field only for `Function` type hook executor. items: - description: VolumeMount describes a mounting - of a Volume within a container. properties: mountPath: - description: Path within the container at - which the volume should be mounted. Must - not contain ':'. type: string mountPropagation: - description: mountPropagation determines how - mounts are propagated from the host to container - and the other way around. When not set, - MountPropagationNone is used. This field - is beta in 1.10. When RecursiveReadOnly - is set to IfPossible or to Enabled, MountPropagation - must be None or unspecified (which defaults - to None). type: string name: - description: This must match the Name of a - Volume. type: string readOnly: - description: Mounted read-only if true, read-write - otherwise (false or unspecified). Defaults - to false. type: boolean recursiveReadOnly: - description: "RecursiveReadOnly specifies - whether read-only mounts should be handled - recursively. \n If ReadOnly is false, this - field has no meaning and must be unspecified. - \n If ReadOnly is true, and this field is - set to Disabled, the mount is not made recursively - read-only. If this field is set to IfPossible, - the mount is made recursively read-only, - if it is supported by the container runtime. - \ If this field is set to Enabled, the mount - is made recursively read-only if it is supported - by the container runtime, otherwise the - pod will not be started and an error will - be generated to indicate the reason. \n - If this field is set to IfPossible or Enabled, - MountPropagation must be set to None (or - be unspecified, which defaults to None). - \n If this field is not specified, it is - treated as an equivalent of Disabled." type: string subPath: - description: Path within the volume from which - the container's volume should be mounted. - Defaults to "" (volume's root). type: string subPathExpr: - description: Expanded path within the volume - from which the container's volume should - be mounted. Behaves similarly to SubPath - but environment variable references $(VAR_NAME) - are expanded using the container's environment. - Defaults to "" (volume's root). SubPathExpr - and SubPath are mutually exclusive. type: string required: - mountPath @@ -19004,292 +6534,109 @@ spec: type: object type: array volumes: - description: Volumes indicates the list of volumes - of targeted application that should be mounted - on the hook executor. Use this field only for - `Function` type hook executor. items: - description: Volume represents a named volume - in a pod that may be accessed by any container - in the pod. properties: awsElasticBlockStore: - description: 'awsElasticBlockStore represents - an AWS Disk resource that is attached to - a kubelet''s host machine and then exposed - to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' properties: fsType: - description: 'fsType is the filesystem - type of the volume that you want to - mount. Tip: Ensure that the filesystem - type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the - filesystem from compromising the machine' type: string partition: - description: 'partition is the partition - in the volume that you want to mount. - If omitted, the default is to mount - by volume name. Examples: For volume - /dev/sda1, you specify the partition - as "1". Similarly, the volume partition - for /dev/sda is "0" (or you can leave - the property empty).' format: int32 type: integer readOnly: - description: 'readOnly value true will - force the readOnly setting in VolumeMounts. - More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: boolean volumeID: - description: 'volumeID is unique ID of - the persistent disk resource in AWS - (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: string required: - volumeID type: object azureDisk: - description: azureDisk represents an Azure - Data Disk mount on the host and bind mount - to the pod. properties: cachingMode: - description: 'cachingMode is the Host - Caching mode: None, Read Only, Read - Write.' type: string diskName: - description: diskName is the Name of the - data disk in the blob storage type: string diskURI: - description: diskURI is the URI of data - disk in the blob storage type: string fsType: - description: fsType is Filesystem type - to mount. Must be a filesystem type - supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string kind: - description: 'kind expected values are - Shared: multiple blob disks per storage - account Dedicated: single blob disk - per storage account Managed: azure - managed data disk (only in managed availability - set). defaults to shared' type: string readOnly: - description: readOnly Defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean required: - diskName - diskURI type: object azureFile: - description: azureFile represents an Azure - File Service mount on the host and bind - mount to the pod. properties: readOnly: - description: readOnly defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean secretName: - description: secretName is the name of - secret that contains Azure Storage Account - Name and Key type: string shareName: - description: shareName is the azure share - Name type: string required: - secretName - shareName type: object cephfs: - description: cephFS represents a Ceph FS mount - on the host that shares a pod's lifetime properties: monitors: - description: 'monitors is Required: Monitors - is a collection of Ceph monitors More - info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic path: - description: 'path is Optional: Used as - the mounted root, rather than the full - Ceph tree, default is /' type: string readOnly: - description: 'readOnly is Optional: Defaults - to false (read/write). ReadOnly here - will force the ReadOnly setting in VolumeMounts. - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: boolean secretFile: - description: 'secretFile is Optional: - SecretFile is the path to key ring for - User, default is /etc/ceph/user.secret - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string secretRef: - description: 'secretRef is Optional: SecretRef - is reference to the authentication secret - for User, default is empty. More info: - https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is optional: User is - the rados user name, default is admin - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string required: - monitors type: object cinder: - description: 'cinder represents a cinder volume - attached and mounted on kubelets host machine. - More info: https://examples.k8s.io/mysql-cinder-pd/README.md' properties: fsType: - description: 'fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string readOnly: - description: 'readOnly defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. - More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: boolean secretRef: - description: 'secretRef is optional: points - to a secret object containing parameters - used to connect to OpenStack.' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeID: - description: 'volumeID used to identify - the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string required: - volumeID type: object configMap: - description: configMap represents a configMap - that should populate this volume properties: defaultMode: - description: 'defaultMode is optional: - mode bits used to set permissions on - created files by default. Must be an - octal value between 0000 and 0777 or - a decimal value between 0 and 511. YAML - accepts both octal and decimal values, - JSON requires decimal values for mode - bits. Defaults to 0644. Directories - within the path are not affected by - this setting. This might be in conflict - with other options that affect the file - mode, like fsGroup, and the result can - be other mode bits set.' format: int32 type: integer items: - description: items if unspecified, each - key-value pair in the Data field of - the referenced ConfigMap will be projected - into the volume as a file whose name - is the key and content is the value. - If specified, the listed keys will be - projected into the specified paths, - and unlisted keys will not be present. - If a key is specified which is not present - in the ConfigMap, the volume setup will - error unless it is marked optional. - Paths must be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key to a - path within a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an octal - value between 0000 and 0777 or - a decimal value between 0 and - 511. YAML accepts both octal and - decimal values, JSON requires - decimal values for mode bits. - If not specified, the volume defaultMode - will be used. This might be in - conflict with other options that - affect the file mode, like fsGroup, - and the result can be other mode - bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the key - to. May not be an absolute path. - May not contain the path element - '..'. May not start with the string - '..'. type: string required: - key @@ -19299,185 +6646,67 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether - the ConfigMap or its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic csi: - description: csi (Container Storage Interface) - represents ephemeral storage that is handled - by certain external CSI drivers (Beta feature). properties: driver: - description: driver is the name of the - CSI driver that handles this volume. - Consult with your admin for the correct - name as registered in the cluster. type: string fsType: - description: fsType to mount. Ex. "ext4", - "xfs", "ntfs". If not provided, the - empty value is passed to the associated - CSI driver which will determine the - default filesystem to apply. type: string nodePublishSecretRef: - description: nodePublishSecretRef is a - reference to the secret object containing - sensitive information to pass to the - CSI driver to complete the CSI NodePublishVolume - and NodeUnpublishVolume calls. This - field is optional, and may be empty - if no secret is required. If the secret - object contains more than one secret, - all secret references are passed. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic readOnly: - description: readOnly specifies a read-only - configuration for the volume. Defaults - to false (read/write). type: boolean volumeAttributes: additionalProperties: type: string - description: volumeAttributes stores driver-specific - properties that are passed to the CSI - driver. Consult your driver's documentation - for supported values. type: object required: - driver type: object downwardAPI: - description: downwardAPI represents downward - API about the pod that should populate this - volume properties: defaultMode: - description: 'Optional: mode bits to use - on created files by default. Must be - a Optional: mode bits used to set permissions - on created files by default. Must be - an octal value between 0000 and 0777 - or a decimal value between 0 and 511. - YAML accepts both octal and decimal - values, JSON requires decimal values - for mode bits. Defaults to 0644. Directories - within the path are not affected by - this setting. This might be in conflict - with other options that affect the file - mode, like fsGroup, and the result can - be other mode bits set.' format: int32 type: integer items: - description: Items is a list of downward - API volume file items: - description: DownwardAPIVolumeFile represents - information to create the file containing - the pod field properties: fieldRef: - description: 'Required: Selects - a field of the pod: only annotations, - labels, name, namespace and uid - are supported.' properties: apiVersion: - description: Version of the - schema the FieldPath is written - in terms of, defaults to "v1". type: string fieldPath: - description: Path of the field - to select in the specified - API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode bits - used to set permissions on this - file, must be an octal value between - 0000 and 0777 or a decimal value - between 0 and 511. YAML accepts - both octal and decimal values, - JSON requires decimal values for - mode bits. If not specified, the - volume defaultMode will be used. - This might be in conflict with - other options that affect the - file mode, like fsGroup, and the - result can be other mode bits - set.' format: int32 type: integer path: - description: 'Required: Path is the - relative path name of the file - to be created. Must not be absolute - or contain the ''..'' path. Must - be utf-8 encoded. The first item - of the relative path must not - start with ''..''' type: string resourceFieldRef: - description: 'Selects a resource - of the container: only resources - limits and requests (limits.cpu, - limits.memory, requests.cpu and - requests.memory) are currently - supported.' properties: containerName: - description: 'Container name: - required for volumes, optional - for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource - to select' type: string required: - resource @@ -19490,232 +6719,50 @@ spec: x-kubernetes-list-type: atomic type: object emptyDir: - description: 'emptyDir represents a temporary - directory that shares a pod''s lifetime. - More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' properties: medium: - description: 'medium represents what type - of storage medium should back this directory. - The default is "" which means to use - the node''s default medium. Must be - an empty string (default) or Memory. - More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' type: string sizeLimit: anyOf: - type: integer - type: string - description: 'sizeLimit is the total amount - of local storage required for this EmptyDir - volume. The size limit is also applicable - for memory medium. The maximum usage - on memory medium EmptyDir would be the - minimum value between the SizeLimit - specified here and the sum of memory - limits of all containers in a pod. The - default is nil which means that the - limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object ephemeral: - description: "ephemeral represents a volume - that is handled by a cluster storage driver. - The volume's lifecycle is tied to the pod - that defines it - it will be created before - the pod starts, and deleted when the pod - is removed. \n Use this if: a) the volume - is only needed while the pod runs, b) features - of normal volumes like restoring from snapshot - or capacity tracking are needed, c) the - storage driver is specified through a storage - class, and d) the storage driver supports - dynamic volume provisioning through a PersistentVolumeClaim - (see EphemeralVolumeSource for more information - on the connection between this volume type - and PersistentVolumeClaim). \n Use PersistentVolumeClaim - or one of the vendor-specific APIs for volumes - that persist for longer than the lifecycle - of an individual pod. \n Use CSI for light-weight - local ephemeral volumes if the CSI driver - is meant to be used that way - see the documentation - of the driver for more information. \n A - pod can use both types of ephemeral volumes - and persistent volumes at the same time." properties: volumeClaimTemplate: - description: "Will be used to create a - stand-alone PVC to provision the volume. - The pod in which this EphemeralVolumeSource - is embedded will be the owner of the - PVC, i.e. the PVC will be deleted together - with the pod. The name of the PVC will - be `-` where - `` is the name from the - `PodSpec.Volumes` array entry. Pod validation - will reject the pod if the concatenated - name is not valid for a PVC (for example, - too long). \n An existing PVC with that - name that is not owned by the pod will - *not* be used for the pod to avoid using - an unrelated volume by mistake. Starting - the pod is then blocked until the unrelated - PVC is removed. If such a pre-created - PVC is meant to be used by the pod, - the PVC has to updated with an owner - reference to the pod once the pod exists. - Normally this should not be necessary, - but it may be useful when manually reconstructing - a broken cluster. \n This field is read-only - and no changes will be made by Kubernetes - to the PVC after it has been created. - \n Required, must not be nil." properties: metadata: - description: May contain labels and - annotations that will be copied - into the PVC when creating it. No - other fields are allowed and will - be rejected during validation. properties: annotations: additionalProperties: type: string - description: 'Annotations is an - unstructured key value map stored - with a resource that may be - set by external tools to store - and retrieve arbitrary metadata. - They are not queryable and should - be preserved when modifying - objects. More info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName is - an optional prefix, used by - the server, to generate a unique - name ONLY IF the Name field - has not been provided. If this - field is used, the name returned - to the client will be different - than the name passed. This value - will also be combined with a - unique suffix. The provided - value has the same validation - rules as the Name field, and - may be truncated by the length - of the suffix required to make - the value unique on the server. - \n If this field is specified - and the generated name exists, - the server will NOT return a - 409 - instead, it will either - return 201 Created or 500 with - Reason ServerTimeout indicating - a unique name could not be found - in the time allotted, and the - client should retry (optionally - after the time indicated in - the Retry-After header). \n - Applied only if Name is not - specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string keys - and values that can be used - to organize and categorize (scope - and select) objects. May match - selectors of replication controllers - and services. More info: http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must be unique - within a namespace. Is required - when creating resources, although - some resources may allow a client - to request the generation of - an appropriate name automatically. - Name is primarily intended for - creation idempotence and configuration - definition. Cannot be updated. - More info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace defines - the space within each name must - be unique. An empty namespace - is equivalent to the \"default\" - namespace, but \"default\" is - the canonical representation. - Not all objects are required - to be scoped to a namespace - - the value of this field for - those objects will be empty. - \n Must be a DNS_LABEL. Cannot - be updated. More info: http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects depended - by this object. If ALL objects - in the list have been deleted, - this object will be garbage - collected. If this object is - managed by a controller, then - an entry in this list will point - to this controller, with the - controller field set to true. - There cannot be more than one - managing controller. items: - description: OwnerReference - contains enough information - to let you identify an owning - object. An owning object must - be in the same namespace as - the dependent, or be cluster-scoped, - so there is no namespace field. properties: apiVersion: - description: API version - of the referent. type: string blockOwnerDeletion: - description: If true, AND - if the owner has the "foregroundDeletion" - finalizer, then the owner - cannot be deleted from - the key-value store until - this reference is removed. - See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage collector - interacts with this field - and enforces the foreground - deletion. Defaults to - false. To set this field, - a user needs "delete" - permission of the owner, - otherwise 422 (Unprocessable - Entity) will be returned. type: boolean controller: - description: If true, this - reference points to the - managing controller. type: boolean kind: - description: 'Kind of the - referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of the - referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the - referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -19727,61 +6774,19 @@ spec: type: array type: object spec: - description: The specification for - the PersistentVolumeClaim. The entire - content is copied unchanged into - the PVC that gets created from this - template. The same fields as in - a PersistentVolumeClaim are also - valid here. properties: accessModes: - description: 'accessModes contains - the desired access modes the - volume should have. More info: - https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource field - can be used to specify either: - * An existing VolumeSnapshot - object (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an external - controller can support the specified - data source, it will create - a new volume based on the contents - of the specified data source. - When the AnyVolumeDataSource - feature gate is enabled, dataSource - contents will be copied to dataSourceRef, - and dataSourceRef contents will - be copied to dataSource when - dataSourceRef.namespace is not - specified. If the namespace - is specified, then dataSourceRef - will not be copied to dataSource.' properties: apiGroup: - description: APIGroup is the - group for the resource being - referenced. If APIGroup - is not specified, the specified - Kind must be in the core - API group. For any other - third-party types, APIGroup - is required. type: string kind: - description: Kind is the type - of resource being referenced type: string name: - description: Name is the name - of resource being referenced type: string required: - kind @@ -19789,103 +6794,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef specifies - the object from which to populate - the volume with data, if a non-empty - volume is desired. This may - be any object from a non-empty - API group (non core object) - or a PersistentVolumeClaim object. - When this field is specified, - volume binding will only succeed - if the type of the specified - object matches some installed - volume populator or dynamic - provisioner. This field will - replace the functionality of - the dataSource field and as - such if both fields are non-empty, - they must have the same value. - For backwards compatibility, - when namespace isn''t specified - in dataSourceRef, both fields - (dataSource and dataSourceRef) - will be set to the same value - automatically if one of them - is empty and the other is non-empty. - When namespace is specified - in dataSourceRef, dataSource - isn''t set to the same value - and must be empty. There are - three important differences - between dataSource and dataSourceRef: - * While dataSource only allows - two specific types of objects, - dataSourceRef allows any non-core - object, as well as PersistentVolumeClaim - objects. * While dataSource - ignores disallowed values (dropping - them), dataSourceRef preserves - all values, and generates an - error if a disallowed value - is specified. * While dataSource - only allows local objects, dataSourceRef - allows objects in any namespaces. - (Beta) Using this field requires - the AnyVolumeDataSource feature - gate to be enabled. (Alpha) - Using the namespace field of - dataSourceRef requires the CrossNamespaceVolumeDataSource - feature gate to be enabled.' properties: apiGroup: - description: APIGroup is the - group for the resource being - referenced. If APIGroup - is not specified, the specified - Kind must be in the core - API group. For any other - third-party types, APIGroup - is required. type: string kind: - description: Kind is the type - of resource being referenced type: string name: - description: Name is the name - of resource being referenced type: string namespace: - description: Namespace is - the namespace of resource - being referenced Note that - when a namespace is specified, - a gateway.networking.k8s.io/ReferenceGrant - object is required in the - referent namespace to allow - that namespace's owner to - accept the reference. See - the ReferenceGrant documentation - for details. (Alpha) This - field requires the CrossNamespaceVolumeDataSource - feature gate to be enabled. type: string required: - kind - name type: object resources: - description: 'resources represents - the minimum resources the volume - should have. If RecoverVolumeExpansionFailure - feature is enabled users are - allowed to specify resource - requirements that are lower - than previous value but must - still be higher than capacity - recorded in the status field - of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -19894,10 +6816,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes - the maximum amount of compute - resources allowed. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -19906,64 +6824,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes - the minimum amount of compute - resources required. If Requests - is omitted for a container, - it defaults to Limits if - that is explicitly specified, - otherwise to an implementation-defined - value. Requests cannot exceed - Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is a label - query over volumes to consider - for binding. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to a - set of values. Valid - operators are In, - NotIn, Exists and - DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, the - values array must - be non-empty. If the - operator is Exists - or DoesNotExist, the - values array must - be empty. This array - is replaced during - a strategic merge - patch. items: type: string type: array @@ -19977,68 +6849,16 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in - the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName - is the name of the StorageClass - required by the claim. More - info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName - may be used to set the VolumeAttributesClass - used by this claim. If specified, - the CSI driver will create or - update the volume with the attributes - defined in the corresponding - VolumeAttributesClass. This - has a different purpose than - storageClassName, it can be - changed after the claim is created. - An empty string value means - that no VolumeAttributesClass - will be applied to the claim - but it''s not allowed to reset - this field to empty string once - it is set. If unspecified and - the PersistentVolumeClaim is - unbound, the default VolumeAttributesClass - will be set by the persistentvolume - controller if it exists. If - the resource referred to by - volumeAttributesClass does not - exist, this PersistentVolumeClaim - will be set to a Pending state, - as reflected by the modifyVolumeStatus - field, until such as a resource - exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires - the VolumeAttributesClass feature - gate to be enabled.' type: string volumeMode: - description: volumeMode defines - what type of volume is required - by the claim. Value of Filesystem - is implied when not included - in claim spec. type: string volumeName: - description: volumeName is the - binding reference to the PersistentVolume - backing this claim. type: string type: object required: @@ -20046,98 +6866,41 @@ spec: type: object type: object fc: - description: fc represents a Fibre Channel - resource that is attached to a kubelet's - host machine and then exposed to the pod. properties: fsType: - description: 'fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. - TODO: how do we prevent errors in the - filesystem from compromising the machine' type: string lun: - description: 'lun is Optional: FC target - lun number' format: int32 type: integer readOnly: - description: 'readOnly is Optional: Defaults - to false (read/write). ReadOnly here - will force the ReadOnly setting in VolumeMounts.' type: boolean targetWWNs: - description: 'targetWWNs is Optional: - FC target worldwide names (WWNs)' items: type: string type: array x-kubernetes-list-type: atomic wwids: - description: 'wwids Optional: FC volume - world wide identifiers (wwids) Either - wwids or combination of targetWWNs and - lun must be set, but not both simultaneously.' items: type: string type: array x-kubernetes-list-type: atomic type: object flexVolume: - description: flexVolume represents a generic - volume resource that is provisioned/attached - using an exec based plugin. properties: driver: - description: driver is the name of the - driver to use for this volume. type: string fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". The - default filesystem depends on FlexVolume - script. type: string options: additionalProperties: type: string - description: 'options is Optional: this - field holds extra command options if - any.' type: object readOnly: - description: 'readOnly is Optional: defaults - to false (read/write). ReadOnly here - will force the ReadOnly setting in VolumeMounts.' type: boolean secretRef: - description: 'secretRef is Optional: secretRef - is reference to the secret object containing - sensitive information to pass to the - plugin scripts. This may be empty if - no secret object is specified. If the - secret object contains more than one - secret, all secrets are passed to the - plugin scripts.' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic @@ -20145,201 +6908,79 @@ spec: - driver type: object flocker: - description: flocker represents a Flocker - volume attached to a kubelet's host machine. - This depends on the Flocker control service - being running properties: datasetName: - description: datasetName is Name of the - dataset stored as metadata -> name on - the dataset for Flocker should be considered - as deprecated type: string datasetUUID: - description: datasetUUID is the UUID of - the dataset. This is unique identifier - of a Flocker dataset type: string type: object gcePersistentDisk: - description: 'gcePersistentDisk represents - a GCE Disk resource that is attached to - a kubelet''s host machine and then exposed - to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' properties: fsType: - description: 'fsType is filesystem type - of the volume that you want to mount. - Tip: Ensure that the filesystem type - is supported by the host operating system. - Examples: "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. - More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the - filesystem from compromising the machine' type: string partition: - description: 'partition is the partition - in the volume that you want to mount. - If omitted, the default is to mount - by volume name. Examples: For volume - /dev/sda1, you specify the partition - as "1". Similarly, the volume partition - for /dev/sda is "0" (or you can leave - the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' format: int32 type: integer pdName: - description: 'pdName is unique name of - the PD resource in GCE. Used to identify - the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: string readOnly: - description: 'readOnly here will force - the ReadOnly setting in VolumeMounts. - Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: boolean required: - pdName type: object glusterfs: - description: 'glusterfs represents a Glusterfs - mount on the host that shares a pod''s lifetime. - More info: https://examples.k8s.io/volumes/glusterfs/README.md' properties: endpoints: - description: 'endpoints is the endpoint - name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string path: - description: 'path is the Glusterfs volume - path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string readOnly: - description: 'readOnly here will force - the Glusterfs volume to be mounted with - read-only permissions. Defaults to false. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: boolean required: - endpoints - path type: object hostPath: - description: 'hostPath represents a pre-existing - file or directory on the host machine that - is directly exposed to the container. This - is generally used for system agents or other - privileged things that are allowed to see - the host machine. Most containers will NOT - need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- TODO(jonesdl) We need to restrict who - can use host directory mounts and who can/can - not mount host directories as read/write.' properties: path: - description: 'path of the directory on - the host. If the path is a symlink, - it will follow the link to the real - path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string type: - description: 'type for HostPath Volume - Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string required: - path type: object iscsi: - description: 'iscsi represents an ISCSI Disk - resource that is attached to a kubelet''s - host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md' properties: chapAuthDiscovery: - description: chapAuthDiscovery defines - whether support iSCSI Discovery CHAP - authentication type: boolean chapAuthSession: - description: chapAuthSession defines whether - support iSCSI Session CHAP authentication type: boolean fsType: - description: 'fsType is the filesystem - type of the volume that you want to - mount. Tip: Ensure that the filesystem - type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the - filesystem from compromising the machine' type: string initiatorName: - description: initiatorName is the custom - iSCSI Initiator Name. If initiatorName - is specified with iscsiInterface simultaneously, - new iSCSI interface : will be created for the connection. type: string iqn: - description: iqn is the target iSCSI Qualified - Name. type: string iscsiInterface: - description: iscsiInterface is the interface - Name that uses an iSCSI transport. Defaults - to 'default' (tcp). type: string lun: - description: lun represents iSCSI Target - Lun number. format: int32 type: integer portals: - description: portals is the iSCSI Target - Portal List. The portal is either an - IP or ip_addr:port if the port is other - than default (typically TCP ports 860 - and 3260). items: type: string type: array x-kubernetes-list-type: atomic readOnly: - description: readOnly here will force - the ReadOnly setting in VolumeMounts. - Defaults to false. type: boolean secretRef: - description: secretRef is the CHAP Secret - for iSCSI target and initiator authentication properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic targetPortal: - description: targetPortal is iSCSI Target - Portal. The Portal is either an IP or - ip_addr:port if the port is other than - default (typically TCP ports 860 and - 3260). type: string required: - iqn @@ -20347,196 +6988,68 @@ spec: - targetPortal type: object name: - description: 'name of the volume. Must be - a DNS_LABEL and unique within the pod. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string nfs: - description: 'nfs represents an NFS mount - on the host that shares a pod''s lifetime - More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' properties: path: - description: 'path that is exported by - the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string readOnly: - description: 'readOnly here will force - the NFS export to be mounted with read-only - permissions. Defaults to false. More - info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: boolean server: - description: 'server is the hostname or - IP address of the NFS server. More info: - https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string required: - path - server type: object persistentVolumeClaim: - description: 'persistentVolumeClaimVolumeSource - represents a reference to a PersistentVolumeClaim - in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: claimName: - description: 'claimName is the name of - a PersistentVolumeClaim in the same - namespace as the pod using this volume. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' type: string readOnly: - description: readOnly Will force the ReadOnly - setting in VolumeMounts. Default false. type: boolean required: - claimName type: object photonPersistentDisk: - description: photonPersistentDisk represents - a PhotonController persistent disk attached - and mounted on kubelets host machine properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string pdID: - description: pdID is the ID that identifies - Photon Controller persistent disk type: string required: - pdID type: object portworxVolume: - description: portworxVolume represents a portworx - volume attached and mounted on kubelets - host machine properties: fsType: - description: fSType represents the filesystem - type to mount Must be a filesystem type - supported by the host operating system. - Ex. "ext4", "xfs". Implicitly inferred - to be "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean volumeID: - description: volumeID uniquely identifies - a Portworx volume type: string required: - volumeID type: object projected: - description: projected items for all in one - resources secrets, configmaps, and downward - API properties: defaultMode: - description: defaultMode are the mode - bits used to set permissions on created - files by default. Must be an octal value - between 0000 and 0777 or a decimal value - between 0 and 511. YAML accepts both - octal and decimal values, JSON requires - decimal values for mode bits. Directories - within the path are not affected by - this setting. This might be in conflict - with other options that affect the file - mode, like fsGroup, and the result can - be other mode bits set. format: int32 type: integer sources: - description: sources is the list of volume - projections items: - description: Projection that may be - projected along with other supported - volume types properties: clusterTrustBundle: - description: "ClusterTrustBundle - allows a pod to access the `.spec.trustBundle` - field of ClusterTrustBundle objects - in an auto-updating file. \n Alpha, - gated by the ClusterTrustBundleProjection - feature gate. \n ClusterTrustBundle - objects can either be selected - by name, or by the combination - of signer name and a label selector. - \n Kubelet performs aggressive - normalization of the PEM contents - written into the pod filesystem. - \ Esoteric PEM features such as - inter-block comments and block - headers are stripped. Certificates - are deduplicated. The ordering - of certificates within the file - is arbitrary, and Kubelet may - change the order over time." properties: labelSelector: - description: Select all ClusterTrustBundles - that match this label selector. Only - has effect if signerName is - set. Mutually-exclusive with - name. If unset, interpreted - as "match nothing". If set - but empty, interpreted as - "match everything". properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key - and values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, Exists - and DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -20550,115 +7063,31 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an element - of matchExpressions, whose - key field is "key", the - operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic name: - description: Select a single - ClusterTrustBundle by object - name. Mutually-exclusive - with signerName and labelSelector. type: string optional: - description: If true, don't - block pod startup if the referenced - ClusterTrustBundle(s) aren't - available. If using name, - then the named ClusterTrustBundle - is allowed not to exist. If - using signerName, then the - combination of signerName - and labelSelector is allowed - to match zero ClusterTrustBundles. type: boolean path: - description: Relative path from - the volume root to write the - bundle. type: string signerName: - description: Select all ClusterTrustBundles - that match this signer name. - Mutually-exclusive with name. The - contents of all selected ClusterTrustBundles - will be unified and deduplicated. type: string required: - path type: object configMap: - description: configMap information - about the configMap data to project properties: items: - description: items if unspecified, - each key-value pair in the - Data field of the referenced - ConfigMap will be projected - into the volume as a file - whose name is the key and - content is the value. If specified, - the listed keys will be projected - into the specified paths, - and unlisted keys will not - be present. If a key is specified - which is not present in the - ConfigMap, the volume setup - will error unless it is marked - optional. Paths must be relative - and may not contain the '..' - path or start with '..'. items: - description: Maps a string - key to a path within a volume. properties: key: - description: key is the - key to project. type: string mode: - description: 'mode is - Optional: mode bits - used to set permissions - on this file. Must be - an octal value between - 0000 and 0777 or a decimal - value between 0 and - 511. YAML accepts both - octal and decimal values, - JSON requires decimal - values for mode bits. - If not specified, the - volume defaultMode will - be used. This might - be in conflict with - other options that affect - the file mode, like - fsGroup, and the result - can be other mode bits - set.' format: int32 type: integer path: - description: path is the - relative path of the - file to map the key - to. May not be an absolute - path. May not contain - the path element '..'. - May not start with the - string '..'. type: string required: - key @@ -20668,128 +7097,42 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify - whether the ConfigMap or its - keys must be defined type: boolean type: object x-kubernetes-map-type: atomic downwardAPI: - description: downwardAPI information - about the downwardAPI data to - project properties: items: - description: Items is a list - of DownwardAPIVolume file items: - description: DownwardAPIVolumeFile - represents information to - create the file containing - the pod field properties: fieldRef: - description: 'Required: - Selects a field of the - pod: only annotations, - labels, name, namespace - and uid are supported.' properties: apiVersion: - description: Version - of the schema the - FieldPath is written - in terms of, defaults - to "v1". type: string fieldPath: - description: Path - of the field to - select in the specified - API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: - mode bits used to set - permissions on this - file, must be an octal - value between 0000 and - 0777 or a decimal value - between 0 and 511. YAML - accepts both octal and - decimal values, JSON - requires decimal values - for mode bits. If not - specified, the volume - defaultMode will be - used. This might be - in conflict with other - options that affect - the file mode, like - fsGroup, and the result - can be other mode bits - set.' format: int32 type: integer path: - description: 'Required: - Path is the relative - path name of the file - to be created. Must - not be absolute or contain - the ''..'' path. Must - be utf-8 encoded. The - first item of the relative - path must not start - with ''..''' type: string resourceFieldRef: - description: 'Selects - a resource of the container: - only resources limits - and requests (limits.cpu, - limits.memory, requests.cpu - and requests.memory) - are currently supported.' properties: containerName: - description: 'Container - name: required for - volumes, optional - for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies - the output format - of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: - resource to select' type: string required: - resource @@ -20802,67 +7145,16 @@ spec: x-kubernetes-list-type: atomic type: object secret: - description: secret information - about the secret data to project properties: items: - description: items if unspecified, - each key-value pair in the - Data field of the referenced - Secret will be projected into - the volume as a file whose - name is the key and content - is the value. If specified, - the listed keys will be projected - into the specified paths, - and unlisted keys will not - be present. If a key is specified - which is not present in the - Secret, the volume setup will - error unless it is marked - optional. Paths must be relative - and may not contain the '..' - path or start with '..'. items: - description: Maps a string - key to a path within a volume. properties: key: - description: key is the - key to project. type: string mode: - description: 'mode is - Optional: mode bits - used to set permissions - on this file. Must be - an octal value between - 0000 and 0777 or a decimal - value between 0 and - 511. YAML accepts both - octal and decimal values, - JSON requires decimal - values for mode bits. - If not specified, the - volume defaultMode will - be used. This might - be in conflict with - other options that affect - the file mode, like - fsGroup, and the result - can be other mode bits - set.' format: int32 type: integer path: - description: path is the - relative path of the - file to map the key - to. May not be an absolute - path. May not contain - the path element '..'. - May not start with the - string '..'. type: string required: - key @@ -20872,66 +7164,19 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional field - specify whether the Secret - or its key must be defined type: boolean type: object x-kubernetes-map-type: atomic serviceAccountToken: - description: serviceAccountToken - is information about the serviceAccountToken - data to project properties: audience: - description: audience is the - intended audience of the token. - A recipient of a token must - identify itself with an identifier - specified in the audience - of the token, and otherwise - should reject the token. The - audience defaults to the identifier - of the apiserver. type: string expirationSeconds: - description: expirationSeconds - is the requested duration - of validity of the service - account token. As the token - approaches expiration, the - kubelet volume plugin will - proactively rotate the service - account token. The kubelet - will start trying to rotate - the token if the token is - older than 80 percent of its - time to live or if the token - is older than 24 hours.Defaults - to 1 hour and must be at least - 10 minutes. format: int64 type: integer path: - description: path is the path - relative to the mount point - of the file to project the - token into. type: string required: - path @@ -20941,188 +7186,79 @@ spec: x-kubernetes-list-type: atomic type: object quobyte: - description: quobyte represents a Quobyte - mount on the host that shares a pod's lifetime properties: group: - description: group to map volume access - to Default is no group type: string readOnly: - description: readOnly here will force - the Quobyte volume to be mounted with - read-only permissions. Defaults to false. type: boolean registry: - description: registry represents a single - or multiple Quobyte Registry services - specified as a string as host:port pair - (multiple entries are separated with - commas) which acts as the central registry - for volumes type: string tenant: - description: tenant owning the given Quobyte - volume in the Backend Used with dynamically - provisioned Quobyte volumes, value is - set by the plugin type: string user: - description: user to map volume access - to Defaults to serivceaccount user type: string volume: - description: volume is a string that references - an already created Quobyte volume by - name. type: string required: - registry - volume type: object rbd: - description: 'rbd represents a Rados Block - Device mount on the host that shares a pod''s - lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md' properties: fsType: - description: 'fsType is the filesystem - type of the volume that you want to - mount. Tip: Ensure that the filesystem - type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the - filesystem from compromising the machine' type: string image: - description: 'image is the rados image - name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string keyring: - description: 'keyring is the path to key - ring for RBDUser. Default is /etc/ceph/keyring. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string monitors: - description: 'monitors is a collection - of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic pool: - description: 'pool is the rados pool name. - Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string readOnly: - description: 'readOnly here will force - the ReadOnly setting in VolumeMounts. - Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: boolean secretRef: - description: 'secretRef is name of the - authentication secret for RBDUser. If - provided overrides keyring. Default - is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is the rados user name. - Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string required: - image - monitors type: object scaleIO: - description: scaleIO represents a ScaleIO - persistent volume attached and mounted on - Kubernetes nodes. properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". Default - is "xfs". type: string gateway: - description: gateway is the host address - of the ScaleIO API Gateway. type: string protectionDomain: - description: protectionDomain is the name - of the ScaleIO Protection Domain for - the configured storage. type: string readOnly: - description: readOnly Defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean secretRef: - description: secretRef references to the - secret for ScaleIO user and other sensitive - information. If this is not provided, - Login operation will fail. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic sslEnabled: - description: sslEnabled Flag enable/disable - SSL communication with Gateway, default - false type: boolean storageMode: - description: storageMode indicates whether - the storage for a volume should be ThickProvisioned - or ThinProvisioned. Default is ThinProvisioned. type: string storagePool: - description: storagePool is the ScaleIO - Storage Pool associated with the protection - domain. type: string system: - description: system is the name of the - storage system as configured in ScaleIO. type: string volumeName: - description: volumeName is the name of - a volume already created in the ScaleIO - system that is associated with this - volume source. type: string required: - gateway @@ -21130,71 +7266,19 @@ spec: - system type: object secret: - description: 'secret represents a secret that - should populate this volume. More info: - https://kubernetes.io/docs/concepts/storage/volumes#secret' properties: defaultMode: - description: 'defaultMode is Optional: - mode bits used to set permissions on - created files by default. Must be an - octal value between 0000 and 0777 or - a decimal value between 0 and 511. YAML - accepts both octal and decimal values, - JSON requires decimal values for mode - bits. Defaults to 0644. Directories - within the path are not affected by - this setting. This might be in conflict - with other options that affect the file - mode, like fsGroup, and the result can - be other mode bits set.' format: int32 type: integer items: - description: items If unspecified, each - key-value pair in the Data field of - the referenced Secret will be projected - into the volume as a file whose name - is the key and content is the value. - If specified, the listed keys will be - projected into the specified paths, - and unlisted keys will not be present. - If a key is specified which is not present - in the Secret, the volume setup will - error unless it is marked optional. - Paths must be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key to a - path within a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an octal - value between 0000 and 0777 or - a decimal value between 0 and - 511. YAML accepts both octal and - decimal values, JSON requires - decimal values for mode bits. - If not specified, the volume defaultMode - will be used. This might be in - conflict with other options that - affect the file mode, like fsGroup, - and the result can be other mode - bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the key - to. May not be an absolute path. - May not contain the path element - '..'. May not start with the string - '..'. type: string required: - key @@ -21203,98 +7287,37 @@ spec: type: array x-kubernetes-list-type: atomic optional: - description: optional field specify whether - the Secret or its keys must be defined type: boolean secretName: - description: 'secretName is the name of - the secret in the pod''s namespace to - use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' type: string type: object storageos: - description: storageOS represents a StorageOS - volume attached and mounted on Kubernetes - nodes. properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean secretRef: - description: secretRef specifies the secret - to use for obtaining the StorageOS API - credentials. If not specified, default - values will be attempted. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeName: - description: volumeName is the human-readable - name of the StorageOS volume. Volume - names are only unique within a namespace. type: string volumeNamespace: - description: volumeNamespace specifies - the scope of the volume within StorageOS. If - no namespace is specified then the Pod's - namespace will be used. This allows - the Kubernetes name scoping to be mirrored - within StorageOS for tighter integration. - Set VolumeName to any name to override - the default behaviour. Set to "default" - if you are not using namespaces within - StorageOS. Namespaces that do not pre-exist - within StorageOS will be created. type: string type: object vsphereVolume: - description: vsphereVolume represents a vSphere - volume attached and mounted on kubelets - host machine properties: fsType: - description: fsType is filesystem type - to mount. Must be a filesystem type - supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string storagePolicyID: - description: storagePolicyID is the storage - Policy Based Management (SPBM) profile - ID associated with the StoragePolicyName. type: string storagePolicyName: - description: storagePolicyName is the - storage Policy Based Management (SPBM) - profile name. type: string volumePath: - description: volumePath is the path that - identifies vSphere volume vmdk type: string required: - volumePath @@ -21306,220 +7329,93 @@ spec: type: object type: array preBackup: - description: PreBackup specifies a list of hooks that - will be executed before backup items: - description: HookInfo specifies the information about - the backup/restore hooks properties: executionPolicy: default: Always - description: 'ExecutionPolicy specifies when to - execute the hook. Valid values are: - "Always": - KubeStash will execute this hook no matter the - backup/restore failed. This is the default execution - policy. - "OnSuccess": KubeStash will execute - this hook only if the backup/restore has succeeded. - - "OnFailure": KubeStash will execute this hook - only if the backup/restore has failed.' enum: - Always - OnSuccess - OnFailure type: string hookTemplate: - description: HookTemplate points to a HookTemplate - CR that will be used to execute the hook. You - can refer to a HookTemplate from other namespaces - as long as your current namespace is allowed by - the `usagePolicy` in the respective HookTemplate. properties: name: - description: 'Name of the referent. More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: - description: 'Namespace of the referent. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string required: - name type: object maxRetry: - description: MaxRetry specifies how many times KubeStash - should retry the hook execution in case of failure. - The default value of this field is 0 which means - no retry. format: int32 minimum: 0 type: integer name: - description: Name specifies a name for the hook type: string params: - description: Params specifies parameters for the - hook. You must provide the parameter in the HookTemplates - desired structure. type: object x-kubernetes-preserve-unknown-fields: true runtimeSettings: - description: RuntimeSettings specifies runtime configurations - for the hook executor Job. Use this field only - for `Function` type hook executor. properties: container: properties: env: - description: List of environment variables - to set in the container. Cannot be updated. items: - description: EnvVar represents an environment - variable present in a Container. properties: name: - description: Name of the environment - variable. Must be a C_IDENTIFIER. type: string value: - description: 'Variable references - $(VAR_NAME) are expanded using the - previously defined environment variables - in the container and any service - environment variables. If a variable - cannot be resolved, the reference - in the input string will be unchanged. - Double $$ are reduced to a single - $, which allows for escaping the - $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" - will produce the string literal - "$(VAR_NAME)". Escaped references - will never be expanded, regardless - of whether the variable exists or - not. Defaults to "".' type: string valueFrom: - description: Source for the environment - variable's value. Cannot be used - if value is not empty. properties: configMapKeyRef: - description: Selects a key of - a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the - referent. This field is - effectively required, but - due to backwards compatibility - is allowed to be empty. - Instances of this type with - an empty value here are - almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether - the ConfigMap or its key - must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field - of the pod: supports metadata.name, - metadata.namespace, `metadata.labels['''']`, - `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, - status.hostIP, status.podIP, - status.podIPs.' properties: apiVersion: - description: Version of the - schema the FieldPath is - written in terms of, defaults - to "v1". type: string fieldPath: - description: Path of the field - to select in the specified - API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource - of the container: only resources - limits and requests (limits.cpu, - limits.memory, limits.ephemeral-storage, - requests.cpu, requests.memory - and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: - required for volumes, optional - for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the - output format of the exposed - resources, defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource - to select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of - a secret in the pod's namespace properties: key: - description: The key of the - secret to select from. Must - be a valid secret key. type: string name: default: "" - description: 'Name of the - referent. This field is - effectively required, but - due to backwards compatibility - is allowed to be empty. - Instances of this type with - an empty value here are - almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether - the Secret or its key must - be defined type: boolean required: - key @@ -21531,82 +7427,31 @@ spec: type: object type: array envFrom: - description: List of sources to populate - environment variables in the container. - The keys defined within a source must - be a C_IDENTIFIER. All invalid keys will - be reported as an event when the container - is starting. When a key exists in multiple - sources, the value associated with the - last source will take precedence. Values - defined by an Env with a duplicate key - will take precedence. Cannot be updated. items: - description: EnvFromSource represents - the source of a set of ConfigMaps properties: configMapRef: - description: The ConfigMap to select - from properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the - ConfigMap must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: - description: An optional identifier - to prepend to each key in the ConfigMap. - Must be a C_IDENTIFIER. type: string secretRef: - description: The Secret to select - from properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the - Secret must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array ionice: - description: 'Settings to configure `ionice` - to throttle the load on disk. More info: - http://kennystechtalk.blogspot.com/2015/04/throttling-cpu-usage-with-linux-cgroups.html - More info: https://oakbytes.wordpress.com/2012/06/06/linux-scheduler-cfs-and-nice/' properties: class: format: int32 @@ -21616,73 +7461,27 @@ spec: type: integer type: object lifecycle: - description: Actions that the management - system should take in response to container - lifecycle events. Cannot be updated. properties: postStart: - description: 'PostStart is called immediately - after a container is created. If the - handler fails, the container is terminated - and restarted according to its restart - policy. Other management of the container - blocks until the hook completes. More - info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the - action to take. properties: command: - description: Command is the - command line to execute inside - the container, the working - directory for the command is - root ('/') in the container's - filesystem. The command is - simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, - you need to explicitly call - out to that shell. Exit status - of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the - http request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. - You probably want to set "Host" - in httpHeaders instead. type: string httpHeaders: - description: Custom headers - to set in the request. HTTP - allows repeated headers. items: - description: HTTPHeader describes - a custom header to be used - in HTTP probes properties: name: - description: The header - field name. This will - be canonicalized upon - output, so case-variant - names will be understood - as the same header. type: string value: - description: The header - field value type: string required: - name @@ -21691,141 +7490,58 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access - on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number - of the port to access on the - container. Number must be - in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for - connecting to the host. Defaults - to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the - duration that the container should - sleep before being terminated. properties: seconds: - description: Seconds is the - number of seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket - is NOT supported as a LifecycleHandler - and kept for the backward compatibility. - There are no validation of this - field and lifecycle hooks will - fail in runtime when tcp handler - is specified. properties: host: - description: 'Optional: Host - name to connect to, defaults - to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name - of the port to access on the - container. Number must be - in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object type: object preStop: - description: 'PreStop is called immediately - before a container is terminated due - to an API request or management event - such as liveness/startup probe failure, - preemption, resource contention, etc. - The handler is not called if the container - crashes or exits. The Pod''s termination - grace period countdown begins before - the PreStop hook is executed. Regardless - of the outcome of the handler, the - container will eventually terminate - within the Pod''s termination grace - period (unless delayed by finalizers). - Other management of the container - blocks until the hook completes or - until the termination grace period - is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the - action to take. properties: command: - description: Command is the - command line to execute inside - the container, the working - directory for the command is - root ('/') in the container's - filesystem. The command is - simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, - you need to explicitly call - out to that shell. Exit status - of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the - http request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. - You probably want to set "Host" - in httpHeaders instead. type: string httpHeaders: - description: Custom headers - to set in the request. HTTP - allows repeated headers. items: - description: HTTPHeader describes - a custom header to be used - in HTTP probes properties: name: - description: The header - field name. This will - be canonicalized upon - output, so case-variant - names will be understood - as the same header. type: string value: - description: The header - field value type: string required: - name @@ -21834,63 +7550,33 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access - on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number - of the port to access on the - container. Number must be - in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for - connecting to the host. Defaults - to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the - duration that the container should - sleep before being terminated. properties: seconds: - description: Seconds is the - number of seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket - is NOT supported as a LifecycleHandler - and kept for the backward compatibility. - There are no validation of this - field and lifecycle hooks will - fail in runtime when tcp handler - is specified. properties: host: - description: 'Optional: Host - name to connect to, defaults - to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name - of the port to access on the - container. Number must be - in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port @@ -21898,91 +7584,38 @@ spec: type: object type: object livenessProbe: - description: 'Periodic probe of container - liveness. Container will be restarted - if the probe fails. Cannot be updated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the - command is root ('/') in the - container's filesystem. The command - is simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, you - need to explicitly call out to - that shell. Exit status of 0 is - treated as live/healthy and non-zero - is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults to - 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action - involving a GRPC port. properties: port: - description: Port number of the - gRPC service. Number must be in - the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name - of the service to place in the - gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the - default behavior is defined by - gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in - httpHeaders instead. type: string httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood - as the same header. type: string value: - description: The header field - value type: string required: - name @@ -21991,194 +7624,84 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the - HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after - the container has started before liveness - probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) - to perform the probe. Default to 10 - seconds. Minimum value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. - Must be 1 for liveness and startup. - Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an - action involving a TCP port. properties: host: - description: 'Optional: Host name - to connect to, defaults to the - pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully - upon probe failure. The grace period - is the duration in seconds after the - processes running in the pod are sent - a termination signal and the time - when the processes are forcibly halted - with a kill signal. Set this value - longer than the expected cleanup time - for your process. If this value is - nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value - overrides the value provided by the - pod spec. Value must be non-negative - integer. The value zero indicates - stop immediately via the kill signal - (no opportunity to shut down). This - is a beta field and requires enabling - ProbeTerminationGracePeriod feature - gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after - which the probe times out. Defaults - to 1 second. Minimum value is 1. More - info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object nice: - description: 'Settings to configure `nice` - to throttle the load on cpu. More info: - http://kennystechtalk.blogspot.com/2015/04/throttling-cpu-usage-with-linux-cgroups.html - More info: https://oakbytes.wordpress.com/2012/06/06/linux-scheduler-cfs-and-nice/' properties: adjustment: format: int32 type: integer type: object readinessProbe: - description: 'Periodic probe of container - service readiness. Container will be removed - from service endpoints if the probe fails. - Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the - command is root ('/') in the - container's filesystem. The command - is simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, you - need to explicitly call out to - that shell. Exit status of 0 is - treated as live/healthy and non-zero - is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults to - 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action - involving a GRPC port. properties: port: - description: Port number of the - gRPC service. Number must be in - the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name - of the service to place in the - gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the - default behavior is defined by - gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in - httpHeaders instead. type: string httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood - as the same header. type: string value: - description: The header field - value type: string required: - name @@ -22187,121 +7710,51 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the - HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after - the container has started before liveness - probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) - to perform the probe. Default to 10 - seconds. Minimum value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. - Must be 1 for liveness and startup. - Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an - action involving a TCP port. properties: host: - description: 'Optional: Host name - to connect to, defaults to the - pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully - upon probe failure. The grace period - is the duration in seconds after the - processes running in the pod are sent - a termination signal and the time - when the processes are forcibly halted - with a kill signal. Set this value - longer than the expected cleanup time - for your process. If this value is - nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value - overrides the value provided by the - pod spec. Value must be non-negative - integer. The value zero indicates - stop immediately via the kill signal - (no opportunity to shut down). This - is a beta field and requires enabling - ProbeTerminationGracePeriod feature - gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after - which the probe times out. Defaults - to 1 second. Minimum value is 1. More - info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object resources: - description: 'Compute Resources required - by container. Cannot be updated. More - info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' properties: claims: - description: "Claims lists the names - of resources, defined in spec.resourceClaims, - that are used by this container. \n - This is an alpha field and requires - enabling the DynamicResourceAllocation - feature gate. \n This field is immutable. - It can only be set for containers." items: - description: ResourceClaim references - one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the - name of one entry in pod.spec.resourceClaims - of the Pod where this field - is used. It makes that resource - available inside a container. type: string required: - name @@ -22317,9 +7770,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum - amount of compute resources allowed. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -22328,262 +7778,77 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the - minimum amount of compute resources - required. If Requests is omitted for - a container, it defaults to Limits - if that is explicitly specified, otherwise - to an implementation-defined value. - Requests cannot exceed Limits. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object securityContext: - description: 'Security options the pod should - run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: allowPrivilegeEscalation: - description: 'AllowPrivilegeEscalation - controls whether a process can gain - more privileges than its parent process. - This bool directly controls if the - no_new_privs flag will be set on the - container process. AllowPrivilegeEscalation - is true always when the container - is: 1) run as Privileged 2) has CAP_SYS_ADMIN - Note that this field cannot be set - when spec.os.name is windows.' type: boolean appArmorProfile: - description: appArmorProfile is the - AppArmor options to use by this container. - If set, this profile overrides the - pod's appArmorProfile. Note that this - field cannot be set when spec.os.name - is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile loaded on the node that - should be used. The profile must - be preconfigured on the node to - work. Must match the loaded name - of the profile. Must be set if - and only if type is "Localhost". type: string type: - description: 'type indicates which - kind of AppArmor profile will - be applied. Valid options are: - Localhost - a profile pre-loaded - on the node. RuntimeDefault - - the container runtime''s default - profile. Unconfined - no AppArmor - enforcement.' type: string required: - type type: object capabilities: - description: The capabilities to add/drop - when running containers. Defaults - to the default set of capabilities - granted by the container runtime. - Note that this field cannot be set - when spec.os.name is windows. properties: add: - description: Added capabilities items: - description: Capability represent - POSIX capabilities type type: string type: array x-kubernetes-list-type: atomic drop: - description: Removed capabilities items: - description: Capability represent - POSIX capabilities type type: string type: array x-kubernetes-list-type: atomic type: object privileged: - description: Run container in privileged - mode. Processes in privileged containers - are essentially equivalent to root - on the host. Defaults to false. Note - that this field cannot be set when - spec.os.name is windows. type: boolean procMount: - description: procMount denotes the type - of proc mount to use for the containers. - The default is DefaultProcMount which - uses the container runtime defaults - for readonly paths and masked paths. - This requires the ProcMountType feature - flag to be enabled. Note that this - field cannot be set when spec.os.name - is windows. type: string readOnlyRootFilesystem: - description: Whether this container - has a read-only root filesystem. Default - is false. Note that this field cannot - be set when spec.os.name is windows. type: boolean runAsGroup: - description: The GID to run the entrypoint - of the container process. Uses runtime - default if unset. May also be set - in PodSecurityContext. If set in - both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is - windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container - must run as a non-root user. If true, - the Kubelet will validate the image - at runtime to ensure that it does - not run as UID 0 (root) and fail to - start the container if it does. If - unset or false, no such validation - will be performed. May also be set - in PodSecurityContext. If set in - both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: boolean runAsUser: - description: The UID to run the entrypoint - of the container process. Defaults - to user specified in image metadata - if unspecified. May also be set in - PodSecurityContext. If set in both - SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is - windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to - be applied to the container. If unspecified, - the container runtime will allocate - a random SELinux context for each - container. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is - windows. properties: level: - description: Level is SELinux level - label that applies to the container. type: string role: - description: Role is a SELinux role - label that applies to the container. type: string type: - description: Type is a SELinux type - label that applies to the container. type: string user: - description: User is a SELinux user - label that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to - use by this container. If seccomp - options are provided at both the pod - & container level, the container options - override the pod options. Note that - this field cannot be set when spec.os.name - is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile defined in a file on - the node should be used. The profile - must be preconfigured on the node - to work. Must be a descending - path, relative to the kubelet's - configured seccomp profile location. - Must be set if type is "Localhost". - Must NOT be set for any other - type. type: string type: - description: "type indicates which - kind of seccomp profile will be - applied. Valid options are: \n - Localhost - a profile defined - in a file on the node should be - used. RuntimeDefault - the container - runtime default profile should - be used. Unconfined - no profile - should be applied." type: string required: - type type: object windowsOptions: - description: The Windows specific settings - applied to all containers. If unspecified, - the options from the PodSecurityContext - will be used. If set in both SecurityContext - and PodSecurityContext, the value - specified in SecurityContext takes - precedence. Note that this field cannot - be set when spec.os.name is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec - is where the GMSA admission webhook - (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA - credential spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName - is the name of the GMSA credential - spec to use. type: string hostProcess: - description: HostProcess determines - if a container should be run as - a 'Host Process' container. All - of a Pod's containers must have - the same effective HostProcess - value (it is not allowed to have - a mix of HostProcess containers - and non-HostProcess containers). - In addition, if HostProcess is - true then HostNetwork must also - be set to true. type: boolean runAsUserName: - description: The UserName in Windows - to run the entrypoint of the container - process. Defaults to the user - specified in image metadata if - unspecified. May also be set in - PodSecurityContext. If set in - both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: string type: object type: object @@ -22591,97 +7856,22 @@ spec: pod: properties: affinity: - description: If specified, the pod's scheduling - constraints properties: nodeAffinity: - description: Describes node affinity - scheduling rules for the pod. properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will - prefer to schedule pods to nodes - that satisfy the affinity expressions - specified by this field, but it - may choose a node that violates - one or more of the expressions. - The node that is most preferred - is the one with the greatest sum - of weights, i.e. for each node - that meets all of the scheduling - requirements (resource request, - requiredDuringScheduling affinity - expressions, etc.), compute a - sum by iterating through the elements - of this field and adding "weight" - to the sum if the node matches - the corresponding matchExpressions; - the node(s) with the highest sum - are the most preferred. items: - description: An empty preferred - scheduling term matches all - objects with implicit weight - 0 (i.e. it's a no-op). A null - preferred scheduling term matches - no objects (i.e. is also a no-op). properties: preference: - description: A node selector - term, associated with the - corresponding weight. properties: matchExpressions: - description: A list of - node selector requirements - by node's labels. items: - description: A node - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: The - label key that - the selector applies - to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators - are In, NotIn, - Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An - array of string - values. If the - operator is In - or NotIn, the - values array must - be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - If the operator - is Gt or Lt, the - values array must - have a single - element, which - will be interpreted - as an integer. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -22693,56 +7883,13 @@ spec: type: array x-kubernetes-list-type: atomic matchFields: - description: A list of - node selector requirements - by node's fields. items: - description: A node - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: The - label key that - the selector applies - to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators - are In, NotIn, - Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An - array of string - values. If the - operator is In - or NotIn, the - values array must - be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - If the operator - is Gt or Lt, the - values array must - have a single - element, which - will be interpreted - as an integer. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -22756,10 +7903,6 @@ spec: type: object x-kubernetes-map-type: atomic weight: - description: Weight associated - with matching the corresponding - nodeSelectorTerm, in the - range 1-100. format: int32 type: integer required: @@ -22769,81 +7912,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements - specified by this field are not - met at scheduling time, the pod - will not be scheduled onto the - node. If the affinity requirements - specified by this field cease - to be met at some point during - pod execution (e.g. due to an - update), the system may or may - not try to eventually evict the - pod from its node. properties: nodeSelectorTerms: - description: Required. A list - of node selector terms. The - terms are ORed. items: - description: A null or empty - node selector term matches - no objects. The requirements - of them are ANDed. The TopologySelectorTerm - type implements a subset - of the NodeSelectorTerm. properties: matchExpressions: - description: A list of - node selector requirements - by node's labels. items: - description: A node - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: The - label key that - the selector applies - to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators - are In, NotIn, - Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An - array of string - values. If the - operator is In - or NotIn, the - values array must - be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - If the operator - is Gt or Lt, the - values array must - have a single - element, which - will be interpreted - as an integer. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -22855,56 +7935,13 @@ spec: type: array x-kubernetes-list-type: atomic matchFields: - description: A list of - node selector requirements - by node's fields. items: - description: A node - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: The - label key that - the selector applies - to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators - are In, NotIn, - Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An - array of string - values. If the - operator is In - or NotIn, the - values array must - be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - If the operator - is Gt or Lt, the - values array must - have a single - element, which - will be interpreted - as an integer. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -22925,103 +7962,22 @@ spec: x-kubernetes-map-type: atomic type: object podAffinity: - description: Describes pod affinity - scheduling rules (e.g. co-locate this - pod in the same node, zone, etc. as - some other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will - prefer to schedule pods to nodes - that satisfy the affinity expressions - specified by this field, but it - may choose a node that violates - one or more of the expressions. - The node that is most preferred - is the one with the greatest sum - of weights, i.e. for each node - that meets all of the scheduling - requirements (resource request, - requiredDuringScheduling affinity - expressions, etc.), compute a - sum by iterating through the elements - of this field and adding "weight" - to the sum if the node has pods - which matches the corresponding - podAffinityTerm; the node(s) with - the highest sum are the most preferred. items: - description: The weights of all - of the matched WeightedPodAffinityTerm - fields are added per-node to - find the most preferred node(s) properties: podAffinityTerm: - description: Required. A pod - affinity term, associated - with the corresponding weight. properties: labelSelector: - description: A label query - over a set of resources, - in this case pods. If - it's null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label - selector requirements. - The requirements - are ANDed. items: - description: A label - selector requirement - is a selector - that contains - values, a key, - and an operator - that relates the - key and values. properties: key: - description: key - is the label - key that the - selector applies - to. type: string operator: - description: operator - represents - a key's relationship - to a set of - values. Valid - operators - are In, NotIn, - Exists and - DoesNotExist. type: string values: - description: values - is an array - of string - values. If - the operator - is In or NotIn, - the values - array must - be non-empty. - If the operator - is Exists - or DoesNotExist, - the values - array must - be empty. - This array - is replaced - during a strategic - merge patch. items: type: string type: array @@ -23035,163 +7991,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single - {key,value} in the - matchLabels map - is equivalent to - an element of matchExpressions, - whose key field - is "key", the operator - is "In", and the - values array contains - only "value". The - requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys - is a set of pod label - keys to select which - pods will be taken into - consideration. The keys - are used to lookup values - from the incoming pod - labels, those key-value - labels are merged with - `labelSelector` as `key - in (value)` to select - the group of existing - pods which pods will - be taken into consideration - for the incoming pod's - pod (anti) affinity. - Keys that don't exist - in the incoming pod - labels will be ignored. - The default value is - empty. The same key - is forbidden to exist - in both matchLabelKeys - and labelSelector. Also, - matchLabelKeys cannot - be set when labelSelector - isn't set. This is an - alpha field and requires - enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label - keys to select which - pods will be taken into - consideration. The keys - are used to lookup values - from the incoming pod - labels, those key-value - labels are merged with - `labelSelector` as `key - notin (value)` to select - the group of existing - pods which pods will - be taken into consideration - for the incoming pod's - pod (anti) affinity. - Keys that don't exist - in the incoming pod - labels will be ignored. - The default value is - empty. The same key - is forbidden to exist - in both mismatchLabelKeys - and labelSelector. Also, - mismatchLabelKeys cannot - be set when labelSelector - isn't set. This is an - alpha field and requires - enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query - over the set of namespaces - that the term applies - to. The term is applied - to the union of the - namespaces selected - by this field and the - ones listed in the namespaces - field. null selector - and null or empty namespaces - list means "this pod's - namespace". An empty - selector ({}) matches - all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label - selector requirements. - The requirements - are ANDed. items: - description: A label - selector requirement - is a selector - that contains - values, a key, - and an operator - that relates the - key and values. properties: key: - description: key - is the label - key that the - selector applies - to. type: string operator: - description: operator - represents - a key's relationship - to a set of - values. Valid - operators - are In, NotIn, - Exists and - DoesNotExist. type: string values: - description: values - is an array - of string - values. If - the operator - is In or NotIn, - the values - array must - be non-empty. - If the operator - is Exists - or DoesNotExist, - the values - array must - be empty. - This array - is replaced - during a strategic - merge patch. items: type: string type: array @@ -23205,66 +8027,20 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single - {key,value} in the - matchLabels map - is equivalent to - an element of matchExpressions, - whose key field - is "key", the operator - is "In", and the - values array contains - only "value". The - requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces - specifies a static list - of namespace names that - the term applies to. - The term is applied - to the union of the - namespaces listed in - this field and the ones - selected by namespaceSelector. - null or empty namespaces - list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod - should be co-located - (affinity) or not co-located - (anti-affinity) with - the pods matching the - labelSelector in the - specified namespaces, - where co-located is - defined as running on - a node whose value of - the label with key topologyKey - matches that of any - node on which any of - the selected pods is - running. Empty topologyKey - is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated - with matching the corresponding - podAffinityTerm, in the - range 1-100. format: int32 type: integer required: @@ -23274,88 +8050,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements - specified by this field are not - met at scheduling time, the pod - will not be scheduled onto the - node. If the affinity requirements - specified by this field cease - to be met at some point during - pod execution (e.g. due to a pod - label update), the system may - or may not try to eventually evict - the pod from its node. When there - are multiple elements, the lists - of nodes corresponding to each - podAffinityTerm are intersected, - i.e. all terms must be satisfied. items: - description: Defines a set of - pods (namely those matching - the labelSelector relative to - the given namespace(s)) that - this pod should be co-located - (affinity) or not co-located - (anti-affinity) with, where - co-located is defined as running - on a node whose value of the - label with key - matches that of any node on - which a pod of the set of pods - is running properties: labelSelector: - description: A label query - over a set of resources, - in this case pods. If it's - null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: key - is the label key - that the selector - applies to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values - is an array of - string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -23369,141 +8075,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an - element of matchExpressions, - whose key field is "key", - the operator is "In", - and the values array - contains only "value". - The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming - pod labels, those key-value - labels are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods - which pods will be taken - into consideration for the - incoming pod's pod (anti) - affinity. Keys that don't - exist in the incoming pod - labels will be ignored. - The default value is empty. - The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, - matchLabelKeys cannot be - set when labelSelector isn't - set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming - pod labels, those key-value - labels are merged with `labelSelector` - as `key notin (value)` to - select the group of existing - pods which pods will be - taken into consideration - for the incoming pod's pod - (anti) affinity. Keys that - don't exist in the incoming - pod labels will be ignored. - The default value is empty. - The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, - mismatchLabelKeys cannot - be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query - over the set of namespaces - that the term applies to. - The term is applied to the - union of the namespaces - selected by this field and - the ones listed in the namespaces - field. null selector and - null or empty namespaces - list means "this pod's namespace". - An empty selector ({}) matches - all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: key - is the label key - that the selector - applies to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values - is an array of - string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -23517,50 +8111,15 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an - element of matchExpressions, - whose key field is "key", - the operator is "In", - and the values array - contains only "value". - The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace - names that the term applies - to. The term is applied - to the union of the namespaces - listed in this field and - the ones selected by namespaceSelector. - null or empty namespaces - list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should - be co-located (affinity) - or not co-located (anti-affinity) - with the pods matching the - labelSelector in the specified - namespaces, where co-located - is defined as running on - a node whose value of the - label with key topologyKey - matches that of any node - on which any of the selected - pods is running. Empty topologyKey - is not allowed. type: string required: - topologyKey @@ -23569,104 +8128,22 @@ spec: x-kubernetes-list-type: atomic type: object podAntiAffinity: - description: Describes pod anti-affinity - scheduling rules (e.g. avoid putting - this pod in the same node, zone, etc. - as some other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will - prefer to schedule pods to nodes - that satisfy the anti-affinity - expressions specified by this - field, but it may choose a node - that violates one or more of the - expressions. The node that is - most preferred is the one with - the greatest sum of weights, i.e. - for each node that meets all of - the scheduling requirements (resource - request, requiredDuringScheduling - anti-affinity expressions, etc.), - compute a sum by iterating through - the elements of this field and - adding "weight" to the sum if - the node has pods which matches - the corresponding podAffinityTerm; - the node(s) with the highest sum - are the most preferred. items: - description: The weights of all - of the matched WeightedPodAffinityTerm - fields are added per-node to - find the most preferred node(s) properties: podAffinityTerm: - description: Required. A pod - affinity term, associated - with the corresponding weight. properties: labelSelector: - description: A label query - over a set of resources, - in this case pods. If - it's null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label - selector requirements. - The requirements - are ANDed. items: - description: A label - selector requirement - is a selector - that contains - values, a key, - and an operator - that relates the - key and values. properties: key: - description: key - is the label - key that the - selector applies - to. type: string operator: - description: operator - represents - a key's relationship - to a set of - values. Valid - operators - are In, NotIn, - Exists and - DoesNotExist. type: string values: - description: values - is an array - of string - values. If - the operator - is In or NotIn, - the values - array must - be non-empty. - If the operator - is Exists - or DoesNotExist, - the values - array must - be empty. - This array - is replaced - during a strategic - merge patch. items: type: string type: array @@ -23680,163 +8157,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single - {key,value} in the - matchLabels map - is equivalent to - an element of matchExpressions, - whose key field - is "key", the operator - is "In", and the - values array contains - only "value". The - requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys - is a set of pod label - keys to select which - pods will be taken into - consideration. The keys - are used to lookup values - from the incoming pod - labels, those key-value - labels are merged with - `labelSelector` as `key - in (value)` to select - the group of existing - pods which pods will - be taken into consideration - for the incoming pod's - pod (anti) affinity. - Keys that don't exist - in the incoming pod - labels will be ignored. - The default value is - empty. The same key - is forbidden to exist - in both matchLabelKeys - and labelSelector. Also, - matchLabelKeys cannot - be set when labelSelector - isn't set. This is an - alpha field and requires - enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label - keys to select which - pods will be taken into - consideration. The keys - are used to lookup values - from the incoming pod - labels, those key-value - labels are merged with - `labelSelector` as `key - notin (value)` to select - the group of existing - pods which pods will - be taken into consideration - for the incoming pod's - pod (anti) affinity. - Keys that don't exist - in the incoming pod - labels will be ignored. - The default value is - empty. The same key - is forbidden to exist - in both mismatchLabelKeys - and labelSelector. Also, - mismatchLabelKeys cannot - be set when labelSelector - isn't set. This is an - alpha field and requires - enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query - over the set of namespaces - that the term applies - to. The term is applied - to the union of the - namespaces selected - by this field and the - ones listed in the namespaces - field. null selector - and null or empty namespaces - list means "this pod's - namespace". An empty - selector ({}) matches - all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label - selector requirements. - The requirements - are ANDed. items: - description: A label - selector requirement - is a selector - that contains - values, a key, - and an operator - that relates the - key and values. properties: key: - description: key - is the label - key that the - selector applies - to. type: string operator: - description: operator - represents - a key's relationship - to a set of - values. Valid - operators - are In, NotIn, - Exists and - DoesNotExist. type: string values: - description: values - is an array - of string - values. If - the operator - is In or NotIn, - the values - array must - be non-empty. - If the operator - is Exists - or DoesNotExist, - the values - array must - be empty. - This array - is replaced - during a strategic - merge patch. items: type: string type: array @@ -23850,66 +8193,20 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single - {key,value} in the - matchLabels map - is equivalent to - an element of matchExpressions, - whose key field - is "key", the operator - is "In", and the - values array contains - only "value". The - requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces - specifies a static list - of namespace names that - the term applies to. - The term is applied - to the union of the - namespaces listed in - this field and the ones - selected by namespaceSelector. - null or empty namespaces - list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod - should be co-located - (affinity) or not co-located - (anti-affinity) with - the pods matching the - labelSelector in the - specified namespaces, - where co-located is - defined as running on - a node whose value of - the label with key topologyKey - matches that of any - node on which any of - the selected pods is - running. Empty topologyKey - is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated - with matching the corresponding - podAffinityTerm, in the - range 1-100. format: int32 type: integer required: @@ -23919,88 +8216,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the anti-affinity - requirements specified by this - field are not met at scheduling - time, the pod will not be scheduled - onto the node. If the anti-affinity - requirements specified by this - field cease to be met at some - point during pod execution (e.g. - due to a pod label update), the - system may or may not try to eventually - evict the pod from its node. When - there are multiple elements, the - lists of nodes corresponding to - each podAffinityTerm are intersected, - i.e. all terms must be satisfied. items: - description: Defines a set of - pods (namely those matching - the labelSelector relative to - the given namespace(s)) that - this pod should be co-located - (affinity) or not co-located - (anti-affinity) with, where - co-located is defined as running - on a node whose value of the - label with key - matches that of any node on - which a pod of the set of pods - is running properties: labelSelector: - description: A label query - over a set of resources, - in this case pods. If it's - null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: key - is the label key - that the selector - applies to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values - is an array of - string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -24014,141 +8241,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an - element of matchExpressions, - whose key field is "key", - the operator is "In", - and the values array - contains only "value". - The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming - pod labels, those key-value - labels are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods - which pods will be taken - into consideration for the - incoming pod's pod (anti) - affinity. Keys that don't - exist in the incoming pod - labels will be ignored. - The default value is empty. - The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, - matchLabelKeys cannot be - set when labelSelector isn't - set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming - pod labels, those key-value - labels are merged with `labelSelector` - as `key notin (value)` to - select the group of existing - pods which pods will be - taken into consideration - for the incoming pod's pod - (anti) affinity. Keys that - don't exist in the incoming - pod labels will be ignored. - The default value is empty. - The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, - mismatchLabelKeys cannot - be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query - over the set of namespaces - that the term applies to. - The term is applied to the - union of the namespaces - selected by this field and - the ones listed in the namespaces - field. null selector and - null or empty namespaces - list means "this pod's namespace". - An empty selector ({}) matches - all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: key - is the label key - that the selector - applies to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values - is an array of - string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -24162,50 +8277,15 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an - element of matchExpressions, - whose key field is "key", - the operator is "In", - and the values array - contains only "value". - The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace - names that the term applies - to. The term is applied - to the union of the namespaces - listed in this field and - the ones selected by namespaceSelector. - null or empty namespaces - list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should - be co-located (affinity) - or not co-located (anti-affinity) - with the pods matching the - labelSelector in the specified - namespaces, where co-located - is defined as running on - a node whose value of the - label with key topologyKey - matches that of any node - on which any of the selected - pods is running. Empty topologyKey - is not allowed. type: string required: - topologyKey @@ -24215,344 +8295,106 @@ spec: type: object type: object automountServiceAccountToken: - description: AutomountServiceAccountToken - indicates whether a service account token - should be automatically mounted. type: boolean enableServiceLinks: - description: 'EnableServiceLinks indicates - whether information about services should - be injected into pod''s environment variables, - matching the syntax of Docker links. Optional: - Defaults to true.' type: boolean imagePullSecrets: - description: 'ImagePullSecrets is an optional - list of references to secrets in the same - namespace to use for pulling any of the - images used by this PodRuntimeSettings. - If specified, these secrets will be passed - to individual puller implementations for - them to use. For example, in the case - of docker, only DockerConfig type secrets - are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod' items: - description: LocalObjectReference contains - enough information to let you locate - the referenced object inside the same - namespace. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic type: array nodeName: - description: NodeName is a request to schedule - this pod onto a specific node. If it is - non-empty, the scheduler simply schedules - this pod onto that node, assuming that - it fits resource requirements. type: string nodeSelector: additionalProperties: type: string - description: 'NodeSelector is a selector - which must be true for the pod to fit - on a node. Selector which must match a - node''s labels for the pod to be scheduled - on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/' type: object podAnnotations: additionalProperties: type: string - description: PodAnnotations are the annotations - that will be attached with the respective - Pod type: object podLabels: additionalProperties: type: string - description: PodLabels are the labels that - will be attached with the respective Pod type: object priority: - description: The priority value. Various - system components use this field to find - the priority of the pod. When Priority - Admission Controller is enabled, it prevents - users from setting this field. The admission - controller populates this field from PriorityClassName. - The higher the value, the higher the priority. format: int32 type: integer priorityClassName: - description: If specified, indicates the - pod's priority. "system-node-critical" - and "system-cluster-critical" are two - special keywords which indicate the highest - priorities with the former being the highest - priority. Any other name must be defined - by creating a PriorityClass object with - that name. If not specified, the pod priority - will be default or zero if there is no - default. type: string readinessGates: - description: 'If specified, all readiness - gates will be evaluated for pod readiness. - A pod is ready when all its containers - are ready AND all conditions specified - in the readiness gates have status equal - to "True" More info: https://git.k8s.io/enhancements/keps/sig-network/0007-pod-ready%2B%2B.md' items: - description: PodReadinessGate contains - the reference to a pod condition properties: conditionType: - description: ConditionType refers - to a condition in the pod's condition - list with matching type. type: string required: - conditionType type: object type: array runtimeClassName: - description: 'RuntimeClassName refers to - a RuntimeClass object in the node.k8s.io - group, which should be used to run this - pod. If no RuntimeClass resource matches - the named class, the pod will not be run. - If unset or empty, the "legacy" RuntimeClass - will be used, which is an implicit class - with an empty definition that uses the - default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md - This is an alpha feature and may change - in the future.' type: string schedulerName: - description: If specified, the pod will - be dispatched by specified scheduler. - If not specified, the pod will be dispatched - by default scheduler. type: string securityContext: - description: 'Security options the pod should - run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: appArmorProfile: - description: appArmorProfile is the - AppArmor options to use by the containers - in this pod. Note that this field - cannot be set when spec.os.name is - windows. properties: localhostProfile: - description: localhostProfile indicates - a profile loaded on the node that - should be used. The profile must - be preconfigured on the node to - work. Must match the loaded name - of the profile. Must be set if - and only if type is "Localhost". type: string type: - description: 'type indicates which - kind of AppArmor profile will - be applied. Valid options are: - Localhost - a profile pre-loaded - on the node. RuntimeDefault - - the container runtime''s default - profile. Unconfined - no AppArmor - enforcement.' type: string required: - type type: object fsGroup: - description: "A special supplemental - group that applies to all containers - in a pod. Some volume types allow - the Kubelet to change the ownership - of that volume to be owned by the - pod: \n 1. The owning GID will be - the FSGroup 2. The setgid bit is set - (new files created in the volume will - be owned by FSGroup) 3. The permission - bits are OR'd with rw-rw---- \n If - unset, the Kubelet will not modify - the ownership and permissions of any - volume. Note that this field cannot - be set when spec.os.name is windows." format: int64 type: integer fsGroupChangePolicy: - description: 'fsGroupChangePolicy defines - behavior of changing ownership and - permission of the volume before being - exposed inside Pod. This field will - only apply to volume types which support - fsGroup based ownership(and permissions). - It will have no effect on ephemeral - volume types such as: secret, configmaps - and emptydir. Valid values are "OnRootMismatch" - and "Always". If not specified, "Always" - is used. Note that this field cannot - be set when spec.os.name is windows.' type: string runAsGroup: - description: The GID to run the entrypoint - of the container process. Uses runtime - default if unset. May also be set - in SecurityContext. If set in both - SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence for that container. - Note that this field cannot be set - when spec.os.name is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container - must run as a non-root user. If true, - the Kubelet will validate the image - at runtime to ensure that it does - not run as UID 0 (root) and fail to - start the container if it does. If - unset or false, no such validation - will be performed. May also be set - in SecurityContext. If set in both - SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: boolean runAsUser: - description: The UID to run the entrypoint - of the container process. Defaults - to user specified in image metadata - if unspecified. May also be set in - SecurityContext. If set in both SecurityContext - and PodSecurityContext, the value - specified in SecurityContext takes - precedence for that container. Note - that this field cannot be set when - spec.os.name is windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to - be applied to all containers. If unspecified, - the container runtime will allocate - a random SELinux context for each - container. May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence for that container. - Note that this field cannot be set - when spec.os.name is windows. properties: level: - description: Level is SELinux level - label that applies to the container. type: string role: - description: Role is a SELinux role - label that applies to the container. type: string type: - description: Type is a SELinux type - label that applies to the container. type: string user: - description: User is a SELinux user - label that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to - use by the containers in this pod. - Note that this field cannot be set - when spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile defined in a file on - the node should be used. The profile - must be preconfigured on the node - to work. Must be a descending - path, relative to the kubelet's - configured seccomp profile location. - Must be set if type is "Localhost". - Must NOT be set for any other - type. type: string type: - description: "type indicates which - kind of seccomp profile will be - applied. Valid options are: \n - Localhost - a profile defined - in a file on the node should be - used. RuntimeDefault - the container - runtime default profile should - be used. Unconfined - no profile - should be applied." type: string required: - type type: object supplementalGroups: - description: A list of groups applied - to the first process run in each container, - in addition to the container's primary - GID, the fsGroup (if specified), and - group memberships defined in the container - image for the uid of the container - process. If unspecified, no additional - groups are added to any container. - Note that group memberships defined - in the container image for the uid - of the container process are still - effective, even if they are not included - in this list. Note that this field - cannot be set when spec.os.name is - windows. items: format: int64 type: integer type: array x-kubernetes-list-type: atomic sysctls: - description: Sysctls hold a list of - namespaced sysctls used for the pod. - Pods with unsupported sysctls (by - the container runtime) might fail - to launch. Note that this field cannot - be set when spec.os.name is windows. items: - description: Sysctl defines a kernel - parameter to be set properties: name: - description: Name of a property - to set type: string value: - description: Value of a property - to set type: string required: - name @@ -24561,174 +8403,52 @@ spec: type: array x-kubernetes-list-type: atomic windowsOptions: - description: The Windows specific settings - applied to all containers. If unspecified, - the options within a container's SecurityContext - will be used. If set in both SecurityContext - and PodSecurityContext, the value - specified in SecurityContext takes - precedence. Note that this field cannot - be set when spec.os.name is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec - is where the GMSA admission webhook - (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA - credential spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName - is the name of the GMSA credential - spec to use. type: string hostProcess: - description: HostProcess determines - if a container should be run as - a 'Host Process' container. All - of a Pod's containers must have - the same effective HostProcess - value (it is not allowed to have - a mix of HostProcess containers - and non-HostProcess containers). - In addition, if HostProcess is - true then HostNetwork must also - be set to true. type: boolean runAsUserName: - description: The UserName in Windows - to run the entrypoint of the container - process. Defaults to the user - specified in image metadata if - unspecified. May also be set in - PodSecurityContext. If set in - both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: string type: object type: object serviceAccountAnnotations: additionalProperties: type: string - description: ServiceAccountAnnotations are - the annotations that will be attached - with the respective ServiceAccount type: object serviceAccountName: - description: 'ServiceAccountName is the - name of the ServiceAccount to use to run - this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/' type: string tolerations: - description: If specified, the pod's tolerations. items: - description: The pod this Toleration is - attached to tolerates any taint that - matches the triple - using the matching operator . properties: effect: - description: Effect indicates the - taint effect to match. Empty means - match all taint effects. When specified, - allowed values are NoSchedule, PreferNoSchedule - and NoExecute. type: string key: - description: Key is the taint key - that the toleration applies to. - Empty means match all taint keys. - If the key is empty, operator must - be Exists; this combination means - to match all values and all keys. type: string operator: - description: Operator represents a - key's relationship to the value. - Valid operators are Exists and Equal. - Defaults to Equal. Exists is equivalent - to wildcard for value, so that a - pod can tolerate all taints of a - particular category. type: string tolerationSeconds: - description: TolerationSeconds represents - the period of time the toleration - (which must be of effect NoExecute, - otherwise this field is ignored) - tolerates the taint. By default, - it is not set, which means tolerate - the taint forever (do not evict). - Zero and negative values will be - treated as 0 (evict immediately) - by the system. format: int64 type: integer value: - description: Value is the taint value - the toleration matches to. If the - operator is Exists, the value should - be empty, otherwise just a regular - string. type: string type: object type: array topologySpreadConstraints: - description: TopologySpreadConstraints describes - how a group of pods ought to spread across - topology domains. Scheduler will schedule - pods in a way which abides by the constraints. - All topologySpreadConstraints are ANDed. items: - description: TopologySpreadConstraint - specifies how to spread matching pods - among the given topology. properties: labelSelector: - description: LabelSelector is used - to find matching pods. Pods that - match this label selector are counted - to determine the number of pods - in their corresponding topology - domain. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a key, - and an operator that relates - the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator represents - a key's relationship to - a set of values. Valid - operators are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values is an - array of string values. - If the operator is In - or NotIn, the values array - must be non-empty. If - the operator is Exists - or DoesNotExist, the values - array must be empty. This - array is replaced during - a strategic merge patch. items: type: string type: array @@ -24742,192 +8462,27 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a - map of {key,value} pairs. A - single {key,value} in the matchLabels - map is equivalent to an element - of matchExpressions, whose key - field is "key", the operator - is "In", and the values array - contains only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: "MatchLabelKeys is a - set of pod label keys to select - the pods over which spreading will - be calculated. The keys are used - to lookup values from the incoming - pod labels, those key-value labels - are ANDed with labelSelector to - select the group of existing pods - over which spreading will be calculated - for the incoming pod. The same key - is forbidden to exist in both MatchLabelKeys - and LabelSelector. MatchLabelKeys - cannot be set when LabelSelector - isn't set. Keys that don't exist - in the incoming pod labels will - be ignored. A null or empty list - means only match against labelSelector. - \n This is a beta field and requires - the MatchLabelKeysInPodTopologySpread - feature gate to be enabled (enabled - by default)." items: type: string type: array x-kubernetes-list-type: atomic maxSkew: - description: 'MaxSkew describes the - degree to which pods may be unevenly - distributed. When `whenUnsatisfiable=DoNotSchedule`, - it is the maximum permitted difference - between the number of matching pods - in the target topology and the global - minimum. The global minimum is the - minimum number of matching pods - in an eligible domain or zero if - the number of eligible domains is - less than MinDomains. For example, - in a 3-zone cluster, MaxSkew is - set to 1, and pods with the same - labelSelector spread as 2/2/1: In - this case, the global minimum is - 1. | zone1 | zone2 | zone3 | | P - P | P P | P | - if MaxSkew - is 1, incoming pod can only be scheduled - to zone3 to become 2/2/2; scheduling - it onto zone1(zone2) would make - the ActualSkew(3-1) on zone1(zone2) - violate MaxSkew(1). - if MaxSkew - is 2, incoming pod can be scheduled - onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, - it is used to give higher precedence - to topologies that satisfy it. It''s - a required field. Default value - is 1 and 0 is not allowed.' format: int32 type: integer minDomains: - description: "MinDomains indicates - a minimum number of eligible domains. - When the number of eligible domains - with matching topology keys is less - than minDomains, Pod Topology Spread - treats \"global minimum\" as 0, - and then the calculation of Skew - is performed. And when the number - of eligible domains with matching - topology keys equals or greater - than minDomains, this value has - no effect on scheduling. As a result, - when the number of eligible domains - is less than minDomains, scheduler - won't schedule more than maxSkew - Pods to those domains. If value - is nil, the constraint behaves as - if MinDomains is equal to 1. Valid - values are integers greater than - 0. When value is not nil, WhenUnsatisfiable - must be DoNotSchedule. \n For example, - in a 3-zone cluster, MaxSkew is - set to 2, MinDomains is set to 5 - and pods with the same labelSelector - spread as 2/2/2: | zone1 | zone2 - | zone3 | | P P | P P | P P - \ | The number of domains is less - than 5(MinDomains), so \"global - minimum\" is treated as 0. In this - situation, new pod with the same - labelSelector cannot be scheduled, - because computed skew will be 3(3 - - 0) if new Pod is scheduled to - any of the three zones, it will - violate MaxSkew." format: int32 type: integer nodeAffinityPolicy: - description: "NodeAffinityPolicy indicates - how we will treat Pod's nodeAffinity/nodeSelector - when calculating pod topology spread - skew. Options are: - Honor: only - nodes matching nodeAffinity/nodeSelector - are included in the calculations. - - Ignore: nodeAffinity/nodeSelector - are ignored. All nodes are included - in the calculations. \n If this - value is nil, the behavior is equivalent - to the Honor policy. This is a beta-level - feature default enabled by the NodeInclusionPolicyInPodTopologySpread - feature flag." type: string nodeTaintsPolicy: - description: "NodeTaintsPolicy indicates - how we will treat node taints when - calculating pod topology spread - skew. Options are: - Honor: nodes - without taints, along with tainted - nodes for which the incoming pod - has a toleration, are included. - - Ignore: node taints are ignored. - All nodes are included. \n If this - value is nil, the behavior is equivalent - to the Ignore policy. This is a - beta-level feature default enabled - by the NodeInclusionPolicyInPodTopologySpread - feature flag." type: string topologyKey: - description: TopologyKey is the key - of node labels. Nodes that have - a label with this key and identical - values are considered to be in the - same topology. We consider each - as a "bucket", and - try to put balanced number of pods - into each bucket. We define a domain - as a particular instance of a topology. - Also, we define an eligible domain - as a domain whose nodes meet the - requirements of nodeAffinityPolicy - and nodeTaintsPolicy. e.g. If TopologyKey - is "kubernetes.io/hostname", each - Node is a domain of that topology. - And, if TopologyKey is "topology.kubernetes.io/zone", - each zone is a domain of that topology. - It's a required field. type: string whenUnsatisfiable: - description: 'WhenUnsatisfiable indicates - how to deal with a pod if it doesn''t - satisfy the spread constraint. - - DoNotSchedule (default) tells the - scheduler not to schedule it. - - ScheduleAnyway tells the scheduler - to schedule the pod in any location, - but giving higher precedence to - topologies that would help reduce - the skew. A constraint is considered - "Unsatisfiable" for an incoming - pod if and only if every possible - node assignment for that pod would - violate "MaxSkew" on some topology. - For example, in a 3-zone cluster, - MaxSkew is set to 1, and pods with - the same labelSelector spread as - 3/1/1: | zone1 | zone2 | zone3 | - | P P P | P | P | If WhenUnsatisfiable - is set to DoNotSchedule, incoming - pod can only be scheduled to zone2(zone3) - to become 3/2/1(3/1/2) as ActualSkew(2-1) - on zone2(zone3) satisfies MaxSkew(1). - In other words, the cluster can - still be imbalanced, but scheduler - won''t make it *more* imbalanced. - It''s a required field.' type: string required: - maxSkew @@ -24942,146 +8497,63 @@ spec: type: object type: object timeout: - description: Timeout specifies a duration in seconds - that KubeStash should wait for the hook execution - to be completed. If the hook execution does not - finish within this time period, KubeStash will - consider this hook execution as failure. Then, - it will be re-tried according to MaxRetry policy. type: string variables: - description: Variables specifies a list of variables - and their sources that will be used to resolve - the HookTemplate. items: - description: EnvVar represents an environment - variable present in a Container. properties: name: - description: Name of the environment variable. - Must be a C_IDENTIFIER. type: string value: - description: 'Variable references $(VAR_NAME) - are expanded using the previously defined - environment variables in the container and - any service environment variables. If a - variable cannot be resolved, the reference - in the input string will be unchanged. Double - $$ are reduced to a single $, which allows - for escaping the $(VAR_NAME) syntax: i.e. - "$$(VAR_NAME)" will produce the string literal - "$(VAR_NAME)". Escaped references will never - be expanded, regardless of whether the variable - exists or not. Defaults to "".' type: string valueFrom: - description: Source for the environment variable's - value. Cannot be used if value is not empty. properties: configMapKeyRef: - description: Selects a key of a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap - or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field of the pod: - supports metadata.name, metadata.namespace, - `metadata.labels['''']`, `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, - status.hostIP, status.podIP, status.podIPs.' properties: apiVersion: - description: Version of the schema - the FieldPath is written in terms - of, defaults to "v1". type: string fieldPath: - description: Path of the field to - select in the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource of the - container: only resources limits and - requests (limits.cpu, limits.memory, - limits.ephemeral-storage, requests.cpu, - requests.memory and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: required - for volumes, optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource to - select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret - in the pod's namespace properties: key: - description: The key of the secret - to select from. Must be a valid - secret key. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret - or its key must be defined type: boolean required: - key @@ -25093,71 +8565,21 @@ spec: type: object type: array volumeMounts: - description: VolumeMounts specifies the mount for - the volumes specified in `Volumes` section Use - this field only for `Function` type hook executor. items: - description: VolumeMount describes a mounting - of a Volume within a container. properties: mountPath: - description: Path within the container at - which the volume should be mounted. Must - not contain ':'. type: string mountPropagation: - description: mountPropagation determines how - mounts are propagated from the host to container - and the other way around. When not set, - MountPropagationNone is used. This field - is beta in 1.10. When RecursiveReadOnly - is set to IfPossible or to Enabled, MountPropagation - must be None or unspecified (which defaults - to None). type: string name: - description: This must match the Name of a - Volume. type: string readOnly: - description: Mounted read-only if true, read-write - otherwise (false or unspecified). Defaults - to false. type: boolean recursiveReadOnly: - description: "RecursiveReadOnly specifies - whether read-only mounts should be handled - recursively. \n If ReadOnly is false, this - field has no meaning and must be unspecified. - \n If ReadOnly is true, and this field is - set to Disabled, the mount is not made recursively - read-only. If this field is set to IfPossible, - the mount is made recursively read-only, - if it is supported by the container runtime. - \ If this field is set to Enabled, the mount - is made recursively read-only if it is supported - by the container runtime, otherwise the - pod will not be started and an error will - be generated to indicate the reason. \n - If this field is set to IfPossible or Enabled, - MountPropagation must be set to None (or - be unspecified, which defaults to None). - \n If this field is not specified, it is - treated as an equivalent of Disabled." type: string subPath: - description: Path within the volume from which - the container's volume should be mounted. - Defaults to "" (volume's root). type: string subPathExpr: - description: Expanded path within the volume - from which the container's volume should - be mounted. Behaves similarly to SubPath - but environment variable references $(VAR_NAME) - are expanded using the container's environment. - Defaults to "" (volume's root). SubPathExpr - and SubPath are mutually exclusive. type: string required: - mountPath @@ -25165,292 +8587,109 @@ spec: type: object type: array volumes: - description: Volumes indicates the list of volumes - of targeted application that should be mounted - on the hook executor. Use this field only for - `Function` type hook executor. items: - description: Volume represents a named volume - in a pod that may be accessed by any container - in the pod. properties: awsElasticBlockStore: - description: 'awsElasticBlockStore represents - an AWS Disk resource that is attached to - a kubelet''s host machine and then exposed - to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' properties: fsType: - description: 'fsType is the filesystem - type of the volume that you want to - mount. Tip: Ensure that the filesystem - type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the - filesystem from compromising the machine' type: string partition: - description: 'partition is the partition - in the volume that you want to mount. - If omitted, the default is to mount - by volume name. Examples: For volume - /dev/sda1, you specify the partition - as "1". Similarly, the volume partition - for /dev/sda is "0" (or you can leave - the property empty).' format: int32 type: integer readOnly: - description: 'readOnly value true will - force the readOnly setting in VolumeMounts. - More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: boolean volumeID: - description: 'volumeID is unique ID of - the persistent disk resource in AWS - (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: string required: - volumeID type: object azureDisk: - description: azureDisk represents an Azure - Data Disk mount on the host and bind mount - to the pod. properties: cachingMode: - description: 'cachingMode is the Host - Caching mode: None, Read Only, Read - Write.' type: string diskName: - description: diskName is the Name of the - data disk in the blob storage type: string diskURI: - description: diskURI is the URI of data - disk in the blob storage type: string fsType: - description: fsType is Filesystem type - to mount. Must be a filesystem type - supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string kind: - description: 'kind expected values are - Shared: multiple blob disks per storage - account Dedicated: single blob disk - per storage account Managed: azure - managed data disk (only in managed availability - set). defaults to shared' type: string readOnly: - description: readOnly Defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean required: - diskName - diskURI type: object azureFile: - description: azureFile represents an Azure - File Service mount on the host and bind - mount to the pod. properties: readOnly: - description: readOnly defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean secretName: - description: secretName is the name of - secret that contains Azure Storage Account - Name and Key type: string shareName: - description: shareName is the azure share - Name type: string required: - secretName - shareName type: object cephfs: - description: cephFS represents a Ceph FS mount - on the host that shares a pod's lifetime properties: monitors: - description: 'monitors is Required: Monitors - is a collection of Ceph monitors More - info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic path: - description: 'path is Optional: Used as - the mounted root, rather than the full - Ceph tree, default is /' type: string readOnly: - description: 'readOnly is Optional: Defaults - to false (read/write). ReadOnly here - will force the ReadOnly setting in VolumeMounts. - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: boolean secretFile: - description: 'secretFile is Optional: - SecretFile is the path to key ring for - User, default is /etc/ceph/user.secret - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string secretRef: - description: 'secretRef is Optional: SecretRef - is reference to the authentication secret - for User, default is empty. More info: - https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is optional: User is - the rados user name, default is admin - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string required: - monitors type: object cinder: - description: 'cinder represents a cinder volume - attached and mounted on kubelets host machine. - More info: https://examples.k8s.io/mysql-cinder-pd/README.md' properties: fsType: - description: 'fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string readOnly: - description: 'readOnly defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. - More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: boolean secretRef: - description: 'secretRef is optional: points - to a secret object containing parameters - used to connect to OpenStack.' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeID: - description: 'volumeID used to identify - the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string required: - volumeID type: object configMap: - description: configMap represents a configMap - that should populate this volume properties: defaultMode: - description: 'defaultMode is optional: - mode bits used to set permissions on - created files by default. Must be an - octal value between 0000 and 0777 or - a decimal value between 0 and 511. YAML - accepts both octal and decimal values, - JSON requires decimal values for mode - bits. Defaults to 0644. Directories - within the path are not affected by - this setting. This might be in conflict - with other options that affect the file - mode, like fsGroup, and the result can - be other mode bits set.' format: int32 type: integer items: - description: items if unspecified, each - key-value pair in the Data field of - the referenced ConfigMap will be projected - into the volume as a file whose name - is the key and content is the value. - If specified, the listed keys will be - projected into the specified paths, - and unlisted keys will not be present. - If a key is specified which is not present - in the ConfigMap, the volume setup will - error unless it is marked optional. - Paths must be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key to a - path within a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an octal - value between 0000 and 0777 or - a decimal value between 0 and - 511. YAML accepts both octal and - decimal values, JSON requires - decimal values for mode bits. - If not specified, the volume defaultMode - will be used. This might be in - conflict with other options that - affect the file mode, like fsGroup, - and the result can be other mode - bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the key - to. May not be an absolute path. - May not contain the path element - '..'. May not start with the string - '..'. type: string required: - key @@ -25460,185 +8699,67 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether - the ConfigMap or its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic csi: - description: csi (Container Storage Interface) - represents ephemeral storage that is handled - by certain external CSI drivers (Beta feature). properties: driver: - description: driver is the name of the - CSI driver that handles this volume. - Consult with your admin for the correct - name as registered in the cluster. type: string fsType: - description: fsType to mount. Ex. "ext4", - "xfs", "ntfs". If not provided, the - empty value is passed to the associated - CSI driver which will determine the - default filesystem to apply. type: string nodePublishSecretRef: - description: nodePublishSecretRef is a - reference to the secret object containing - sensitive information to pass to the - CSI driver to complete the CSI NodePublishVolume - and NodeUnpublishVolume calls. This - field is optional, and may be empty - if no secret is required. If the secret - object contains more than one secret, - all secret references are passed. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic readOnly: - description: readOnly specifies a read-only - configuration for the volume. Defaults - to false (read/write). type: boolean volumeAttributes: additionalProperties: type: string - description: volumeAttributes stores driver-specific - properties that are passed to the CSI - driver. Consult your driver's documentation - for supported values. type: object required: - driver type: object downwardAPI: - description: downwardAPI represents downward - API about the pod that should populate this - volume properties: defaultMode: - description: 'Optional: mode bits to use - on created files by default. Must be - a Optional: mode bits used to set permissions - on created files by default. Must be - an octal value between 0000 and 0777 - or a decimal value between 0 and 511. - YAML accepts both octal and decimal - values, JSON requires decimal values - for mode bits. Defaults to 0644. Directories - within the path are not affected by - this setting. This might be in conflict - with other options that affect the file - mode, like fsGroup, and the result can - be other mode bits set.' format: int32 type: integer items: - description: Items is a list of downward - API volume file items: - description: DownwardAPIVolumeFile represents - information to create the file containing - the pod field properties: fieldRef: - description: 'Required: Selects - a field of the pod: only annotations, - labels, name, namespace and uid - are supported.' properties: apiVersion: - description: Version of the - schema the FieldPath is written - in terms of, defaults to "v1". type: string fieldPath: - description: Path of the field - to select in the specified - API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode bits - used to set permissions on this - file, must be an octal value between - 0000 and 0777 or a decimal value - between 0 and 511. YAML accepts - both octal and decimal values, - JSON requires decimal values for - mode bits. If not specified, the - volume defaultMode will be used. - This might be in conflict with - other options that affect the - file mode, like fsGroup, and the - result can be other mode bits - set.' format: int32 type: integer path: - description: 'Required: Path is the - relative path name of the file - to be created. Must not be absolute - or contain the ''..'' path. Must - be utf-8 encoded. The first item - of the relative path must not - start with ''..''' type: string resourceFieldRef: - description: 'Selects a resource - of the container: only resources - limits and requests (limits.cpu, - limits.memory, requests.cpu and - requests.memory) are currently - supported.' properties: containerName: - description: 'Container name: - required for volumes, optional - for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource - to select' type: string required: - resource @@ -25651,232 +8772,50 @@ spec: x-kubernetes-list-type: atomic type: object emptyDir: - description: 'emptyDir represents a temporary - directory that shares a pod''s lifetime. - More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' properties: medium: - description: 'medium represents what type - of storage medium should back this directory. - The default is "" which means to use - the node''s default medium. Must be - an empty string (default) or Memory. - More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' type: string sizeLimit: anyOf: - type: integer - type: string - description: 'sizeLimit is the total amount - of local storage required for this EmptyDir - volume. The size limit is also applicable - for memory medium. The maximum usage - on memory medium EmptyDir would be the - minimum value between the SizeLimit - specified here and the sum of memory - limits of all containers in a pod. The - default is nil which means that the - limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object ephemeral: - description: "ephemeral represents a volume - that is handled by a cluster storage driver. - The volume's lifecycle is tied to the pod - that defines it - it will be created before - the pod starts, and deleted when the pod - is removed. \n Use this if: a) the volume - is only needed while the pod runs, b) features - of normal volumes like restoring from snapshot - or capacity tracking are needed, c) the - storage driver is specified through a storage - class, and d) the storage driver supports - dynamic volume provisioning through a PersistentVolumeClaim - (see EphemeralVolumeSource for more information - on the connection between this volume type - and PersistentVolumeClaim). \n Use PersistentVolumeClaim - or one of the vendor-specific APIs for volumes - that persist for longer than the lifecycle - of an individual pod. \n Use CSI for light-weight - local ephemeral volumes if the CSI driver - is meant to be used that way - see the documentation - of the driver for more information. \n A - pod can use both types of ephemeral volumes - and persistent volumes at the same time." properties: volumeClaimTemplate: - description: "Will be used to create a - stand-alone PVC to provision the volume. - The pod in which this EphemeralVolumeSource - is embedded will be the owner of the - PVC, i.e. the PVC will be deleted together - with the pod. The name of the PVC will - be `-` where - `` is the name from the - `PodSpec.Volumes` array entry. Pod validation - will reject the pod if the concatenated - name is not valid for a PVC (for example, - too long). \n An existing PVC with that - name that is not owned by the pod will - *not* be used for the pod to avoid using - an unrelated volume by mistake. Starting - the pod is then blocked until the unrelated - PVC is removed. If such a pre-created - PVC is meant to be used by the pod, - the PVC has to updated with an owner - reference to the pod once the pod exists. - Normally this should not be necessary, - but it may be useful when manually reconstructing - a broken cluster. \n This field is read-only - and no changes will be made by Kubernetes - to the PVC after it has been created. - \n Required, must not be nil." properties: metadata: - description: May contain labels and - annotations that will be copied - into the PVC when creating it. No - other fields are allowed and will - be rejected during validation. properties: annotations: additionalProperties: type: string - description: 'Annotations is an - unstructured key value map stored - with a resource that may be - set by external tools to store - and retrieve arbitrary metadata. - They are not queryable and should - be preserved when modifying - objects. More info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName is - an optional prefix, used by - the server, to generate a unique - name ONLY IF the Name field - has not been provided. If this - field is used, the name returned - to the client will be different - than the name passed. This value - will also be combined with a - unique suffix. The provided - value has the same validation - rules as the Name field, and - may be truncated by the length - of the suffix required to make - the value unique on the server. - \n If this field is specified - and the generated name exists, - the server will NOT return a - 409 - instead, it will either - return 201 Created or 500 with - Reason ServerTimeout indicating - a unique name could not be found - in the time allotted, and the - client should retry (optionally - after the time indicated in - the Retry-After header). \n - Applied only if Name is not - specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string keys - and values that can be used - to organize and categorize (scope - and select) objects. May match - selectors of replication controllers - and services. More info: http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must be unique - within a namespace. Is required - when creating resources, although - some resources may allow a client - to request the generation of - an appropriate name automatically. - Name is primarily intended for - creation idempotence and configuration - definition. Cannot be updated. - More info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace defines - the space within each name must - be unique. An empty namespace - is equivalent to the \"default\" - namespace, but \"default\" is - the canonical representation. - Not all objects are required - to be scoped to a namespace - - the value of this field for - those objects will be empty. - \n Must be a DNS_LABEL. Cannot - be updated. More info: http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects depended - by this object. If ALL objects - in the list have been deleted, - this object will be garbage - collected. If this object is - managed by a controller, then - an entry in this list will point - to this controller, with the - controller field set to true. - There cannot be more than one - managing controller. items: - description: OwnerReference - contains enough information - to let you identify an owning - object. An owning object must - be in the same namespace as - the dependent, or be cluster-scoped, - so there is no namespace field. properties: apiVersion: - description: API version - of the referent. type: string blockOwnerDeletion: - description: If true, AND - if the owner has the "foregroundDeletion" - finalizer, then the owner - cannot be deleted from - the key-value store until - this reference is removed. - See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage collector - interacts with this field - and enforces the foreground - deletion. Defaults to - false. To set this field, - a user needs "delete" - permission of the owner, - otherwise 422 (Unprocessable - Entity) will be returned. type: boolean controller: - description: If true, this - reference points to the - managing controller. type: boolean kind: - description: 'Kind of the - referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of the - referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the - referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -25888,61 +8827,19 @@ spec: type: array type: object spec: - description: The specification for - the PersistentVolumeClaim. The entire - content is copied unchanged into - the PVC that gets created from this - template. The same fields as in - a PersistentVolumeClaim are also - valid here. properties: accessModes: - description: 'accessModes contains - the desired access modes the - volume should have. More info: - https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource field - can be used to specify either: - * An existing VolumeSnapshot - object (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an external - controller can support the specified - data source, it will create - a new volume based on the contents - of the specified data source. - When the AnyVolumeDataSource - feature gate is enabled, dataSource - contents will be copied to dataSourceRef, - and dataSourceRef contents will - be copied to dataSource when - dataSourceRef.namespace is not - specified. If the namespace - is specified, then dataSourceRef - will not be copied to dataSource.' properties: apiGroup: - description: APIGroup is the - group for the resource being - referenced. If APIGroup - is not specified, the specified - Kind must be in the core - API group. For any other - third-party types, APIGroup - is required. type: string kind: - description: Kind is the type - of resource being referenced type: string name: - description: Name is the name - of resource being referenced type: string required: - kind @@ -25950,103 +8847,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef specifies - the object from which to populate - the volume with data, if a non-empty - volume is desired. This may - be any object from a non-empty - API group (non core object) - or a PersistentVolumeClaim object. - When this field is specified, - volume binding will only succeed - if the type of the specified - object matches some installed - volume populator or dynamic - provisioner. This field will - replace the functionality of - the dataSource field and as - such if both fields are non-empty, - they must have the same value. - For backwards compatibility, - when namespace isn''t specified - in dataSourceRef, both fields - (dataSource and dataSourceRef) - will be set to the same value - automatically if one of them - is empty and the other is non-empty. - When namespace is specified - in dataSourceRef, dataSource - isn''t set to the same value - and must be empty. There are - three important differences - between dataSource and dataSourceRef: - * While dataSource only allows - two specific types of objects, - dataSourceRef allows any non-core - object, as well as PersistentVolumeClaim - objects. * While dataSource - ignores disallowed values (dropping - them), dataSourceRef preserves - all values, and generates an - error if a disallowed value - is specified. * While dataSource - only allows local objects, dataSourceRef - allows objects in any namespaces. - (Beta) Using this field requires - the AnyVolumeDataSource feature - gate to be enabled. (Alpha) - Using the namespace field of - dataSourceRef requires the CrossNamespaceVolumeDataSource - feature gate to be enabled.' properties: apiGroup: - description: APIGroup is the - group for the resource being - referenced. If APIGroup - is not specified, the specified - Kind must be in the core - API group. For any other - third-party types, APIGroup - is required. type: string kind: - description: Kind is the type - of resource being referenced type: string name: - description: Name is the name - of resource being referenced type: string namespace: - description: Namespace is - the namespace of resource - being referenced Note that - when a namespace is specified, - a gateway.networking.k8s.io/ReferenceGrant - object is required in the - referent namespace to allow - that namespace's owner to - accept the reference. See - the ReferenceGrant documentation - for details. (Alpha) This - field requires the CrossNamespaceVolumeDataSource - feature gate to be enabled. type: string required: - kind - name type: object resources: - description: 'resources represents - the minimum resources the volume - should have. If RecoverVolumeExpansionFailure - feature is enabled users are - allowed to specify resource - requirements that are lower - than previous value but must - still be higher than capacity - recorded in the status field - of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -26055,10 +8869,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes - the maximum amount of compute - resources allowed. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -26067,64 +8877,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes - the minimum amount of compute - resources required. If Requests - is omitted for a container, - it defaults to Limits if - that is explicitly specified, - otherwise to an implementation-defined - value. Requests cannot exceed - Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is a label - query over volumes to consider - for binding. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to a - set of values. Valid - operators are In, - NotIn, Exists and - DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, the - values array must - be non-empty. If the - operator is Exists - or DoesNotExist, the - values array must - be empty. This array - is replaced during - a strategic merge - patch. items: type: string type: array @@ -26138,68 +8902,16 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in - the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName - is the name of the StorageClass - required by the claim. More - info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName - may be used to set the VolumeAttributesClass - used by this claim. If specified, - the CSI driver will create or - update the volume with the attributes - defined in the corresponding - VolumeAttributesClass. This - has a different purpose than - storageClassName, it can be - changed after the claim is created. - An empty string value means - that no VolumeAttributesClass - will be applied to the claim - but it''s not allowed to reset - this field to empty string once - it is set. If unspecified and - the PersistentVolumeClaim is - unbound, the default VolumeAttributesClass - will be set by the persistentvolume - controller if it exists. If - the resource referred to by - volumeAttributesClass does not - exist, this PersistentVolumeClaim - will be set to a Pending state, - as reflected by the modifyVolumeStatus - field, until such as a resource - exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires - the VolumeAttributesClass feature - gate to be enabled.' type: string volumeMode: - description: volumeMode defines - what type of volume is required - by the claim. Value of Filesystem - is implied when not included - in claim spec. type: string volumeName: - description: volumeName is the - binding reference to the PersistentVolume - backing this claim. type: string type: object required: @@ -26207,98 +8919,41 @@ spec: type: object type: object fc: - description: fc represents a Fibre Channel - resource that is attached to a kubelet's - host machine and then exposed to the pod. properties: fsType: - description: 'fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. - TODO: how do we prevent errors in the - filesystem from compromising the machine' type: string lun: - description: 'lun is Optional: FC target - lun number' format: int32 type: integer readOnly: - description: 'readOnly is Optional: Defaults - to false (read/write). ReadOnly here - will force the ReadOnly setting in VolumeMounts.' type: boolean targetWWNs: - description: 'targetWWNs is Optional: - FC target worldwide names (WWNs)' items: type: string type: array x-kubernetes-list-type: atomic wwids: - description: 'wwids Optional: FC volume - world wide identifiers (wwids) Either - wwids or combination of targetWWNs and - lun must be set, but not both simultaneously.' items: type: string type: array x-kubernetes-list-type: atomic type: object flexVolume: - description: flexVolume represents a generic - volume resource that is provisioned/attached - using an exec based plugin. properties: driver: - description: driver is the name of the - driver to use for this volume. type: string fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". The - default filesystem depends on FlexVolume - script. type: string options: additionalProperties: type: string - description: 'options is Optional: this - field holds extra command options if - any.' type: object readOnly: - description: 'readOnly is Optional: defaults - to false (read/write). ReadOnly here - will force the ReadOnly setting in VolumeMounts.' type: boolean secretRef: - description: 'secretRef is Optional: secretRef - is reference to the secret object containing - sensitive information to pass to the - plugin scripts. This may be empty if - no secret object is specified. If the - secret object contains more than one - secret, all secrets are passed to the - plugin scripts.' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic @@ -26306,201 +8961,79 @@ spec: - driver type: object flocker: - description: flocker represents a Flocker - volume attached to a kubelet's host machine. - This depends on the Flocker control service - being running properties: datasetName: - description: datasetName is Name of the - dataset stored as metadata -> name on - the dataset for Flocker should be considered - as deprecated type: string datasetUUID: - description: datasetUUID is the UUID of - the dataset. This is unique identifier - of a Flocker dataset type: string type: object gcePersistentDisk: - description: 'gcePersistentDisk represents - a GCE Disk resource that is attached to - a kubelet''s host machine and then exposed - to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' properties: fsType: - description: 'fsType is filesystem type - of the volume that you want to mount. - Tip: Ensure that the filesystem type - is supported by the host operating system. - Examples: "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. - More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the - filesystem from compromising the machine' type: string partition: - description: 'partition is the partition - in the volume that you want to mount. - If omitted, the default is to mount - by volume name. Examples: For volume - /dev/sda1, you specify the partition - as "1". Similarly, the volume partition - for /dev/sda is "0" (or you can leave - the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' format: int32 type: integer pdName: - description: 'pdName is unique name of - the PD resource in GCE. Used to identify - the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: string readOnly: - description: 'readOnly here will force - the ReadOnly setting in VolumeMounts. - Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: boolean required: - pdName type: object glusterfs: - description: 'glusterfs represents a Glusterfs - mount on the host that shares a pod''s lifetime. - More info: https://examples.k8s.io/volumes/glusterfs/README.md' properties: endpoints: - description: 'endpoints is the endpoint - name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string path: - description: 'path is the Glusterfs volume - path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string readOnly: - description: 'readOnly here will force - the Glusterfs volume to be mounted with - read-only permissions. Defaults to false. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: boolean required: - endpoints - path type: object hostPath: - description: 'hostPath represents a pre-existing - file or directory on the host machine that - is directly exposed to the container. This - is generally used for system agents or other - privileged things that are allowed to see - the host machine. Most containers will NOT - need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- TODO(jonesdl) We need to restrict who - can use host directory mounts and who can/can - not mount host directories as read/write.' properties: path: - description: 'path of the directory on - the host. If the path is a symlink, - it will follow the link to the real - path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string type: - description: 'type for HostPath Volume - Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string required: - path type: object iscsi: - description: 'iscsi represents an ISCSI Disk - resource that is attached to a kubelet''s - host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md' properties: chapAuthDiscovery: - description: chapAuthDiscovery defines - whether support iSCSI Discovery CHAP - authentication type: boolean chapAuthSession: - description: chapAuthSession defines whether - support iSCSI Session CHAP authentication type: boolean fsType: - description: 'fsType is the filesystem - type of the volume that you want to - mount. Tip: Ensure that the filesystem - type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the - filesystem from compromising the machine' type: string initiatorName: - description: initiatorName is the custom - iSCSI Initiator Name. If initiatorName - is specified with iscsiInterface simultaneously, - new iSCSI interface : will be created for the connection. type: string iqn: - description: iqn is the target iSCSI Qualified - Name. type: string iscsiInterface: - description: iscsiInterface is the interface - Name that uses an iSCSI transport. Defaults - to 'default' (tcp). type: string lun: - description: lun represents iSCSI Target - Lun number. format: int32 type: integer portals: - description: portals is the iSCSI Target - Portal List. The portal is either an - IP or ip_addr:port if the port is other - than default (typically TCP ports 860 - and 3260). items: type: string type: array x-kubernetes-list-type: atomic readOnly: - description: readOnly here will force - the ReadOnly setting in VolumeMounts. - Defaults to false. type: boolean secretRef: - description: secretRef is the CHAP Secret - for iSCSI target and initiator authentication properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic targetPortal: - description: targetPortal is iSCSI Target - Portal. The Portal is either an IP or - ip_addr:port if the port is other than - default (typically TCP ports 860 and - 3260). type: string required: - iqn @@ -26508,196 +9041,68 @@ spec: - targetPortal type: object name: - description: 'name of the volume. Must be - a DNS_LABEL and unique within the pod. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string nfs: - description: 'nfs represents an NFS mount - on the host that shares a pod''s lifetime - More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' properties: path: - description: 'path that is exported by - the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string readOnly: - description: 'readOnly here will force - the NFS export to be mounted with read-only - permissions. Defaults to false. More - info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: boolean server: - description: 'server is the hostname or - IP address of the NFS server. More info: - https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string required: - path - server type: object persistentVolumeClaim: - description: 'persistentVolumeClaimVolumeSource - represents a reference to a PersistentVolumeClaim - in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: claimName: - description: 'claimName is the name of - a PersistentVolumeClaim in the same - namespace as the pod using this volume. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' type: string readOnly: - description: readOnly Will force the ReadOnly - setting in VolumeMounts. Default false. type: boolean required: - claimName type: object photonPersistentDisk: - description: photonPersistentDisk represents - a PhotonController persistent disk attached - and mounted on kubelets host machine properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string pdID: - description: pdID is the ID that identifies - Photon Controller persistent disk type: string required: - pdID type: object portworxVolume: - description: portworxVolume represents a portworx - volume attached and mounted on kubelets - host machine properties: fsType: - description: fSType represents the filesystem - type to mount Must be a filesystem type - supported by the host operating system. - Ex. "ext4", "xfs". Implicitly inferred - to be "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean volumeID: - description: volumeID uniquely identifies - a Portworx volume type: string required: - volumeID type: object projected: - description: projected items for all in one - resources secrets, configmaps, and downward - API properties: defaultMode: - description: defaultMode are the mode - bits used to set permissions on created - files by default. Must be an octal value - between 0000 and 0777 or a decimal value - between 0 and 511. YAML accepts both - octal and decimal values, JSON requires - decimal values for mode bits. Directories - within the path are not affected by - this setting. This might be in conflict - with other options that affect the file - mode, like fsGroup, and the result can - be other mode bits set. format: int32 type: integer sources: - description: sources is the list of volume - projections items: - description: Projection that may be - projected along with other supported - volume types properties: clusterTrustBundle: - description: "ClusterTrustBundle - allows a pod to access the `.spec.trustBundle` - field of ClusterTrustBundle objects - in an auto-updating file. \n Alpha, - gated by the ClusterTrustBundleProjection - feature gate. \n ClusterTrustBundle - objects can either be selected - by name, or by the combination - of signer name and a label selector. - \n Kubelet performs aggressive - normalization of the PEM contents - written into the pod filesystem. - \ Esoteric PEM features such as - inter-block comments and block - headers are stripped. Certificates - are deduplicated. The ordering - of certificates within the file - is arbitrary, and Kubelet may - change the order over time." properties: labelSelector: - description: Select all ClusterTrustBundles - that match this label selector. Only - has effect if signerName is - set. Mutually-exclusive with - name. If unset, interpreted - as "match nothing". If set - but empty, interpreted as - "match everything". properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key - and values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, Exists - and DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -26711,115 +9116,31 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an element - of matchExpressions, whose - key field is "key", the - operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic name: - description: Select a single - ClusterTrustBundle by object - name. Mutually-exclusive - with signerName and labelSelector. type: string optional: - description: If true, don't - block pod startup if the referenced - ClusterTrustBundle(s) aren't - available. If using name, - then the named ClusterTrustBundle - is allowed not to exist. If - using signerName, then the - combination of signerName - and labelSelector is allowed - to match zero ClusterTrustBundles. type: boolean path: - description: Relative path from - the volume root to write the - bundle. type: string signerName: - description: Select all ClusterTrustBundles - that match this signer name. - Mutually-exclusive with name. The - contents of all selected ClusterTrustBundles - will be unified and deduplicated. type: string required: - path type: object configMap: - description: configMap information - about the configMap data to project properties: items: - description: items if unspecified, - each key-value pair in the - Data field of the referenced - ConfigMap will be projected - into the volume as a file - whose name is the key and - content is the value. If specified, - the listed keys will be projected - into the specified paths, - and unlisted keys will not - be present. If a key is specified - which is not present in the - ConfigMap, the volume setup - will error unless it is marked - optional. Paths must be relative - and may not contain the '..' - path or start with '..'. items: - description: Maps a string - key to a path within a volume. properties: key: - description: key is the - key to project. type: string mode: - description: 'mode is - Optional: mode bits - used to set permissions - on this file. Must be - an octal value between - 0000 and 0777 or a decimal - value between 0 and - 511. YAML accepts both - octal and decimal values, - JSON requires decimal - values for mode bits. - If not specified, the - volume defaultMode will - be used. This might - be in conflict with - other options that affect - the file mode, like - fsGroup, and the result - can be other mode bits - set.' format: int32 type: integer path: - description: path is the - relative path of the - file to map the key - to. May not be an absolute - path. May not contain - the path element '..'. - May not start with the - string '..'. type: string required: - key @@ -26829,128 +9150,42 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify - whether the ConfigMap or its - keys must be defined type: boolean type: object x-kubernetes-map-type: atomic downwardAPI: - description: downwardAPI information - about the downwardAPI data to - project properties: items: - description: Items is a list - of DownwardAPIVolume file items: - description: DownwardAPIVolumeFile - represents information to - create the file containing - the pod field properties: fieldRef: - description: 'Required: - Selects a field of the - pod: only annotations, - labels, name, namespace - and uid are supported.' properties: apiVersion: - description: Version - of the schema the - FieldPath is written - in terms of, defaults - to "v1". type: string fieldPath: - description: Path - of the field to - select in the specified - API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: - mode bits used to set - permissions on this - file, must be an octal - value between 0000 and - 0777 or a decimal value - between 0 and 511. YAML - accepts both octal and - decimal values, JSON - requires decimal values - for mode bits. If not - specified, the volume - defaultMode will be - used. This might be - in conflict with other - options that affect - the file mode, like - fsGroup, and the result - can be other mode bits - set.' format: int32 type: integer path: - description: 'Required: - Path is the relative - path name of the file - to be created. Must - not be absolute or contain - the ''..'' path. Must - be utf-8 encoded. The - first item of the relative - path must not start - with ''..''' type: string resourceFieldRef: - description: 'Selects - a resource of the container: - only resources limits - and requests (limits.cpu, - limits.memory, requests.cpu - and requests.memory) - are currently supported.' properties: containerName: - description: 'Container - name: required for - volumes, optional - for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies - the output format - of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: - resource to select' type: string required: - resource @@ -26963,67 +9198,16 @@ spec: x-kubernetes-list-type: atomic type: object secret: - description: secret information - about the secret data to project properties: items: - description: items if unspecified, - each key-value pair in the - Data field of the referenced - Secret will be projected into - the volume as a file whose - name is the key and content - is the value. If specified, - the listed keys will be projected - into the specified paths, - and unlisted keys will not - be present. If a key is specified - which is not present in the - Secret, the volume setup will - error unless it is marked - optional. Paths must be relative - and may not contain the '..' - path or start with '..'. items: - description: Maps a string - key to a path within a volume. properties: key: - description: key is the - key to project. type: string mode: - description: 'mode is - Optional: mode bits - used to set permissions - on this file. Must be - an octal value between - 0000 and 0777 or a decimal - value between 0 and - 511. YAML accepts both - octal and decimal values, - JSON requires decimal - values for mode bits. - If not specified, the - volume defaultMode will - be used. This might - be in conflict with - other options that affect - the file mode, like - fsGroup, and the result - can be other mode bits - set.' format: int32 type: integer path: - description: path is the - relative path of the - file to map the key - to. May not be an absolute - path. May not contain - the path element '..'. - May not start with the - string '..'. type: string required: - key @@ -27033,66 +9217,19 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional field - specify whether the Secret - or its key must be defined type: boolean type: object x-kubernetes-map-type: atomic serviceAccountToken: - description: serviceAccountToken - is information about the serviceAccountToken - data to project properties: audience: - description: audience is the - intended audience of the token. - A recipient of a token must - identify itself with an identifier - specified in the audience - of the token, and otherwise - should reject the token. The - audience defaults to the identifier - of the apiserver. type: string expirationSeconds: - description: expirationSeconds - is the requested duration - of validity of the service - account token. As the token - approaches expiration, the - kubelet volume plugin will - proactively rotate the service - account token. The kubelet - will start trying to rotate - the token if the token is - older than 80 percent of its - time to live or if the token - is older than 24 hours.Defaults - to 1 hour and must be at least - 10 minutes. format: int64 type: integer path: - description: path is the path - relative to the mount point - of the file to project the - token into. type: string required: - path @@ -27102,188 +9239,79 @@ spec: x-kubernetes-list-type: atomic type: object quobyte: - description: quobyte represents a Quobyte - mount on the host that shares a pod's lifetime properties: group: - description: group to map volume access - to Default is no group type: string readOnly: - description: readOnly here will force - the Quobyte volume to be mounted with - read-only permissions. Defaults to false. type: boolean registry: - description: registry represents a single - or multiple Quobyte Registry services - specified as a string as host:port pair - (multiple entries are separated with - commas) which acts as the central registry - for volumes type: string tenant: - description: tenant owning the given Quobyte - volume in the Backend Used with dynamically - provisioned Quobyte volumes, value is - set by the plugin type: string user: - description: user to map volume access - to Defaults to serivceaccount user type: string volume: - description: volume is a string that references - an already created Quobyte volume by - name. type: string required: - registry - volume type: object rbd: - description: 'rbd represents a Rados Block - Device mount on the host that shares a pod''s - lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md' properties: fsType: - description: 'fsType is the filesystem - type of the volume that you want to - mount. Tip: Ensure that the filesystem - type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the - filesystem from compromising the machine' type: string image: - description: 'image is the rados image - name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string keyring: - description: 'keyring is the path to key - ring for RBDUser. Default is /etc/ceph/keyring. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string monitors: - description: 'monitors is a collection - of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic pool: - description: 'pool is the rados pool name. - Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string readOnly: - description: 'readOnly here will force - the ReadOnly setting in VolumeMounts. - Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: boolean secretRef: - description: 'secretRef is name of the - authentication secret for RBDUser. If - provided overrides keyring. Default - is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is the rados user name. - Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string required: - image - monitors type: object scaleIO: - description: scaleIO represents a ScaleIO - persistent volume attached and mounted on - Kubernetes nodes. properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". Default - is "xfs". type: string gateway: - description: gateway is the host address - of the ScaleIO API Gateway. type: string protectionDomain: - description: protectionDomain is the name - of the ScaleIO Protection Domain for - the configured storage. type: string readOnly: - description: readOnly Defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean secretRef: - description: secretRef references to the - secret for ScaleIO user and other sensitive - information. If this is not provided, - Login operation will fail. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic sslEnabled: - description: sslEnabled Flag enable/disable - SSL communication with Gateway, default - false type: boolean storageMode: - description: storageMode indicates whether - the storage for a volume should be ThickProvisioned - or ThinProvisioned. Default is ThinProvisioned. type: string storagePool: - description: storagePool is the ScaleIO - Storage Pool associated with the protection - domain. type: string system: - description: system is the name of the - storage system as configured in ScaleIO. type: string volumeName: - description: volumeName is the name of - a volume already created in the ScaleIO - system that is associated with this - volume source. type: string required: - gateway @@ -27291,71 +9319,19 @@ spec: - system type: object secret: - description: 'secret represents a secret that - should populate this volume. More info: - https://kubernetes.io/docs/concepts/storage/volumes#secret' properties: defaultMode: - description: 'defaultMode is Optional: - mode bits used to set permissions on - created files by default. Must be an - octal value between 0000 and 0777 or - a decimal value between 0 and 511. YAML - accepts both octal and decimal values, - JSON requires decimal values for mode - bits. Defaults to 0644. Directories - within the path are not affected by - this setting. This might be in conflict - with other options that affect the file - mode, like fsGroup, and the result can - be other mode bits set.' format: int32 type: integer items: - description: items If unspecified, each - key-value pair in the Data field of - the referenced Secret will be projected - into the volume as a file whose name - is the key and content is the value. - If specified, the listed keys will be - projected into the specified paths, - and unlisted keys will not be present. - If a key is specified which is not present - in the Secret, the volume setup will - error unless it is marked optional. - Paths must be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key to a - path within a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an octal - value between 0000 and 0777 or - a decimal value between 0 and - 511. YAML accepts both octal and - decimal values, JSON requires - decimal values for mode bits. - If not specified, the volume defaultMode - will be used. This might be in - conflict with other options that - affect the file mode, like fsGroup, - and the result can be other mode - bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the key - to. May not be an absolute path. - May not contain the path element - '..'. May not start with the string - '..'. type: string required: - key @@ -27364,98 +9340,37 @@ spec: type: array x-kubernetes-list-type: atomic optional: - description: optional field specify whether - the Secret or its keys must be defined type: boolean secretName: - description: 'secretName is the name of - the secret in the pod''s namespace to - use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' type: string type: object storageos: - description: storageOS represents a StorageOS - volume attached and mounted on Kubernetes - nodes. properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean secretRef: - description: secretRef specifies the secret - to use for obtaining the StorageOS API - credentials. If not specified, default - values will be attempted. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeName: - description: volumeName is the human-readable - name of the StorageOS volume. Volume - names are only unique within a namespace. type: string volumeNamespace: - description: volumeNamespace specifies - the scope of the volume within StorageOS. If - no namespace is specified then the Pod's - namespace will be used. This allows - the Kubernetes name scoping to be mirrored - within StorageOS for tighter integration. - Set VolumeName to any name to override - the default behaviour. Set to "default" - if you are not using namespaces within - StorageOS. Namespaces that do not pre-exist - within StorageOS will be created. type: string type: object vsphereVolume: - description: vsphereVolume represents a vSphere - volume attached and mounted on kubelets - host machine properties: fsType: - description: fsType is filesystem type - to mount. Must be a filesystem type - supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string storagePolicyID: - description: storagePolicyID is the storage - Policy Based Management (SPBM) profile - ID associated with the StoragePolicyName. type: string storagePolicyName: - description: storagePolicyName is the - storage Policy Based Management (SPBM) - profile name. type: string volumePath: - description: volumePath is the path that - identifies vSphere volume vmdk type: string required: - volumePath @@ -27468,312 +9383,119 @@ spec: type: array type: object name: - description: Name specifies the name of the session type: string repositories: - description: Repositories specifies a list of repository information - where the backed up data will be stored. KubeStash will - create the respective Repository CRs using this information. items: - description: RepositoryInfo specifies information about - the repository where the backed up data will be stored. - KubeStash will create the respective Repository CR from - this information. properties: backend: - description: Backend specifies the name of the backend - where this repository will be initialized. This should - point to a backend name specified in `.spec.backends` - section. For using a default backend, keep this field - empty. type: string + backupVerifier: + properties: + name: + type: string + namespace: + type: string + required: + - name + type: object deletionPolicy: - description: DeletionPolicy specifies what to do when - you delete a Repository CR. enum: - Delete - WipeOut type: string directory: - description: Directory specifies the path inside the - backend where the backed up data will be stored. type: string encryptionSecret: - description: EncryptionSecret refers to the Secret containing - the encryption key which will be used to encode/decode - the backed up dta. You can refer to a Secret of a - different namespace. If you don't provide the namespace - field, KubeStash will look for the Secret in the same - namespace as the BackupConfiguration / BackupBatch. properties: name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: - description: 'Namespace of the referent. More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string required: - name type: object name: - description: Name specifies the name of the Repository type: string type: object type: array retryConfig: - description: RetryConfig specifies the behavior of retry in - case of a backup failure. properties: delay: - description: 'The amount of time to wait before next retry. - If you don''t specify this field, KubeStash will retry - immediately. Format: 30s, 2m, 1h etc.' type: string maxRetry: default: 1 - description: MaxRetry specifies the maximum number of - times KubeStash should retry the backup/restore process. - By default, KubeStash will retry only 1 time. format: int32 minimum: 1 type: integer type: object scheduler: - description: Scheduler specifies the configuration for backup - triggering CronJob properties: concurrencyPolicy: - description: 'Specifies how to treat concurrent executions - of a Job. Valid values are: - "Allow" (default): allows - CronJobs to run concurrently; - "Forbid": forbids concurrent - runs, skipping next run if previous run hasn''t finished - yet; - "Replace": cancels currently running job and - replaces it with a new one' type: string failedJobsHistoryLimit: - description: The number of failed finished jobs to retain. - Value must be non-negative integer. Defaults to 1. format: int32 type: integer jobTemplate: - description: Specifies the job that will be created when - executing a CronJob. properties: activeDeadlineSeconds: - description: Specifies the duration in seconds relative - to the startTime that the job may be continuously - active before the system tries to terminate it; - value must be positive integer. If a Job is suspended - (at creation or through an update), this timer will - effectively be stopped and reset when the Job is - resumed again. format: int64 type: integer backoffLimit: - description: Specifies the number of retries before - marking this job failed. Defaults to 6 format: int32 type: integer completionMode: - description: "CompletionMode specifies how Pod completions - are tracked. It can be `NonIndexed` (default) or - `Indexed`. \n `NonIndexed` means that the Job is - considered complete when there have been .spec.completions - successfully completed Pods. Each Pod completion - is homologous to each other. \n `Indexed` means - that the Pods of a Job get an associated completion - index from 0 to (.spec.completions - 1), available - in the annotation batch.kubernetes.io/job-completion-index. - The Job is considered complete when there is one - successfully completed Pod for each index. When - value is `Indexed`, .spec.completions must be specified - and `.spec.parallelism` must be less than or equal - to 10^5. \n This field is alpha-level and is only - honored by servers that enable the IndexedJob feature - gate. More completion modes can be added in the - future. If the Job controller observes a mode that - it doesn't recognize, the controller skips updates - for the Job." type: string completions: - description: 'Specifies the desired number of successfully - finished pods the job should be run with. Setting - to nil means that the success of any pod signals - the success of all pods, and allows parallelism - to have any positive value. Setting to 1 means - that parallelism is limited to 1 and the success - of that pod signals the success of the job. More - info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/' format: int32 type: integer parallelism: - description: 'Specifies the maximum desired number - of pods the job should run at any given time. The - actual number of pods running in steady state will - be less than this number when ((.spec.completions - - .status.successful) < .spec.parallelism), i.e. - when the work left to do is less than max parallelism. - More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/' format: int32 type: integer suspend: - description: Suspend specifies whether the Job controller - should create Pods or not. If a Job is created with - suspend set to true, no Pods are created by the - Job controller. If a Job is suspended after creation - (i.e. the flag goes from false to true), the Job - controller will delete all active Pods associated - with this Job. Users must design their workload - to gracefully handle this. Suspending a Job will - reset the StartTime field of the Job, effectively - resetting the ActiveDeadlineSeconds timer too. This - is an alpha field and requires the SuspendJob feature - gate to be enabled; otherwise this field may not - be set to true. Defaults to false. type: boolean template: - description: Describes the pod that will be created - when executing a job. properties: controller: - description: 'Workload controller''s metadata. - More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured - key value map stored with a resource that - may be set by external tools to store and - retrieve arbitrary metadata. They are not - queryable and should be preserved when modifying - objects. More info: http://kubernetes.io/docs/user-guide/annotations' type: object labels: additionalProperties: type: string - description: 'Map of string keys and values - that can be used to organize and categorize - (scope and select) objects. May match selectors - of replication controllers and services. - More info: http://kubernetes.io/docs/user-guide/labels' type: object type: object metadata: - description: 'Standard object''s metadata. More - info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured - key value map stored with a resource that - may be set by external tools to store and - retrieve arbitrary metadata. They are not - queryable and should be preserved when modifying - objects. More info: http://kubernetes.io/docs/user-guide/annotations' type: object labels: additionalProperties: type: string - description: 'Map of string keys and values - that can be used to organize and categorize - (scope and select) objects. May match selectors - of replication controllers and services. - More info: http://kubernetes.io/docs/user-guide/labels' type: object type: object spec: - description: 'Specification of the desired behavior - of the pod. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' properties: affinity: - description: If specified, the pod's scheduling - constraints properties: nodeAffinity: - description: Describes node affinity scheduling - rules for the pod. properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer - to schedule pods to nodes that satisfy - the affinity expressions specified - by this field, but it may choose - a node that violates one or more - of the expressions. The node that - is most preferred is the one with - the greatest sum of weights, i.e. - for each node that meets all of - the scheduling requirements (resource - request, requiredDuringScheduling - affinity expressions, etc.), compute - a sum by iterating through the elements - of this field and adding "weight" - to the sum if the node matches the - corresponding matchExpressions; - the node(s) with the highest sum - are the most preferred. items: - description: An empty preferred - scheduling term matches all objects - with implicit weight 0 (i.e. it's - a no-op). A null preferred scheduling - term matches no objects (i.e. - is also a no-op). properties: preference: - description: A node selector - term, associated with the - corresponding weight. properties: matchExpressions: - description: A list of node - selector requirements - by node's labels. items: - description: A node selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key - and values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators - are In, NotIn, Exists, - DoesNotExist. Gt, - and Lt. type: string values: - description: An array - of string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. If - the operator is - Gt or Lt, the values - array must have - a single element, - which will be interpreted - as an integer. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -27785,51 +9507,13 @@ spec: type: array x-kubernetes-list-type: atomic matchFields: - description: A list of node - selector requirements - by node's fields. items: - description: A node selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key - and values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators - are In, NotIn, Exists, - DoesNotExist. Gt, - and Lt. type: string values: - description: An array - of string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. If - the operator is - Gt or Lt, the values - array must have - a single element, - which will be interpreted - as an integer. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -27843,10 +9527,6 @@ spec: type: object x-kubernetes-map-type: atomic weight: - description: Weight associated - with matching the corresponding - nodeSelectorTerm, in the range - 1-100. format: int32 type: integer required: @@ -27856,75 +9536,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements - specified by this field are not - met at scheduling time, the pod - will not be scheduled onto the node. - If the affinity requirements specified - by this field cease to be met at - some point during pod execution - (e.g. due to an update), the system - may or may not try to eventually - evict the pod from its node. properties: nodeSelectorTerms: - description: Required. A list - of node selector terms. The - terms are ORed. items: - description: A null or empty - node selector term matches - no objects. The requirements - of them are ANDed. The TopologySelectorTerm - type implements a subset of - the NodeSelectorTerm. properties: matchExpressions: - description: A list of node - selector requirements - by node's labels. items: - description: A node selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key - and values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators - are In, NotIn, Exists, - DoesNotExist. Gt, - and Lt. type: string values: - description: An array - of string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. If - the operator is - Gt or Lt, the values - array must have - a single element, - which will be interpreted - as an integer. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -27936,51 +9559,13 @@ spec: type: array x-kubernetes-list-type: atomic matchFields: - description: A list of node - selector requirements - by node's fields. items: - description: A node selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key - and values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators - are In, NotIn, Exists, - DoesNotExist. Gt, - and Lt. type: string values: - description: An array - of string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. If - the operator is - Gt or Lt, the values - array must have - a single element, - which will be interpreted - as an integer. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -28001,97 +9586,22 @@ spec: x-kubernetes-map-type: atomic type: object podAffinity: - description: Describes pod affinity scheduling - rules (e.g. co-locate this pod in the - same node, zone, etc. as some other - pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer - to schedule pods to nodes that satisfy - the affinity expressions specified - by this field, but it may choose - a node that violates one or more - of the expressions. The node that - is most preferred is the one with - the greatest sum of weights, i.e. - for each node that meets all of - the scheduling requirements (resource - request, requiredDuringScheduling - affinity expressions, etc.), compute - a sum by iterating through the elements - of this field and adding "weight" - to the sum if the node has pods - which matches the corresponding - podAffinityTerm; the node(s) with - the highest sum are the most preferred. items: - description: The weights of all - of the matched WeightedPodAffinityTerm - fields are added per-node to find - the most preferred node(s) properties: podAffinityTerm: - description: Required. A pod - affinity term, associated - with the corresponding weight. properties: labelSelector: - description: A label query - over a set of resources, - in this case pods. If - it's null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label - selector requirements. - The requirements are - ANDed. items: - description: A label - selector requirement - is a selector that - contains values, - a key, and an operator - that relates the - key and values. properties: key: - description: key - is the label - key that the - selector applies - to. type: string operator: - description: operator - represents a - key's relationship - to a set of - values. Valid - operators are - In, NotIn, Exists - and DoesNotExist. type: string values: - description: values - is an array - of string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or - DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic - merge patch. items: type: string type: array @@ -28105,151 +9615,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels - map is equivalent - to an element of matchExpressions, - whose key field is - "key", the operator - is "In", and the values - array contains only - "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys - is a set of pod label - keys to select which pods - will be taken into consideration. - The keys are used to lookup - values from the incoming - pod labels, those key-value - labels are merged with - `labelSelector` as `key - in (value)` to select - the group of existing - pods which pods will be - taken into consideration - for the incoming pod's - pod (anti) affinity. Keys - that don't exist in the - incoming pod labels will - be ignored. The default - value is empty. The same - key is forbidden to exist - in both matchLabelKeys - and labelSelector. Also, - matchLabelKeys cannot - be set when labelSelector - isn't set. This is an - alpha field and requires - enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label - keys to select which pods - will be taken into consideration. - The keys are used to lookup - values from the incoming - pod labels, those key-value - labels are merged with - `labelSelector` as `key - notin (value)` to select - the group of existing - pods which pods will be - taken into consideration - for the incoming pod's - pod (anti) affinity. Keys - that don't exist in the - incoming pod labels will - be ignored. The default - value is empty. The same - key is forbidden to exist - in both mismatchLabelKeys - and labelSelector. Also, - mismatchLabelKeys cannot - be set when labelSelector - isn't set. This is an - alpha field and requires - enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query - over the set of namespaces - that the term applies - to. The term is applied - to the union of the namespaces - selected by this field - and the ones listed in - the namespaces field. - null selector and null - or empty namespaces list - means "this pod's namespace". - An empty selector ({}) - matches all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label - selector requirements. - The requirements are - ANDed. items: - description: A label - selector requirement - is a selector that - contains values, - a key, and an operator - that relates the - key and values. properties: key: - description: key - is the label - key that the - selector applies - to. type: string operator: - description: operator - represents a - key's relationship - to a set of - values. Valid - operators are - In, NotIn, Exists - and DoesNotExist. type: string values: - description: values - is an array - of string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or - DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic - merge patch. items: type: string type: array @@ -28263,61 +9651,20 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels - map is equivalent - to an element of matchExpressions, - whose key field is - "key", the operator - is "In", and the values - array contains only - "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces - specifies a static list - of namespace names that - the term applies to. The - term is applied to the - union of the namespaces - listed in this field and - the ones selected by namespaceSelector. - null or empty namespaces - list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should - be co-located (affinity) - or not co-located (anti-affinity) - with the pods matching - the labelSelector in the - specified namespaces, - where co-located is defined - as running on a node whose - value of the label with - key topologyKey matches - that of any node on which - any of the selected pods - is running. Empty topologyKey - is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated - with matching the corresponding - podAffinityTerm, in the range - 1-100. format: int32 type: integer required: @@ -28327,81 +9674,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements - specified by this field are not - met at scheduling time, the pod - will not be scheduled onto the node. - If the affinity requirements specified - by this field cease to be met at - some point during pod execution - (e.g. due to a pod label update), - the system may or may not try to - eventually evict the pod from its - node. When there are multiple elements, - the lists of nodes corresponding - to each podAffinityTerm are intersected, - i.e. all terms must be satisfied. items: - description: Defines a set of pods - (namely those matching the labelSelector - relative to the given namespace(s)) - that this pod should be co-located - (affinity) or not co-located (anti-affinity) - with, where co-located is defined - as running on a node whose value - of the label with key - matches that of any node on which - a pod of the set of pods is running properties: labelSelector: - description: A label query over - a set of resources, in this - case pods. If it's null, this - PodAffinityTerm matches with - no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key - and values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, Exists - and DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -28415,136 +9699,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an element - of matchExpressions, whose - key field is "key", the - operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming pod - labels, those key-value labels - are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods - which pods will be taken into - consideration for the incoming - pod's pod (anti) affinity. - Keys that don't exist in the - incoming pod labels will be - ignored. The default value - is empty. The same key is - forbidden to exist in both - matchLabelKeys and labelSelector. - Also, matchLabelKeys cannot - be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming pod - labels, those key-value labels - are merged with `labelSelector` - as `key notin (value)` to - select the group of existing - pods which pods will be taken - into consideration for the - incoming pod's pod (anti) - affinity. Keys that don't - exist in the incoming pod - labels will be ignored. The - default value is empty. The - same key is forbidden to exist - in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over - the set of namespaces that - the term applies to. The term - is applied to the union of - the namespaces selected by - this field and the ones listed - in the namespaces field. null - selector and null or empty - namespaces list means "this - pod's namespace". An empty - selector ({}) matches all - namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key - and values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, Exists - and DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -28558,49 +9735,15 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an element - of matchExpressions, whose - key field is "key", the - operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace - names that the term applies - to. The term is applied to - the union of the namespaces - listed in this field and the - ones selected by namespaceSelector. - null or empty namespaces list - and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should - be co-located (affinity) or - not co-located (anti-affinity) - with the pods matching the - labelSelector in the specified - namespaces, where co-located - is defined as running on a - node whose value of the label - with key topologyKey matches - that of any node on which - any of the selected pods is - running. Empty topologyKey - is not allowed. type: string required: - topologyKey @@ -28609,97 +9752,22 @@ spec: x-kubernetes-list-type: atomic type: object podAntiAffinity: - description: Describes pod anti-affinity - scheduling rules (e.g. avoid putting - this pod in the same node, zone, etc. - as some other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer - to schedule pods to nodes that satisfy - the anti-affinity expressions specified - by this field, but it may choose - a node that violates one or more - of the expressions. The node that - is most preferred is the one with - the greatest sum of weights, i.e. - for each node that meets all of - the scheduling requirements (resource - request, requiredDuringScheduling - anti-affinity expressions, etc.), - compute a sum by iterating through - the elements of this field and adding - "weight" to the sum if the node - has pods which matches the corresponding - podAffinityTerm; the node(s) with - the highest sum are the most preferred. items: - description: The weights of all - of the matched WeightedPodAffinityTerm - fields are added per-node to find - the most preferred node(s) properties: podAffinityTerm: - description: Required. A pod - affinity term, associated - with the corresponding weight. properties: labelSelector: - description: A label query - over a set of resources, - in this case pods. If - it's null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label - selector requirements. - The requirements are - ANDed. items: - description: A label - selector requirement - is a selector that - contains values, - a key, and an operator - that relates the - key and values. properties: key: - description: key - is the label - key that the - selector applies - to. type: string operator: - description: operator - represents a - key's relationship - to a set of - values. Valid - operators are - In, NotIn, Exists - and DoesNotExist. type: string values: - description: values - is an array - of string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or - DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic - merge patch. items: type: string type: array @@ -28713,151 +9781,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels - map is equivalent - to an element of matchExpressions, - whose key field is - "key", the operator - is "In", and the values - array contains only - "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys - is a set of pod label - keys to select which pods - will be taken into consideration. - The keys are used to lookup - values from the incoming - pod labels, those key-value - labels are merged with - `labelSelector` as `key - in (value)` to select - the group of existing - pods which pods will be - taken into consideration - for the incoming pod's - pod (anti) affinity. Keys - that don't exist in the - incoming pod labels will - be ignored. The default - value is empty. The same - key is forbidden to exist - in both matchLabelKeys - and labelSelector. Also, - matchLabelKeys cannot - be set when labelSelector - isn't set. This is an - alpha field and requires - enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label - keys to select which pods - will be taken into consideration. - The keys are used to lookup - values from the incoming - pod labels, those key-value - labels are merged with - `labelSelector` as `key - notin (value)` to select - the group of existing - pods which pods will be - taken into consideration - for the incoming pod's - pod (anti) affinity. Keys - that don't exist in the - incoming pod labels will - be ignored. The default - value is empty. The same - key is forbidden to exist - in both mismatchLabelKeys - and labelSelector. Also, - mismatchLabelKeys cannot - be set when labelSelector - isn't set. This is an - alpha field and requires - enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query - over the set of namespaces - that the term applies - to. The term is applied - to the union of the namespaces - selected by this field - and the ones listed in - the namespaces field. - null selector and null - or empty namespaces list - means "this pod's namespace". - An empty selector ({}) - matches all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label - selector requirements. - The requirements are - ANDed. items: - description: A label - selector requirement - is a selector that - contains values, - a key, and an operator - that relates the - key and values. properties: key: - description: key - is the label - key that the - selector applies - to. type: string operator: - description: operator - represents a - key's relationship - to a set of - values. Valid - operators are - In, NotIn, Exists - and DoesNotExist. type: string values: - description: values - is an array - of string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or - DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic - merge patch. items: type: string type: array @@ -28871,61 +9817,20 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels - map is equivalent - to an element of matchExpressions, - whose key field is - "key", the operator - is "In", and the values - array contains only - "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces - specifies a static list - of namespace names that - the term applies to. The - term is applied to the - union of the namespaces - listed in this field and - the ones selected by namespaceSelector. - null or empty namespaces - list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should - be co-located (affinity) - or not co-located (anti-affinity) - with the pods matching - the labelSelector in the - specified namespaces, - where co-located is defined - as running on a node whose - value of the label with - key topologyKey matches - that of any node on which - any of the selected pods - is running. Empty topologyKey - is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated - with matching the corresponding - podAffinityTerm, in the range - 1-100. format: int32 type: integer required: @@ -28935,81 +9840,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the anti-affinity - requirements specified by this field - are not met at scheduling time, - the pod will not be scheduled onto - the node. If the anti-affinity requirements - specified by this field cease to - be met at some point during pod - execution (e.g. due to a pod label - update), the system may or may not - try to eventually evict the pod - from its node. When there are multiple - elements, the lists of nodes corresponding - to each podAffinityTerm are intersected, - i.e. all terms must be satisfied. items: - description: Defines a set of pods - (namely those matching the labelSelector - relative to the given namespace(s)) - that this pod should be co-located - (affinity) or not co-located (anti-affinity) - with, where co-located is defined - as running on a node whose value - of the label with key - matches that of any node on which - a pod of the set of pods is running properties: labelSelector: - description: A label query over - a set of resources, in this - case pods. If it's null, this - PodAffinityTerm matches with - no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key - and values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, Exists - and DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -29023,136 +9865,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an element - of matchExpressions, whose - key field is "key", the - operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming pod - labels, those key-value labels - are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods - which pods will be taken into - consideration for the incoming - pod's pod (anti) affinity. - Keys that don't exist in the - incoming pod labels will be - ignored. The default value - is empty. The same key is - forbidden to exist in both - matchLabelKeys and labelSelector. - Also, matchLabelKeys cannot - be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming pod - labels, those key-value labels - are merged with `labelSelector` - as `key notin (value)` to - select the group of existing - pods which pods will be taken - into consideration for the - incoming pod's pod (anti) - affinity. Keys that don't - exist in the incoming pod - labels will be ignored. The - default value is empty. The - same key is forbidden to exist - in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over - the set of namespaces that - the term applies to. The term - is applied to the union of - the namespaces selected by - this field and the ones listed - in the namespaces field. null - selector and null or empty - namespaces list means "this - pod's namespace". An empty - selector ({}) matches all - namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key - and values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, Exists - and DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -29166,49 +9901,15 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an element - of matchExpressions, whose - key field is "key", the - operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace - names that the term applies - to. The term is applied to - the union of the namespaces - listed in this field and the - ones selected by namespaceSelector. - null or empty namespaces list - and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should - be co-located (affinity) or - not co-located (anti-affinity) - with the pods matching the - labelSelector in the specified - namespaces, where co-located - is defined as running on a - node whose value of the label - with key topologyKey matches - that of any node on which - any of the selected pods is - running. Empty topologyKey - is not allowed. type: string required: - topologyKey @@ -29218,285 +9919,92 @@ spec: type: object type: object args: - description: 'Arguments to the entrypoint. - The docker image''s CMD is used if this - is not provided. Variable references $(VAR_NAME) - are expanded using the container''s environment. - If a variable cannot be resolved, the reference - in the input string will be unchanged. The - $(VAR_NAME) syntax can be escaped with a - double $$, ie: $$(VAR_NAME). Escaped references - will never be expanded, regardless of whether - the variable exists or not. Cannot be updated. - More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' items: type: string type: array containerSecurityContext: - description: 'Security options the pod should - run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: allowPrivilegeEscalation: - description: 'AllowPrivilegeEscalation - controls whether a process can gain - more privileges than its parent process. - This bool directly controls if the no_new_privs - flag will be set on the container process. - AllowPrivilegeEscalation is true always - when the container is: 1) run as Privileged - 2) has CAP_SYS_ADMIN Note that this - field cannot be set when spec.os.name - is windows.' type: boolean appArmorProfile: - description: appArmorProfile is the AppArmor - options to use by this container. If - set, this profile overrides the pod's - appArmorProfile. Note that this field - cannot be set when spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile loaded on the node that - should be used. The profile must - be preconfigured on the node to - work. Must match the loaded name - of the profile. Must be set if and - only if type is "Localhost". type: string type: - description: 'type indicates which - kind of AppArmor profile will be - applied. Valid options are: Localhost - - a profile pre-loaded on the node. - RuntimeDefault - the container runtime''s - default profile. Unconfined - no - AppArmor enforcement.' type: string required: - type type: object capabilities: - description: The capabilities to add/drop - when running containers. Defaults to - the default set of capabilities granted - by the container runtime. Note that - this field cannot be set when spec.os.name - is windows. properties: add: - description: Added capabilities items: - description: Capability represent - POSIX capabilities type type: string type: array x-kubernetes-list-type: atomic drop: - description: Removed capabilities items: - description: Capability represent - POSIX capabilities type type: string type: array x-kubernetes-list-type: atomic type: object privileged: - description: Run container in privileged - mode. Processes in privileged containers - are essentially equivalent to root on - the host. Defaults to false. Note that - this field cannot be set when spec.os.name - is windows. type: boolean procMount: - description: procMount denotes the type - of proc mount to use for the containers. - The default is DefaultProcMount which - uses the container runtime defaults - for readonly paths and masked paths. - This requires the ProcMountType feature - flag to be enabled. Note that this field - cannot be set when spec.os.name is windows. type: string readOnlyRootFilesystem: - description: Whether this container has - a read-only root filesystem. Default - is false. Note that this field cannot - be set when spec.os.name is windows. type: boolean runAsGroup: - description: The GID to run the entrypoint - of the container process. Uses runtime - default if unset. May also be set in - PodSecurityContext. If set in both - SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container - must run as a non-root user. If true, - the Kubelet will validate the image - at runtime to ensure that it does not - run as UID 0 (root) and fail to start - the container if it does. If unset or - false, no such validation will be performed. - May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: boolean runAsUser: - description: The UID to run the entrypoint - of the container process. Defaults to - user specified in image metadata if - unspecified. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be - applied to the container. If unspecified, - the container runtime will allocate - a random SELinux context for each container. May - also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is windows. properties: level: - description: Level is SELinux level - label that applies to the container. type: string role: - description: Role is a SELinux role - label that applies to the container. type: string type: - description: Type is a SELinux type - label that applies to the container. type: string user: - description: User is a SELinux user - label that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to use - by this container. If seccomp options - are provided at both the pod & container - level, the container options override - the pod options. Note that this field - cannot be set when spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile defined in a file on the - node should be used. The profile - must be preconfigured on the node - to work. Must be a descending path, - relative to the kubelet's configured - seccomp profile location. Must be - set if type is "Localhost". Must - NOT be set for any other type. type: string type: - description: "type indicates which - kind of seccomp profile will be - applied. Valid options are: \n Localhost - - a profile defined in a file on - the node should be used. RuntimeDefault - - the container runtime default - profile should be used. Unconfined - - no profile should be applied." type: string required: - type type: object windowsOptions: - description: The Windows specific settings - applied to all containers. If unspecified, - the options from the PodSecurityContext - will be used. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. - Note that this field cannot be set when - spec.os.name is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is - where the GMSA admission webhook - (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA - credential spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName - is the name of the GMSA credential - spec to use. type: string hostProcess: - description: HostProcess determines - if a container should be run as - a 'Host Process' container. All - of a Pod's containers must have - the same effective HostProcess value - (it is not allowed to have a mix - of HostProcess containers and non-HostProcess - containers). In addition, if HostProcess - is true then HostNetwork must also - be set to true. type: boolean runAsUserName: - description: The UserName in Windows - to run the entrypoint of the container - process. Defaults to the user specified - in image metadata if unspecified. - May also be set in PodSecurityContext. - If set in both SecurityContext and - PodSecurityContext, the value specified - in SecurityContext takes precedence. type: string type: object type: object dnsConfig: - description: Specifies the DNS parameters - of a pod. Parameters specified here will - be merged to the generated DNS configuration - based on DNSPolicy. properties: nameservers: - description: A list of DNS name server - IP addresses. This will be appended - to the base nameservers generated from - DNSPolicy. Duplicated nameservers will - be removed. items: type: string type: array x-kubernetes-list-type: atomic options: - description: A list of DNS resolver options. - This will be merged with the base options - generated from DNSPolicy. Duplicated - entries will be removed. Resolution - options given in Options will override - those that appear in the base DNSPolicy. items: - description: PodDNSConfigOption defines - DNS resolver options of a pod. properties: name: - description: Required. type: string value: type: string @@ -29504,179 +10012,71 @@ spec: type: array x-kubernetes-list-type: atomic searches: - description: A list of DNS search domains - for host-name lookup. This will be appended - to the base search paths generated from - DNSPolicy. Duplicated search paths will - be removed. items: type: string type: array x-kubernetes-list-type: atomic type: object dnsPolicy: - description: Set DNS policy for the pod. Defaults - to "ClusterFirst". Valid values are 'ClusterFirstWithHostNet', - 'ClusterFirst', 'Default' or 'None'. DNS - parameters given in DNSConfig will be merged - with the policy selected with DNSPolicy. - To have DNS options set along with hostNetwork, - you have to specify DNS policy explicitly - to 'ClusterFirstWithHostNet'. type: string enableServiceLinks: - description: 'EnableServiceLinks indicates - whether information about services should - be injected into pod''s environment variables, - matching the syntax of Docker links. Optional: - Defaults to true.' type: boolean env: - description: List of environment variables - to set in the container. Cannot be updated. items: - description: EnvVar represents an environment - variable present in a Container. properties: name: - description: Name of the environment - variable. Must be a C_IDENTIFIER. type: string value: - description: 'Variable references $(VAR_NAME) - are expanded using the previously - defined environment variables in the - container and any service environment - variables. If a variable cannot be - resolved, the reference in the input - string will be unchanged. Double $$ - are reduced to a single $, which allows - for escaping the $(VAR_NAME) syntax: - i.e. "$$(VAR_NAME)" will produce the - string literal "$(VAR_NAME)". Escaped - references will never be expanded, - regardless of whether the variable - exists or not. Defaults to "".' type: string valueFrom: - description: Source for the environment - variable's value. Cannot be used if - value is not empty. properties: configMapKeyRef: - description: Selects a key of a - ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether - the ConfigMap or its key must - be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field of - the pod: supports metadata.name, - metadata.namespace, `metadata.labels['''']`, - `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, - status.hostIP, status.podIP, status.podIPs.' properties: apiVersion: - description: Version of the - schema the FieldPath is written - in terms of, defaults to "v1". type: string fieldPath: - description: Path of the field - to select in the specified - API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource - of the container: only resources - limits and requests (limits.cpu, - limits.memory, limits.ephemeral-storage, - requests.cpu, requests.memory - and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: - required for volumes, optional - for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource - to select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a - secret in the pod's namespace properties: key: - description: The key of the - secret to select from. Must - be a valid secret key. type: string name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether - the Secret or its key must - be defined type: boolean required: - key @@ -29688,275 +10088,89 @@ spec: type: object type: array hostIPC: - description: 'Use the host''s ipc namespace. - Optional: Default to false.' type: boolean hostNetwork: - description: Host networking requested for - this pod. Use the host's network namespace. - If this option is set, the ports that will - be used must be specified. Default to false. type: boolean hostPID: - description: 'Use the host''s pid namespace. - Optional: Default to false.' type: boolean imagePullSecrets: - description: 'ImagePullSecrets is an optional - list of references to secrets in the same - namespace to use for pulling any of the - images used by this PodSpec. If specified, - these secrets will be passed to individual - puller implementations for them to use. - More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod' items: - description: LocalObjectReference contains - enough information to let you locate the - referenced object inside the same namespace. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value here - are almost certainly wrong. TODO: - Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic type: array initContainers: - description: 'List of initialization containers - belonging to the pod. Init containers are - executed in order prior to containers being - started. If any init container fails, the - pod is considered to have failed and is - handled according to its restartPolicy. - The name for an init container or normal - container must be unique among all containers. - Init containers may not have Lifecycle actions, - Readiness probes, or Liveness probes. The - resourceRequirements of an init container - are taken into account during scheduling - by finding the highest request/limit for - each resource type, and then using the max - of of that value or the sum of the normal - containers. Limits are applied to init containers - in a similar fashion. Init containers cannot - currently be added or removed. Cannot be - updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/' items: - description: A single application container - that you want to run within a pod. properties: args: - description: 'Arguments to the entrypoint. - The container image''s CMD is used - if this is not provided. Variable - references $(VAR_NAME) are expanded - using the container''s environment. - If a variable cannot be resolved, - the reference in the input string - will be unchanged. Double $$ are reduced - to a single $, which allows for escaping - the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" - will produce the string literal "$(VAR_NAME)". - Escaped references will never be expanded, - regardless of whether the variable - exists or not. Cannot be updated. - More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' items: type: string type: array x-kubernetes-list-type: atomic command: - description: 'Entrypoint array. Not - executed within a shell. The container - image''s ENTRYPOINT is used if this - is not provided. Variable references - $(VAR_NAME) are expanded using the - container''s environment. If a variable - cannot be resolved, the reference - in the input string will be unchanged. - Double $$ are reduced to a single - $, which allows for escaping the $(VAR_NAME) - syntax: i.e. "$$(VAR_NAME)" will produce - the string literal "$(VAR_NAME)". - Escaped references will never be expanded, - regardless of whether the variable - exists or not. Cannot be updated. - More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' items: type: string type: array x-kubernetes-list-type: atomic env: - description: List of environment variables - to set in the container. Cannot be - updated. items: - description: EnvVar represents an - environment variable present in - a Container. properties: name: - description: Name of the environment - variable. Must be a C_IDENTIFIER. type: string value: - description: 'Variable references - $(VAR_NAME) are expanded using - the previously defined environment - variables in the container and - any service environment variables. - If a variable cannot be resolved, - the reference in the input string - will be unchanged. Double $$ - are reduced to a single $, which - allows for escaping the $(VAR_NAME) - syntax: i.e. "$$(VAR_NAME)" - will produce the string literal - "$(VAR_NAME)". Escaped references - will never be expanded, regardless - of whether the variable exists - or not. Defaults to "".' type: string valueFrom: - description: Source for the environment - variable's value. Cannot be - used if value is not empty. properties: configMapKeyRef: - description: Selects a key - of a ConfigMap. properties: key: - description: The key to - select. type: string name: default: "" - description: 'Name of - the referent. This field - is effectively required, - but due to backwards - compatibility is allowed - to be empty. Instances - of this type with an - empty value here are - almost certainly wrong. - TODO: Add other useful - fields. apiVersion, - kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether - the ConfigMap or its - key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field - of the pod: supports metadata.name, - metadata.namespace, `metadata.labels['''']`, - `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, - status.hostIP, status.podIP, - status.podIPs.' properties: apiVersion: - description: Version of - the schema the FieldPath - is written in terms - of, defaults to "v1". type: string fieldPath: - description: Path of the - field to select in the - specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource - of the container: only resources - limits and requests (limits.cpu, - limits.memory, limits.ephemeral-storage, - requests.cpu, requests.memory - and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container - name: required for volumes, - optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies - the output format of - the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: - resource to select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key - of a secret in the pod's - namespace properties: key: - description: The key of - the secret to select - from. Must be a valid - secret key. type: string name: default: "" - description: 'Name of - the referent. This field - is effectively required, - but due to backwards - compatibility is allowed - to be empty. Instances - of this type with an - empty value here are - almost certainly wrong. - TODO: Add other useful - fields. apiVersion, - kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether - the Secret or its key - must be defined type: boolean required: - key @@ -29971,77 +10185,25 @@ spec: - name x-kubernetes-list-type: map envFrom: - description: List of sources to populate - environment variables in the container. - The keys defined within a source must - be a C_IDENTIFIER. All invalid keys - will be reported as an event when - the container is starting. When a - key exists in multiple sources, the - value associated with the last source - will take precedence. Values defined - by an Env with a duplicate key will - take precedence. Cannot be updated. items: - description: EnvFromSource represents - the source of a set of ConfigMaps properties: configMapRef: - description: The ConfigMap to - select from properties: name: default: "" - description: 'Name of the - referent. This field is - effectively required, but - due to backwards compatibility - is allowed to be empty. - Instances of this type with - an empty value here are - almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether - the ConfigMap must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: - description: An optional identifier - to prepend to each key in the - ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: - description: The Secret to select - from properties: name: default: "" - description: 'Name of the - referent. This field is - effectively required, but - due to backwards compatibility - is allowed to be empty. - Instances of this type with - an empty value here are - almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether - the Secret must be defined type: boolean type: object x-kubernetes-map-type: atomic @@ -30049,94 +10211,31 @@ spec: type: array x-kubernetes-list-type: atomic image: - description: 'Container image name. - More info: https://kubernetes.io/docs/concepts/containers/images - This field is optional to allow higher - level config management to default - or override container images in workload - controllers like Deployments and StatefulSets.' type: string imagePullPolicy: - description: 'Image pull policy. One - of Always, Never, IfNotPresent. Defaults - to Always if :latest tag is specified, - or IfNotPresent otherwise. Cannot - be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images' type: string lifecycle: - description: Actions that the management - system should take in response to - container lifecycle events. Cannot - be updated. properties: postStart: - description: 'PostStart is called - immediately after a container - is created. If the handler fails, - the container is terminated and - restarted according to its restart - policy. Other management of the - container blocks until the hook - completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies - the action to take. properties: command: - description: Command is - the command line to execute - inside the container, - the working directory - for the command is root - ('/') in the container's - filesystem. The command - is simply exec'd, it is - not run inside a shell, - so traditional shell instructions - ('|', etc) won't work. - To use a shell, you need - to explicitly call out - to that shell. Exit status - of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies - the http request to perform. properties: host: - description: Host name to - connect to, defaults to - the pod IP. You probably - want to set "Host" in - httpHeaders instead. type: string httpHeaders: - description: Custom headers - to set in the request. - HTTP allows repeated headers. items: - description: HTTPHeader - describes a custom header - to be used in HTTP probes properties: name: - description: The header - field name. This - will be canonicalized - upon output, so - case-variant names - will be understood - as the same header. type: string value: - description: The header - field value type: string required: - name @@ -30145,152 +10244,58 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access - on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number - of the port to access - on the container. Number - must be in the range 1 - to 65535. Name must be - an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use - for connecting to the - host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents - the duration that the container - should sleep before being - terminated. properties: seconds: - description: Seconds is - the number of seconds - to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket - is NOT supported as a LifecycleHandler - and kept for the backward - compatibility. There are no - validation of this field and - lifecycle hooks will fail - in runtime when tcp handler - is specified. properties: host: - description: 'Optional: - Host name to connect to, - defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name - of the port to access - on the container. Number - must be in the range 1 - to 65535. Name must be - an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object type: object preStop: - description: 'PreStop is called - immediately before a container - is terminated due to an API request - or management event such as liveness/startup - probe failure, preemption, resource - contention, etc. The handler is - not called if the container crashes - or exits. The Pod''s termination - grace period countdown begins - before the PreStop hook is executed. - Regardless of the outcome of the - handler, the container will eventually - terminate within the Pod''s termination - grace period (unless delayed by - finalizers). Other management - of the container blocks until - the hook completes or until the - termination grace period is reached. - More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies - the action to take. properties: command: - description: Command is - the command line to execute - inside the container, - the working directory - for the command is root - ('/') in the container's - filesystem. The command - is simply exec'd, it is - not run inside a shell, - so traditional shell instructions - ('|', etc) won't work. - To use a shell, you need - to explicitly call out - to that shell. Exit status - of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies - the http request to perform. properties: host: - description: Host name to - connect to, defaults to - the pod IP. You probably - want to set "Host" in - httpHeaders instead. type: string httpHeaders: - description: Custom headers - to set in the request. - HTTP allows repeated headers. items: - description: HTTPHeader - describes a custom header - to be used in HTTP probes properties: name: - description: The header - field name. This - will be canonicalized - upon output, so - case-variant names - will be understood - as the same header. type: string value: - description: The header - field value type: string required: - name @@ -30299,68 +10304,33 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access - on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number - of the port to access - on the container. Number - must be in the range 1 - to 65535. Name must be - an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use - for connecting to the - host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents - the duration that the container - should sleep before being - terminated. properties: seconds: - description: Seconds is - the number of seconds - to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket - is NOT supported as a LifecycleHandler - and kept for the backward - compatibility. There are no - validation of this field and - lifecycle hooks will fail - in runtime when tcp handler - is specified. properties: host: - description: 'Optional: - Host name to connect to, - defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name - of the port to access - on the container. Number - must be in the range 1 - to 65535. Name must be - an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port @@ -30368,95 +10338,38 @@ spec: type: object type: object livenessProbe: - description: 'Periodic probe of container - liveness. Container will be restarted - if the probe fails. Cannot be updated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the - action to take. properties: command: - description: Command is the - command line to execute inside - the container, the working - directory for the command is - root ('/') in the container's - filesystem. The command is - simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, - you need to explicitly call - out to that shell. Exit status - of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive - failures for the probe to be considered - failed after having succeeded. - Defaults to 3. Minimum value is - 1. format: int32 type: integer grpc: - description: GRPC specifies an action - involving a GRPC port. properties: port: - description: Port number of - the gRPC service. Number must - be in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the - name of the service to place - in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, - the default behavior is defined - by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the - http request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. - You probably want to set "Host" - in httpHeaders instead. type: string httpHeaders: - description: Custom headers - to set in the request. HTTP - allows repeated headers. items: - description: HTTPHeader describes - a custom header to be used - in HTTP probes properties: name: - description: The header - field name. This will - be canonicalized upon - output, so case-variant - names will be understood - as the same header. type: string value: - description: The header - field value type: string required: - name @@ -30465,164 +10378,62 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access - on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number - of the port to access on the - container. Number must be - in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for - connecting to the host. Defaults - to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds - after the container has started - before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) - to perform the probe. Default - to 10 seconds. Minimum value is - 1. format: int32 type: integer successThreshold: - description: Minimum consecutive - successes for the probe to be - considered successful after having - failed. Defaults to 1. Must be - 1 for liveness and startup. Minimum - value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies - an action involving a TCP port. properties: host: - description: 'Optional: Host - name to connect to, defaults - to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name - of the port to access on the - container. Number must be - in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in - seconds the pod needs to terminate - gracefully upon probe failure. - The grace period is the duration - in seconds after the processes - running in the pod are sent a - termination signal and the time - when the processes are forcibly - halted with a kill signal. Set - this value longer than the expected - cleanup time for your process. - If this value is nil, the pod's - terminationGracePeriodSeconds - will be used. Otherwise, this - value overrides the value provided - by the pod spec. Value must be - non-negative integer. The value - zero indicates stop immediately - via the kill signal (no opportunity - to shut down). This is a beta - field and requires enabling ProbeTerminationGracePeriod - feature gate. Minimum value is - 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds - after which the probe times out. - Defaults to 1 second. Minimum - value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object name: - description: Name of the container specified - as a DNS_LABEL. Each container in - a pod must have a unique name (DNS_LABEL). - Cannot be updated. type: string ports: - description: List of ports to expose - from the container. Not specifying - a port here DOES NOT prevent that - port from being exposed. Any port - which is listening on the default - "0.0.0.0" address inside a container - will be accessible from the network. - Modifying this array with strategic - merge patch may corrupt the data. - For more information See https://github.com/kubernetes/kubernetes/issues/108255. - Cannot be updated. items: - description: ContainerPort represents - a network port in a single container. properties: containerPort: - description: Number of port to - expose on the pod's IP address. - This must be a valid port number, - 0 < x < 65536. format: int32 type: integer hostIP: - description: What host IP to bind - the external port to. type: string hostPort: - description: Number of port to - expose on the host. If specified, - this must be a valid port number, - 0 < x < 65536. If HostNetwork - is specified, this must match - ContainerPort. Most containers - do not need this. format: int32 type: integer name: - description: If specified, this - must be an IANA_SVC_NAME and - unique within the pod. Each - named port in a pod must have - a unique name. Name for the - port that can be referred to - by services. type: string protocol: default: TCP - description: Protocol for port. - Must be UDP, TCP, or SCTP. Defaults - to "TCP". type: string required: - containerPort @@ -30633,96 +10444,38 @@ spec: - protocol x-kubernetes-list-type: map readinessProbe: - description: 'Periodic probe of container - service readiness. Container will - be removed from service endpoints - if the probe fails. Cannot be updated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the - action to take. properties: command: - description: Command is the - command line to execute inside - the container, the working - directory for the command is - root ('/') in the container's - filesystem. The command is - simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, - you need to explicitly call - out to that shell. Exit status - of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive - failures for the probe to be considered - failed after having succeeded. - Defaults to 3. Minimum value is - 1. format: int32 type: integer grpc: - description: GRPC specifies an action - involving a GRPC port. properties: port: - description: Port number of - the gRPC service. Number must - be in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the - name of the service to place - in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, - the default behavior is defined - by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the - http request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. - You probably want to set "Host" - in httpHeaders instead. type: string httpHeaders: - description: Custom headers - to set in the request. HTTP - allows repeated headers. items: - description: HTTPHeader describes - a custom header to be used - in HTTP probes properties: name: - description: The header - field name. This will - be canonicalized upon - output, so case-variant - names will be understood - as the same header. type: string value: - description: The header - field value type: string required: - name @@ -30731,126 +10484,51 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access - on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number - of the port to access on the - container. Number must be - in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for - connecting to the host. Defaults - to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds - after the container has started - before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) - to perform the probe. Default - to 10 seconds. Minimum value is - 1. format: int32 type: integer successThreshold: - description: Minimum consecutive - successes for the probe to be - considered successful after having - failed. Defaults to 1. Must be - 1 for liveness and startup. Minimum - value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies - an action involving a TCP port. properties: host: - description: 'Optional: Host - name to connect to, defaults - to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name - of the port to access on the - container. Number must be - in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in - seconds the pod needs to terminate - gracefully upon probe failure. - The grace period is the duration - in seconds after the processes - running in the pod are sent a - termination signal and the time - when the processes are forcibly - halted with a kill signal. Set - this value longer than the expected - cleanup time for your process. - If this value is nil, the pod's - terminationGracePeriodSeconds - will be used. Otherwise, this - value overrides the value provided - by the pod spec. Value must be - non-negative integer. The value - zero indicates stop immediately - via the kill signal (no opportunity - to shut down). This is a beta - field and requires enabling ProbeTerminationGracePeriod - feature gate. Minimum value is - 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds - after which the probe times out. - Defaults to 1 second. Minimum - value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object resizePolicy: - description: Resources resize policy - for the container. items: - description: ContainerResizePolicy - represents resource resize policy - for the container. properties: resourceName: - description: 'Name of the resource - to which this resource resize - policy applies. Supported values: - cpu, memory.' type: string restartPolicy: - description: Restart policy to - apply when specified resource - is resized. If not specified, - it defaults to NotRequired. type: string required: - resourceName @@ -30859,30 +10537,11 @@ spec: type: array x-kubernetes-list-type: atomic resources: - description: 'Compute Resources required - by this container. Cannot be updated. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' properties: claims: - description: "Claims lists the names - of resources, defined in spec.resourceClaims, - that are used by this container. - \n This is an alpha field and - requires enabling the DynamicResourceAllocation - feature gate. \n This field is - immutable. It can only be set - for containers." items: - description: ResourceClaim references - one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match - the name of one entry in - pod.spec.resourceClaims - of the Pod where this field - is used. It makes that resource - available inside a container. type: string required: - name @@ -30898,9 +10557,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the - maximum amount of compute resources - allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -30909,421 +10565,115 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes - the minimum amount of compute - resources required. If Requests - is omitted for a container, it - defaults to Limits if that is - explicitly specified, otherwise - to an implementation-defined value. - Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object restartPolicy: - description: 'RestartPolicy defines - the restart behavior of individual - containers in a pod. This field may - only be set for init containers, and - the only allowed value is "Always". - For non-init containers or when this - field is not specified, the restart - behavior is defined by the Pod''s - restart policy and the container type. - Setting the RestartPolicy as "Always" - for the init container will have the - following effect: this init container - will be continually restarted on exit - until all regular containers have - terminated. Once all regular containers - have completed, all init containers - with restartPolicy "Always" will be - shut down. This lifecycle differs - from normal init containers and is - often referred to as a "sidecar" container. - Although this init container still - starts in the init container sequence, - it does not wait for the container - to complete before proceeding to the - next init container. Instead, the - next init container starts immediately - after this init container is started, - or after any startupProbe has successfully - completed.' type: string securityContext: - description: 'SecurityContext defines - the security options the container - should be run with. If set, the fields - of SecurityContext override the equivalent - fields of PodSecurityContext. More - info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: allowPrivilegeEscalation: - description: 'AllowPrivilegeEscalation - controls whether a process can - gain more privileges than its - parent process. This bool directly - controls if the no_new_privs flag - will be set on the container process. - AllowPrivilegeEscalation is true - always when the container is: - 1) run as Privileged 2) has CAP_SYS_ADMIN - Note that this field cannot be - set when spec.os.name is windows.' type: boolean appArmorProfile: - description: appArmorProfile is - the AppArmor options to use by - this container. If set, this profile - overrides the pod's appArmorProfile. - Note that this field cannot be - set when spec.os.name is windows. properties: localhostProfile: - description: localhostProfile - indicates a profile loaded - on the node that should be - used. The profile must be - preconfigured on the node - to work. Must match the loaded - name of the profile. Must - be set if and only if type - is "Localhost". type: string type: - description: 'type indicates - which kind of AppArmor profile - will be applied. Valid options - are: Localhost - a profile - pre-loaded on the node. RuntimeDefault - - the container runtime''s - default profile. Unconfined - - no AppArmor enforcement.' type: string required: - type type: object capabilities: - description: The capabilities to - add/drop when running containers. - Defaults to the default set of - capabilities granted by the container - runtime. Note that this field - cannot be set when spec.os.name - is windows. properties: add: - description: Added capabilities items: - description: Capability represent - POSIX capabilities type type: string type: array x-kubernetes-list-type: atomic drop: - description: Removed capabilities items: - description: Capability represent - POSIX capabilities type type: string type: array x-kubernetes-list-type: atomic type: object privileged: - description: Run container in privileged - mode. Processes in privileged - containers are essentially equivalent - to root on the host. Defaults - to false. Note that this field - cannot be set when spec.os.name - is windows. type: boolean procMount: - description: procMount denotes the - type of proc mount to use for - the containers. The default is - DefaultProcMount which uses the - container runtime defaults for - readonly paths and masked paths. - This requires the ProcMountType - feature flag to be enabled. Note - that this field cannot be set - when spec.os.name is windows. type: string readOnlyRootFilesystem: - description: Whether this container - has a read-only root filesystem. - Default is false. Note that this - field cannot be set when spec.os.name - is windows. type: boolean runAsGroup: - description: The GID to run the - entrypoint of the container process. - Uses runtime default if unset. - May also be set in PodSecurityContext. If - set in both SecurityContext and - PodSecurityContext, the value - specified in SecurityContext takes - precedence. Note that this field - cannot be set when spec.os.name - is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the - container must run as a non-root - user. If true, the Kubelet will - validate the image at runtime - to ensure that it does not run - as UID 0 (root) and fail to start - the container if it does. If unset - or false, no such validation will - be performed. May also be set - in PodSecurityContext. If set - in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: boolean runAsUser: - description: The UID to run the - entrypoint of the container process. - Defaults to user specified in - image metadata if unspecified. - May also be set in PodSecurityContext. If - set in both SecurityContext and - PodSecurityContext, the value - specified in SecurityContext takes - precedence. Note that this field - cannot be set when spec.os.name - is windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context - to be applied to the container. - If unspecified, the container - runtime will allocate a random - SELinux context for each container. May - also be set in PodSecurityContext. If - set in both SecurityContext and - PodSecurityContext, the value - specified in SecurityContext takes - precedence. Note that this field - cannot be set when spec.os.name - is windows. properties: level: - description: Level is SELinux - level label that applies to - the container. type: string role: - description: Role is a SELinux - role label that applies to - the container. type: string type: - description: Type is a SELinux - type label that applies to - the container. type: string user: - description: User is a SELinux - user label that applies to - the container. type: string type: object seccompProfile: - description: The seccomp options - to use by this container. If seccomp - options are provided at both the - pod & container level, the container - options override the pod options. - Note that this field cannot be - set when spec.os.name is windows. properties: localhostProfile: - description: localhostProfile - indicates a profile defined - in a file on the node should - be used. The profile must - be preconfigured on the node - to work. Must be a descending - path, relative to the kubelet's - configured seccomp profile - location. Must be set if type - is "Localhost". Must NOT be - set for any other type. type: string type: - description: "type indicates - which kind of seccomp profile - will be applied. Valid options - are: \n Localhost - a profile - defined in a file on the node - should be used. RuntimeDefault - - the container runtime default - profile should be used. Unconfined - - no profile should be applied." type: string required: - type type: object windowsOptions: - description: The Windows specific - settings applied to all containers. - If unspecified, the options from - the PodSecurityContext will be - used. If set in both SecurityContext - and PodSecurityContext, the value - specified in SecurityContext takes - precedence. Note that this field - cannot be set when spec.os.name - is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec - is where the GMSA admission - webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the - GMSA credential spec named - by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName - is the name of the GMSA credential - spec to use. type: string hostProcess: - description: HostProcess determines - if a container should be run - as a 'Host Process' container. - All of a Pod's containers - must have the same effective - HostProcess value (it is not - allowed to have a mix of HostProcess - containers and non-HostProcess - containers). In addition, - if HostProcess is true then - HostNetwork must also be set - to true. type: boolean runAsUserName: - description: The UserName in - Windows to run the entrypoint - of the container process. - Defaults to the user specified - in image metadata if unspecified. - May also be set in PodSecurityContext. - If set in both SecurityContext - and PodSecurityContext, the - value specified in SecurityContext - takes precedence. type: string type: object type: object startupProbe: - description: 'StartupProbe indicates - that the Pod has successfully initialized. - If specified, no other probes are - executed until this completes successfully. - If this probe fails, the Pod will - be restarted, just as if the livenessProbe - failed. This can be used to provide - different probe parameters at the - beginning of a Pod''s lifecycle, when - it might take a long time to load - data or warm a cache, than during - steady-state operation. This cannot - be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the - action to take. properties: command: - description: Command is the - command line to execute inside - the container, the working - directory for the command is - root ('/') in the container's - filesystem. The command is - simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, - you need to explicitly call - out to that shell. Exit status - of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive - failures for the probe to be considered - failed after having succeeded. - Defaults to 3. Minimum value is - 1. format: int32 type: integer grpc: - description: GRPC specifies an action - involving a GRPC port. properties: port: - description: Port number of - the gRPC service. Number must - be in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the - name of the service to place - in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, - the default behavior is defined - by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the - http request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. - You probably want to set "Host" - in httpHeaders instead. type: string httpHeaders: - description: Custom headers - to set in the request. HTTP - allows repeated headers. items: - description: HTTPHeader describes - a custom header to be used - in HTTP probes properties: name: - description: The header - field name. This will - be canonicalized upon - output, so case-variant - names will be understood - as the same header. type: string value: - description: The header - field value type: string required: - name @@ -31332,186 +10682,61 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access - on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number - of the port to access on the - container. Number must be - in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for - connecting to the host. Defaults - to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds - after the container has started - before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) - to perform the probe. Default - to 10 seconds. Minimum value is - 1. format: int32 type: integer successThreshold: - description: Minimum consecutive - successes for the probe to be - considered successful after having - failed. Defaults to 1. Must be - 1 for liveness and startup. Minimum - value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies - an action involving a TCP port. properties: host: - description: 'Optional: Host - name to connect to, defaults - to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name - of the port to access on the - container. Number must be - in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in - seconds the pod needs to terminate - gracefully upon probe failure. - The grace period is the duration - in seconds after the processes - running in the pod are sent a - termination signal and the time - when the processes are forcibly - halted with a kill signal. Set - this value longer than the expected - cleanup time for your process. - If this value is nil, the pod's - terminationGracePeriodSeconds - will be used. Otherwise, this - value overrides the value provided - by the pod spec. Value must be - non-negative integer. The value - zero indicates stop immediately - via the kill signal (no opportunity - to shut down). This is a beta - field and requires enabling ProbeTerminationGracePeriod - feature gate. Minimum value is - 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds - after which the probe times out. - Defaults to 1 second. Minimum - value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object stdin: - description: Whether this container - should allocate a buffer for stdin - in the container runtime. If this - is not set, reads from stdin in the - container will always result in EOF. - Default is false. type: boolean stdinOnce: - description: Whether the container runtime - should close the stdin channel after - it has been opened by a single attach. - When stdin is true the stdin stream - will remain open across multiple attach - sessions. If stdinOnce is set to true, - stdin is opened on container start, - is empty until the first client attaches - to stdin, and then remains open and - accepts data until the client disconnects, - at which time stdin is closed and - remains closed until the container - is restarted. If this flag is false, - a container processes that reads from - stdin will never receive an EOF. Default - is false type: boolean terminationMessagePath: - description: 'Optional: Path at which - the file to which the container''s - termination message will be written - is mounted into the container''s filesystem. - Message written is intended to be - brief final status, such as an assertion - failure message. Will be truncated - by the node if greater than 4096 bytes. - The total message length across all - containers will be limited to 12kb. - Defaults to /dev/termination-log. - Cannot be updated.' type: string terminationMessagePolicy: - description: Indicate how the termination - message should be populated. File - will use the contents of terminationMessagePath - to populate the container status message - on both success and failure. FallbackToLogsOnError - will use the last chunk of container - log output if the termination message - file is empty and the container exited - with an error. The log output is limited - to 2048 bytes or 80 lines, whichever - is smaller. Defaults to File. Cannot - be updated. type: string tty: - description: Whether this container - should allocate a TTY for itself, - also requires 'stdin' to be true. - Default is false. type: boolean volumeDevices: - description: volumeDevices is the list - of block devices to be used by the - container. items: - description: volumeDevice describes - a mapping of a raw block device - within a container. properties: devicePath: - description: devicePath is the - path inside of the container - that the device will be mapped - to. type: string name: - description: name must match the - name of a persistentVolumeClaim - in the pod type: string required: - devicePath @@ -31522,87 +10747,21 @@ spec: - devicePath x-kubernetes-list-type: map volumeMounts: - description: Pod volumes to mount into - the container's filesystem. Cannot - be updated. items: - description: VolumeMount describes - a mounting of a Volume within a - container. properties: mountPath: - description: Path within the container - at which the volume should be - mounted. Must not contain ':'. type: string mountPropagation: - description: mountPropagation - determines how mounts are propagated - from the host to container and - the other way around. When not - set, MountPropagationNone is - used. This field is beta in - 1.10. When RecursiveReadOnly - is set to IfPossible or to Enabled, - MountPropagation must be None - or unspecified (which defaults - to None). type: string name: - description: This must match the - Name of a Volume. type: string readOnly: - description: Mounted read-only - if true, read-write otherwise - (false or unspecified). Defaults - to false. type: boolean recursiveReadOnly: - description: "RecursiveReadOnly - specifies whether read-only - mounts should be handled recursively. - \n If ReadOnly is false, this - field has no meaning and must - be unspecified. \n If ReadOnly - is true, and this field is set - to Disabled, the mount is not - made recursively read-only. - \ If this field is set to IfPossible, - the mount is made recursively - read-only, if it is supported - by the container runtime. If - this field is set to Enabled, - the mount is made recursively - read-only if it is supported - by the container runtime, otherwise - the pod will not be started - and an error will be generated - to indicate the reason. \n If - this field is set to IfPossible - or Enabled, MountPropagation - must be set to None (or be unspecified, - which defaults to None). \n - If this field is not specified, - it is treated as an equivalent - of Disabled." type: string subPath: - description: Path within the volume - from which the container's volume - should be mounted. Defaults - to "" (volume's root). type: string subPathExpr: - description: Expanded path within - the volume from which the container's - volume should be mounted. Behaves - similarly to SubPath but environment - variable references $(VAR_NAME) - are expanded using the container's - environment. Defaults to "" - (volume's root). SubPathExpr - and SubPath are mutually exclusive. type: string required: - mountPath @@ -31613,83 +10772,33 @@ spec: - mountPath x-kubernetes-list-type: map workingDir: - description: Container's working directory. - If not specified, the container runtime's - default will be used, which might - be configured in the container image. - Cannot be updated. type: string required: - name type: object type: array lifecycle: - description: Actions that the management system - should take in response to container lifecycle - events. Cannot be updated. properties: postStart: - description: 'PostStart is called immediately - after a container is created. If the - handler fails, the container is terminated - and restarted according to its restart - policy. Other management of the container - blocks until the hook completes. More - info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the - command is root ('/') in the - container's filesystem. The - command is simply exec'd, it - is not run inside a shell, so - traditional shell instructions - ('|', etc) won't work. To use - a shell, you need to explicitly - call out to that shell. Exit - status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the - http request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. - You probably want to set "Host" - in httpHeaders instead. type: string httpHeaders: - description: Custom headers to - set in the request. HTTP allows - repeated headers. items: - description: HTTPHeader describes - a custom header to be used - in HTTP probes properties: name: - description: The header - field name. This will - be canonicalized upon - output, so case-variant - names will be understood - as the same header. type: string value: - description: The header - field value type: string required: - name @@ -31698,138 +10807,58 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on - the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of - the port to access on the container. - Number must be in the range - 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for - connecting to the host. Defaults - to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the - duration that the container should - sleep before being terminated. properties: seconds: - description: Seconds is the number - of seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket - is NOT supported as a LifecycleHandler - and kept for the backward compatibility. - There are no validation of this - field and lifecycle hooks will fail - in runtime when tcp handler is specified. properties: host: - description: 'Optional: Host name - to connect to, defaults to the - pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of - the port to access on the container. - Number must be in the range - 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object type: object preStop: - description: 'PreStop is called immediately - before a container is terminated due - to an API request or management event - such as liveness/startup probe failure, - preemption, resource contention, etc. - The handler is not called if the container - crashes or exits. The Pod''s termination - grace period countdown begins before - the PreStop hook is executed. Regardless - of the outcome of the handler, the container - will eventually terminate within the - Pod''s termination grace period (unless - delayed by finalizers). Other management - of the container blocks until the hook - completes or until the termination grace - period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the - command is root ('/') in the - container's filesystem. The - command is simply exec'd, it - is not run inside a shell, so - traditional shell instructions - ('|', etc) won't work. To use - a shell, you need to explicitly - call out to that shell. Exit - status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the - http request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. - You probably want to set "Host" - in httpHeaders instead. type: string httpHeaders: - description: Custom headers to - set in the request. HTTP allows - repeated headers. items: - description: HTTPHeader describes - a custom header to be used - in HTTP probes properties: name: - description: The header - field name. This will - be canonicalized upon - output, so case-variant - names will be understood - as the same header. type: string value: - description: The header - field value type: string required: - name @@ -31838,62 +10867,33 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on - the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of - the port to access on the container. - Number must be in the range - 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for - connecting to the host. Defaults - to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the - duration that the container should - sleep before being terminated. properties: seconds: - description: Seconds is the number - of seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket - is NOT supported as a LifecycleHandler - and kept for the backward compatibility. - There are no validation of this - field and lifecycle hooks will fail - in runtime when tcp handler is specified. properties: host: - description: 'Optional: Host name - to connect to, defaults to the - pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of - the port to access on the container. - Number must be in the range - 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port @@ -31901,91 +10901,38 @@ spec: type: object type: object livenessProbe: - description: 'Periodic probe of container - liveness. Container will be restarted if - the probe fails. Controllers may set default - LivenessProbe if no liveness probe is provided. - To ignore defaulting, set the value to empty - LivenessProbe "{}". Cannot be updated. More - info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it - is not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to - explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults to - 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action - involving a GRPC port. properties: port: - description: Port number of the gRPC - service. Number must be in the range - 1 to 65535. format: int32 type: integer service: - description: "Service is the name - of the service to place in the gRPC - HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the - default behavior is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in httpHeaders - instead. type: string httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood as - the same header. type: string value: - description: The header field - value type: string required: - name @@ -31994,234 +10941,95 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the - HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 to - 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after - the container has started before liveness - probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to - perform the probe. Default to 10 seconds. - Minimum value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. - Must be 1 for liveness and startup. - Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action - involving a TCP port. properties: host: - description: 'Optional: Host name - to connect to, defaults to the pod - IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 to - 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully - upon probe failure. The grace period - is the duration in seconds after the - processes running in the pod are sent - a termination signal and the time when - the processes are forcibly halted with - a kill signal. Set this value longer - than the expected cleanup time for your - process. If this value is nil, the pod's - terminationGracePeriodSeconds will be - used. Otherwise, this value overrides - the value provided by the pod spec. - Value must be non-negative integer. - The value zero indicates stop immediately - via the kill signal (no opportunity - to shut down). This is a beta field - and requires enabling ProbeTerminationGracePeriod - feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after - which the probe times out. Defaults - to 1 second. Minimum value is 1. More - info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object nodeSelector: additionalProperties: type: string - description: 'NodeSelector is a selector which - must be true for the pod to fit on a node. - Selector which must match a node''s labels - for the pod to be scheduled on that node. - More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/' type: object x-kubernetes-map-type: atomic podPlacementPolicy: - description: PodPlacementPolicy is the reference - of the podPlacementPolicy properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic priority: - description: The priority value. Various system - components use this field to find the priority - of the pod. When Priority Admission Controller - is enabled, it prevents users from setting - this field. The admission controller populates - this field from PriorityClassName. The higher - the value, the higher the priority. format: int32 type: integer priorityClassName: - description: If specified, indicates the pod's - priority. "system-node-critical" and "system-cluster-critical" - are two special keywords which indicate - the highest priorities with the former being - the highest priority. Any other name must - be defined by creating a PriorityClass object - with that name. If not specified, the pod - priority will be default or zero if there - is no default. type: string readinessProbe: - description: 'Periodic probe of container - service readiness. Container will be removed - from service endpoints if the probe fails. - Cannot be updated. Controllers may set default - ReadinessProbe if no readyness probe is - provided. To ignore defaulting, set the - value to empty ReadynessProbe "{}". More - info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it - is not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to - explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults to - 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action - involving a GRPC port. properties: port: - description: Port number of the gRPC - service. Number must be in the range - 1 to 65535. format: int32 type: integer service: - description: "Service is the name - of the service to place in the gRPC - HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the - default behavior is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in httpHeaders - instead. type: string httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood as - the same header. type: string value: - description: The header field - value type: string required: - name @@ -32230,119 +11038,51 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the - HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 to - 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after - the container has started before liveness - probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to - perform the probe. Default to 10 seconds. - Minimum value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. - Must be 1 for liveness and startup. - Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action - involving a TCP port. properties: host: - description: 'Optional: Host name - to connect to, defaults to the pod - IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 to - 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully - upon probe failure. The grace period - is the duration in seconds after the - processes running in the pod are sent - a termination signal and the time when - the processes are forcibly halted with - a kill signal. Set this value longer - than the expected cleanup time for your - process. If this value is nil, the pod's - terminationGracePeriodSeconds will be - used. Otherwise, this value overrides - the value provided by the pod spec. - Value must be non-negative integer. - The value zero indicates stop immediately - via the kill signal (no opportunity - to shut down). This is a beta field - and requires enabling ProbeTerminationGracePeriod - feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after - which the probe times out. Defaults - to 1 second. Minimum value is 1. More - info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object resources: - description: Compute Resources required by - the sidecar container. properties: claims: - description: "Claims lists the names of - resources, defined in spec.resourceClaims, - that are used by this container. \n - This is an alpha field and requires - enabling the DynamicResourceAllocation - feature gate. \n This field is immutable. - It can only be set for containers." items: - description: ResourceClaim references - one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the - name of one entry in pod.spec.resourceClaims - of the Pod where this field is - used. It makes that resource available - inside a container. type: string required: - name @@ -32358,9 +11098,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum - amount of compute resources allowed. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -32369,229 +11106,68 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum - amount of compute resources required. - If Requests is omitted for a container, - it defaults to Limits if that is explicitly - specified, otherwise to an implementation-defined - value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object runtimeClassName: - description: 'RuntimeClassName refers to a - RuntimeClass object in the node.k8s.io group, - which should be used to run this pod. If - no RuntimeClass resource matches the named - class, the pod will not be run. If unset - or empty, the "legacy" RuntimeClass will - be used, which is an implicit class with - an empty definition that uses the default - runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class' type: string schedulerName: - description: If specified, the pod will be - dispatched by specified scheduler. If not - specified, the pod will be dispatched by - default scheduler. type: string securityContext: - description: 'SecurityContext holds pod-level - security attributes and common container - settings. Optional: Defaults to empty. See - type description for default values of each - field.' properties: appArmorProfile: - description: appArmorProfile is the AppArmor - options to use by the containers in - this pod. Note that this field cannot - be set when spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile loaded on the node that - should be used. The profile must - be preconfigured on the node to - work. Must match the loaded name - of the profile. Must be set if and - only if type is "Localhost". type: string type: - description: 'type indicates which - kind of AppArmor profile will be - applied. Valid options are: Localhost - - a profile pre-loaded on the node. - RuntimeDefault - the container runtime''s - default profile. Unconfined - no - AppArmor enforcement.' type: string required: - type type: object fsGroup: - description: "A special supplemental group - that applies to all containers in a - pod. Some volume types allow the Kubelet - to change the ownership of that volume - to be owned by the pod: \n 1. The owning - GID will be the FSGroup 2. The setgid - bit is set (new files created in the - volume will be owned by FSGroup) 3. - The permission bits are OR'd with rw-rw---- - \n If unset, the Kubelet will not modify - the ownership and permissions of any - volume. Note that this field cannot - be set when spec.os.name is windows." format: int64 type: integer fsGroupChangePolicy: - description: 'fsGroupChangePolicy defines - behavior of changing ownership and permission - of the volume before being exposed inside - Pod. This field will only apply to volume - types which support fsGroup based ownership(and - permissions). It will have no effect - on ephemeral volume types such as: secret, - configmaps and emptydir. Valid values - are "OnRootMismatch" and "Always". If - not specified, "Always" is used. Note - that this field cannot be set when spec.os.name - is windows.' type: string runAsGroup: - description: The GID to run the entrypoint - of the container process. Uses runtime - default if unset. May also be set in - SecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence - for that container. Note that this field - cannot be set when spec.os.name is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container - must run as a non-root user. If true, - the Kubelet will validate the image - at runtime to ensure that it does not - run as UID 0 (root) and fail to start - the container if it does. If unset or - false, no such validation will be performed. - May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: boolean runAsUser: - description: The UID to run the entrypoint - of the container process. Defaults to - user specified in image metadata if - unspecified. May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence for that container. - Note that this field cannot be set when - spec.os.name is windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be - applied to all containers. If unspecified, - the container runtime will allocate - a random SELinux context for each container. May - also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence for that container. - Note that this field cannot be set when - spec.os.name is windows. properties: level: - description: Level is SELinux level - label that applies to the container. type: string role: - description: Role is a SELinux role - label that applies to the container. type: string type: - description: Type is a SELinux type - label that applies to the container. type: string user: - description: User is a SELinux user - label that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to use - by the containers in this pod. Note - that this field cannot be set when spec.os.name - is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile defined in a file on the - node should be used. The profile - must be preconfigured on the node - to work. Must be a descending path, - relative to the kubelet's configured - seccomp profile location. Must be - set if type is "Localhost". Must - NOT be set for any other type. type: string type: - description: "type indicates which - kind of seccomp profile will be - applied. Valid options are: \n Localhost - - a profile defined in a file on - the node should be used. RuntimeDefault - - the container runtime default - profile should be used. Unconfined - - no profile should be applied." type: string required: - type type: object supplementalGroups: - description: A list of groups applied - to the first process run in each container, - in addition to the container's primary - GID, the fsGroup (if specified), and - group memberships defined in the container - image for the uid of the container process. - If unspecified, no additional groups - are added to any container. Note that - group memberships defined in the container - image for the uid of the container process - are still effective, even if they are - not included in this list. Note that - this field cannot be set when spec.os.name - is windows. items: format: int64 type: integer type: array x-kubernetes-list-type: atomic sysctls: - description: Sysctls hold a list of namespaced - sysctls used for the pod. Pods with - unsupported sysctls (by the container - runtime) might fail to launch. Note - that this field cannot be set when spec.os.name - is windows. items: - description: Sysctl defines a kernel - parameter to be set properties: name: - description: Name of a property - to set type: string value: - description: Value of a property - to set type: string required: - name @@ -32600,189 +11176,53 @@ spec: type: array x-kubernetes-list-type: atomic windowsOptions: - description: The Windows specific settings - applied to all containers. If unspecified, - the options within a container's SecurityContext - will be used. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. - Note that this field cannot be set when - spec.os.name is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is - where the GMSA admission webhook - (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA - credential spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName - is the name of the GMSA credential - spec to use. type: string hostProcess: - description: HostProcess determines - if a container should be run as - a 'Host Process' container. All - of a Pod's containers must have - the same effective HostProcess value - (it is not allowed to have a mix - of HostProcess containers and non-HostProcess - containers). In addition, if HostProcess - is true then HostNetwork must also - be set to true. type: boolean runAsUserName: - description: The UserName in Windows - to run the entrypoint of the container - process. Defaults to the user specified - in image metadata if unspecified. - May also be set in PodSecurityContext. - If set in both SecurityContext and - PodSecurityContext, the value specified - in SecurityContext takes precedence. type: string type: object type: object serviceAccountName: - description: 'ServiceAccountName is the name - of the ServiceAccount to use to run this - pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/' type: string shareProcessNamespace: - description: 'Share a single process namespace - between all of the containers in a pod. - When this is set containers will be able - to view and signal processes from other - containers in the same pod, and the first - process in each container will not be assigned - PID 1. HostPID and ShareProcessNamespace - cannot both be set. Optional: Default to - false.' type: boolean terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully. May - be decreased in delete request. Value must - be non-negative integer. The value zero - indicates stop immediately via the kill - signal (no opportunity to shut down). If - this value is nil, the default grace period - will be used instead. The grace period is - the duration in seconds after the processes - running in the pod are sent a termination - signal and the time when the processes are - forcibly halted with a kill signal. Set - this value longer than the expected cleanup - time for your process. Defaults to 30 seconds. format: int64 type: integer tolerations: - description: If specified, the pod's tolerations. items: - description: The pod this Toleration is - attached to tolerates any taint that matches - the triple using the - matching operator . properties: effect: - description: Effect indicates the taint - effect to match. Empty means match - all taint effects. When specified, - allowed values are NoSchedule, PreferNoSchedule - and NoExecute. type: string key: - description: Key is the taint key that - the toleration applies to. Empty means - match all taint keys. If the key is - empty, operator must be Exists; this - combination means to match all values - and all keys. type: string operator: - description: Operator represents a key's - relationship to the value. Valid operators - are Exists and Equal. Defaults to - Equal. Exists is equivalent to wildcard - for value, so that a pod can tolerate - all taints of a particular category. type: string tolerationSeconds: - description: TolerationSeconds represents - the period of time the toleration - (which must be of effect NoExecute, - otherwise this field is ignored) tolerates - the taint. By default, it is not set, - which means tolerate the taint forever - (do not evict). Zero and negative - values will be treated as 0 (evict - immediately) by the system. format: int64 type: integer value: - description: Value is the taint value - the toleration matches to. If the - operator is Exists, the value should - be empty, otherwise just a regular - string. type: string type: object type: array topologySpreadConstraints: - description: TopologySpreadConstraints describes - how a group of pods ought to spread across - topology domains. Scheduler will schedule - pods in a way which abides by the constraints. - All topologySpreadConstraints are ANDed. items: - description: TopologySpreadConstraint specifies - how to spread matching pods among the - given topology. properties: labelSelector: - description: LabelSelector is used to - find matching pods. Pods that match - this label selector are counted to - determine the number of pods in their - corresponding topology domain. properties: matchExpressions: - description: matchExpressions is - a list of label selector requirements. - The requirements are ANDed. items: - description: A label selector - requirement is a selector that - contains values, a key, and - an operator that relates the - key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to - a set of values. Valid operators - are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an - array of string values. - If the operator is In or - NotIn, the values array - must be non-empty. If the - operator is Exists or DoesNotExist, - the values array must be - empty. This array is replaced - during a strategic merge - patch. items: type: string type: array @@ -32796,183 +11236,27 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map - of {key,value} pairs. A single - {key,value} in the matchLabels - map is equivalent to an element - of matchExpressions, whose key - field is "key", the operator is - "In", and the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: "MatchLabelKeys is a set - of pod label keys to select the pods - over which spreading will be calculated. - The keys are used to lookup values - from the incoming pod labels, those - key-value labels are ANDed with labelSelector - to select the group of existing pods - over which spreading will be calculated - for the incoming pod. The same key - is forbidden to exist in both MatchLabelKeys - and LabelSelector. MatchLabelKeys - cannot be set when LabelSelector isn't - set. Keys that don't exist in the - incoming pod labels will be ignored. - A null or empty list means only match - against labelSelector. \n This is - a beta field and requires the MatchLabelKeysInPodTopologySpread - feature gate to be enabled (enabled - by default)." items: type: string type: array x-kubernetes-list-type: atomic maxSkew: - description: 'MaxSkew describes the - degree to which pods may be unevenly - distributed. When `whenUnsatisfiable=DoNotSchedule`, - it is the maximum permitted difference - between the number of matching pods - in the target topology and the global - minimum. The global minimum is the - minimum number of matching pods in - an eligible domain or zero if the - number of eligible domains is less - than MinDomains. For example, in a - 3-zone cluster, MaxSkew is set to - 1, and pods with the same labelSelector - spread as 2/2/1: In this case, the - global minimum is 1. | zone1 | zone2 - | zone3 | | P P | P P | P | - - if MaxSkew is 1, incoming pod can - only be scheduled to zone3 to become - 2/2/2; scheduling it onto zone1(zone2) - would make the ActualSkew(3-1) on - zone1(zone2) violate MaxSkew(1). - - if MaxSkew is 2, incoming pod can - be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, - it is used to give higher precedence - to topologies that satisfy it. It''s - a required field. Default value is - 1 and 0 is not allowed.' format: int32 type: integer minDomains: - description: "MinDomains indicates a - minimum number of eligible domains. - When the number of eligible domains - with matching topology keys is less - than minDomains, Pod Topology Spread - treats \"global minimum\" as 0, and - then the calculation of Skew is performed. - And when the number of eligible domains - with matching topology keys equals - or greater than minDomains, this value - has no effect on scheduling. As a - result, when the number of eligible - domains is less than minDomains, scheduler - won't schedule more than maxSkew Pods - to those domains. If value is nil, - the constraint behaves as if MinDomains - is equal to 1. Valid values are integers - greater than 0. When value is not - nil, WhenUnsatisfiable must be DoNotSchedule. - \n For example, in a 3-zone cluster, - MaxSkew is set to 2, MinDomains is - set to 5 and pods with the same labelSelector - spread as 2/2/2: | zone1 | zone2 | - zone3 | | P P | P P | P P | - The number of domains is less than - 5(MinDomains), so \"global minimum\" - is treated as 0. In this situation, - new pod with the same labelSelector - cannot be scheduled, because computed - skew will be 3(3 - 0) if new Pod is - scheduled to any of the three zones, - it will violate MaxSkew." format: int32 type: integer nodeAffinityPolicy: - description: "NodeAffinityPolicy indicates - how we will treat Pod's nodeAffinity/nodeSelector - when calculating pod topology spread - skew. Options are: - Honor: only nodes - matching nodeAffinity/nodeSelector - are included in the calculations. - - Ignore: nodeAffinity/nodeSelector - are ignored. All nodes are included - in the calculations. \n If this value - is nil, the behavior is equivalent - to the Honor policy. This is a beta-level - feature default enabled by the NodeInclusionPolicyInPodTopologySpread - feature flag." type: string nodeTaintsPolicy: - description: "NodeTaintsPolicy indicates - how we will treat node taints when - calculating pod topology spread skew. - Options are: - Honor: nodes without - taints, along with tainted nodes for - which the incoming pod has a toleration, - are included. - Ignore: node taints - are ignored. All nodes are included. - \n If this value is nil, the behavior - is equivalent to the Ignore policy. - This is a beta-level feature default - enabled by the NodeInclusionPolicyInPodTopologySpread - feature flag." type: string topologyKey: - description: TopologyKey is the key - of node labels. Nodes that have a - label with this key and identical - values are considered to be in the - same topology. We consider each as a "bucket", and try to put - balanced number of pods into each - bucket. We define a domain as a particular - instance of a topology. Also, we define - an eligible domain as a domain whose - nodes meet the requirements of nodeAffinityPolicy - and nodeTaintsPolicy. e.g. If TopologyKey - is "kubernetes.io/hostname", each - Node is a domain of that topology. - And, if TopologyKey is "topology.kubernetes.io/zone", - each zone is a domain of that topology. - It's a required field. type: string whenUnsatisfiable: - description: 'WhenUnsatisfiable indicates - how to deal with a pod if it doesn''t - satisfy the spread constraint. - DoNotSchedule - (default) tells the scheduler not - to schedule it. - ScheduleAnyway tells - the scheduler to schedule the pod - in any location, but giving higher - precedence to topologies that would - help reduce the skew. A constraint - is considered "Unsatisfiable" for - an incoming pod if and only if every - possible node assignment for that - pod would violate "MaxSkew" on some - topology. For example, in a 3-zone - cluster, MaxSkew is set to 1, and - pods with the same labelSelector spread - as 3/1/1: | zone1 | zone2 | zone3 - | | P P P | P | P | If WhenUnsatisfiable - is set to DoNotSchedule, incoming - pod can only be scheduled to zone2(zone3) - to become 3/2/1(3/1/2) as ActualSkew(2-1) - on zone2(zone3) satisfies MaxSkew(1). - In other words, the cluster can still - be imbalanced, but scheduler won''t - make it *more* imbalanced. It''s a - required field.' type: string required: - maxSkew @@ -32985,76 +11269,21 @@ spec: - whenUnsatisfiable x-kubernetes-list-type: map volumeMounts: - description: Pod volumes to mount into the - container's filesystem. Cannot be updated. items: - description: VolumeMount describes a mounting - of a Volume within a container. properties: mountPath: - description: Path within the container - at which the volume should be mounted. Must - not contain ':'. type: string mountPropagation: - description: mountPropagation determines - how mounts are propagated from the - host to container and the other way - around. When not set, MountPropagationNone - is used. This field is beta in 1.10. - When RecursiveReadOnly is set to IfPossible - or to Enabled, MountPropagation must - be None or unspecified (which defaults - to None). type: string name: - description: This must match the Name - of a Volume. type: string readOnly: - description: Mounted read-only if true, - read-write otherwise (false or unspecified). - Defaults to false. type: boolean recursiveReadOnly: - description: "RecursiveReadOnly specifies - whether read-only mounts should be - handled recursively. \n If ReadOnly - is false, this field has no meaning - and must be unspecified. \n If ReadOnly - is true, and this field is set to - Disabled, the mount is not made recursively - read-only. If this field is set to - IfPossible, the mount is made recursively - read-only, if it is supported by the - container runtime. If this field - is set to Enabled, the mount is made - recursively read-only if it is supported - by the container runtime, otherwise - the pod will not be started and an - error will be generated to indicate - the reason. \n If this field is set - to IfPossible or Enabled, MountPropagation - must be set to None (or be unspecified, - which defaults to None). \n If this - field is not specified, it is treated - as an equivalent of Disabled." type: string subPath: - description: Path within the volume - from which the container's volume - should be mounted. Defaults to "" - (volume's root). type: string subPathExpr: - description: Expanded path within the - volume from which the container's - volume should be mounted. Behaves - similarly to SubPath but environment - variable references $(VAR_NAME) are - expanded using the container's environment. - Defaults to "" (volume's root). SubPathExpr - and SubPath are mutually exclusive. type: string required: - mountPath @@ -33062,318 +11291,109 @@ spec: type: object type: array volumes: - description: 'List of volumes that can be - mounted by containers belonging to the pod. - More info: https://kubernetes.io/docs/concepts/storage/volumes' items: - description: Volume represents a named volume - in a pod that may be accessed by any container - in the pod. properties: awsElasticBlockStore: - description: 'awsElasticBlockStore represents - an AWS Disk resource that is attached - to a kubelet''s host machine and then - exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' properties: fsType: - description: 'fsType is the filesystem - type of the volume that you want - to mount. Tip: Ensure that the - filesystem type is supported by - the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. - More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors - in the filesystem from compromising - the machine' type: string partition: - description: 'partition is the partition - in the volume that you want to - mount. If omitted, the default - is to mount by volume name. Examples: - For volume /dev/sda1, you specify - the partition as "1". Similarly, - the volume partition for /dev/sda - is "0" (or you can leave the property - empty).' format: int32 type: integer readOnly: - description: 'readOnly value true - will force the readOnly setting - in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: boolean volumeID: - description: 'volumeID is unique - ID of the persistent disk resource - in AWS (Amazon EBS volume). More - info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: string required: - volumeID type: object azureDisk: - description: azureDisk represents an - Azure Data Disk mount on the host - and bind mount to the pod. properties: cachingMode: - description: 'cachingMode is the - Host Caching mode: None, Read - Only, Read Write.' type: string diskName: - description: diskName is the Name - of the data disk in the blob storage type: string diskURI: - description: diskURI is the URI - of data disk in the blob storage type: string fsType: - description: fsType is Filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" - if unspecified. type: string kind: - description: 'kind expected values - are Shared: multiple blob disks - per storage account Dedicated: - single blob disk per storage account Managed: - azure managed data disk (only - in managed availability set). - defaults to shared' type: string readOnly: - description: readOnly Defaults to - false (read/write). ReadOnly here - will force the ReadOnly setting - in VolumeMounts. type: boolean required: - diskName - diskURI type: object azureFile: - description: azureFile represents an - Azure File Service mount on the host - and bind mount to the pod. properties: readOnly: - description: readOnly defaults to - false (read/write). ReadOnly here - will force the ReadOnly setting - in VolumeMounts. type: boolean secretName: - description: secretName is the name - of secret that contains Azure - Storage Account Name and Key type: string shareName: - description: shareName is the azure - share Name type: string required: - secretName - shareName type: object cephfs: - description: cephFS represents a Ceph - FS mount on the host that shares a - pod's lifetime properties: monitors: - description: 'monitors is Required: - Monitors is a collection of Ceph - monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic path: - description: 'path is Optional: - Used as the mounted root, rather - than the full Ceph tree, default - is /' type: string readOnly: - description: 'readOnly is Optional: - Defaults to false (read/write). - ReadOnly here will force the ReadOnly - setting in VolumeMounts. More - info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: boolean secretFile: - description: 'secretFile is Optional: - SecretFile is the path to key - ring for User, default is /etc/ceph/user.secret - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string secretRef: - description: 'secretRef is Optional: - SecretRef is reference to the - authentication secret for User, - default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is optional: - User is the rados user name, default - is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string required: - monitors type: object cinder: - description: 'cinder represents a cinder - volume attached and mounted on kubelets - host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' properties: fsType: - description: 'fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Examples: "ext4", "xfs", - "ntfs". Implicitly inferred to - be "ext4" if unspecified. More - info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string readOnly: - description: 'readOnly defaults - to false (read/write). ReadOnly - here will force the ReadOnly setting - in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: boolean secretRef: - description: 'secretRef is optional: - points to a secret object containing - parameters used to connect to - OpenStack.' properties: name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeID: - description: 'volumeID used to identify - the volume in cinder. More info: - https://examples.k8s.io/mysql-cinder-pd/README.md' type: string required: - volumeID type: object configMap: - description: configMap represents a - configMap that should populate this - volume properties: defaultMode: - description: 'defaultMode is optional: - mode bits used to set permissions - on created files by default. Must - be an octal value between 0000 - and 0777 or a decimal value between - 0 and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. - Defaults to 0644. Directories - within the path are not affected - by this setting. This might be - in conflict with other options - that affect the file mode, like - fsGroup, and the result can be - other mode bits set.' format: int32 type: integer items: - description: items if unspecified, - each key-value pair in the Data - field of the referenced ConfigMap - will be projected into the volume - as a file whose name is the key - and content is the value. If specified, - the listed keys will be projected - into the specified paths, and - unlisted keys will not be present. - If a key is specified which is - not present in the ConfigMap, - the volume setup will error unless - it is marked optional. Paths must - be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key - to a path within a volume. properties: key: - description: key is the key - to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an - octal value between 0000 - and 0777 or a decimal value - between 0 and 511. YAML - accepts both octal and decimal - values, JSON requires decimal - values for mode bits. If - not specified, the volume - defaultMode will be used. - This might be in conflict - with other options that - affect the file mode, like - fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map - the key to. May not be an - absolute path. May not contain - the path element '..'. May - not start with the string - '..'. type: string required: - key @@ -33383,207 +11403,67 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether - the ConfigMap or its keys must - be defined type: boolean type: object x-kubernetes-map-type: atomic csi: - description: csi (Container Storage - Interface) represents ephemeral storage - that is handled by certain external - CSI drivers (Beta feature). properties: driver: - description: driver is the name - of the CSI driver that handles - this volume. Consult with your - admin for the correct name as - registered in the cluster. type: string fsType: - description: fsType to mount. Ex. - "ext4", "xfs", "ntfs". If not - provided, the empty value is passed - to the associated CSI driver which - will determine the default filesystem - to apply. type: string nodePublishSecretRef: - description: nodePublishSecretRef - is a reference to the secret object - containing sensitive information - to pass to the CSI driver to complete - the CSI NodePublishVolume and - NodeUnpublishVolume calls. This - field is optional, and may be - empty if no secret is required. - If the secret object contains - more than one secret, all secret - references are passed. properties: name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic readOnly: - description: readOnly specifies - a read-only configuration for - the volume. Defaults to false - (read/write). type: boolean volumeAttributes: additionalProperties: type: string - description: volumeAttributes stores - driver-specific properties that - are passed to the CSI driver. - Consult your driver's documentation - for supported values. type: object required: - driver type: object downwardAPI: - description: downwardAPI represents - downward API about the pod that should - populate this volume properties: defaultMode: - description: 'Optional: mode bits - to use on created files by default. - Must be a Optional: mode bits - used to set permissions on created - files by default. Must be an octal - value between 0000 and 0777 or - a decimal value between 0 and - 511. YAML accepts both octal and - decimal values, JSON requires - decimal values for mode bits. - Defaults to 0644. Directories - within the path are not affected - by this setting. This might be - in conflict with other options - that affect the file mode, like - fsGroup, and the result can be - other mode bits set.' format: int32 type: integer items: - description: Items is a list of - downward API volume file items: - description: DownwardAPIVolumeFile - represents information to create - the file containing the pod - field properties: fieldRef: - description: 'Required: Selects - a field of the pod: only - annotations, labels, name, - namespace and uid are supported.' properties: apiVersion: - description: Version of - the schema the FieldPath - is written in terms - of, defaults to "v1". type: string fieldPath: - description: Path of the - field to select in the - specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode - bits used to set permissions - on this file, must be an - octal value between 0000 - and 0777 or a decimal value - between 0 and 511. YAML - accepts both octal and decimal - values, JSON requires decimal - values for mode bits. If - not specified, the volume - defaultMode will be used. - This might be in conflict - with other options that - affect the file mode, like - fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: 'Required: Path - is the relative path name - of the file to be created. - Must not be absolute or - contain the ''..'' path. - Must be utf-8 encoded. The - first item of the relative - path must not start with - ''..''' type: string resourceFieldRef: - description: 'Selects a resource - of the container: only resources - limits and requests (limits.cpu, - limits.memory, requests.cpu - and requests.memory) are - currently supported.' properties: containerName: - description: 'Container - name: required for volumes, - optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies - the output format of - the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: - resource to select' type: string required: - resource @@ -33596,279 +11476,50 @@ spec: x-kubernetes-list-type: atomic type: object emptyDir: - description: 'emptyDir represents a - temporary directory that shares a - pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' properties: medium: - description: 'medium represents - what type of storage medium should - back this directory. The default - is "" which means to use the node''s - default medium. Must be an empty - string (default) or Memory. More - info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' type: string sizeLimit: anyOf: - type: integer - type: string - description: 'sizeLimit is the total - amount of local storage required - for this EmptyDir volume. The - size limit is also applicable - for memory medium. The maximum - usage on memory medium EmptyDir - would be the minimum value between - the SizeLimit specified here and - the sum of memory limits of all - containers in a pod. The default - is nil which means that the limit - is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object ephemeral: - description: "ephemeral represents a - volume that is handled by a cluster - storage driver. The volume's lifecycle - is tied to the pod that defines it - - it will be created before the pod - starts, and deleted when the pod is - removed. \n Use this if: a) the volume - is only needed while the pod runs, - b) features of normal volumes like - restoring from snapshot or capacity - tracking are needed, c) the storage - driver is specified through a storage - class, and d) the storage driver supports - dynamic volume provisioning through - a PersistentVolumeClaim (see EphemeralVolumeSource - for more information on the connection - between this volume type and PersistentVolumeClaim). - \n Use PersistentVolumeClaim or one - of the vendor-specific APIs for volumes - that persist for longer than the lifecycle - of an individual pod. \n Use CSI for - light-weight local ephemeral volumes - if the CSI driver is meant to be used - that way - see the documentation of - the driver for more information. \n - A pod can use both types of ephemeral - volumes and persistent volumes at - the same time." properties: volumeClaimTemplate: - description: "Will be used to create - a stand-alone PVC to provision - the volume. The pod in which this - EphemeralVolumeSource is embedded - will be the owner of the PVC, - i.e. the PVC will be deleted together - with the pod. The name of the - PVC will be `-` where `` is - the name from the `PodSpec.Volumes` - array entry. Pod validation will - reject the pod if the concatenated - name is not valid for a PVC (for - example, too long). \n An existing - PVC with that name that is not - owned by the pod will *not* be - used for the pod to avoid using - an unrelated volume by mistake. - Starting the pod is then blocked - until the unrelated PVC is removed. - If such a pre-created PVC is meant - to be used by the pod, the PVC - has to updated with an owner reference - to the pod once the pod exists. - Normally this should not be necessary, - but it may be useful when manually - reconstructing a broken cluster. - \n This field is read-only and - no changes will be made by Kubernetes - to the PVC after it has been created. - \n Required, must not be nil." properties: metadata: - description: May contain labels - and annotations that will - be copied into the PVC when - creating it. No other fields - are allowed and will be rejected - during validation. properties: annotations: additionalProperties: type: string - description: 'Annotations - is an unstructured key - value map stored with - a resource that may be - set by external tools - to store and retrieve - arbitrary metadata. They - are not queryable and - should be preserved when - modifying objects. More - info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName - is an optional prefix, - used by the server, to - generate a unique name - ONLY IF the Name field - has not been provided. - If this field is used, - the name returned to the - client will be different - than the name passed. - This value will also be - combined with a unique - suffix. The provided value - has the same validation - rules as the Name field, - and may be truncated by - the length of the suffix - required to make the value - unique on the server. - \n If this field is specified - and the generated name - exists, the server will - NOT return a 409 - instead, - it will either return - 201 Created or 500 with - Reason ServerTimeout indicating - a unique name could not - be found in the time allotted, - and the client should - retry (optionally after - the time indicated in - the Retry-After header). - \n Applied only if Name - is not specified. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string - keys and values that can - be used to organize and - categorize (scope and - select) objects. May match - selectors of replication - controllers and services. - More info: http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must - be unique within a namespace. - Is required when creating - resources, although some - resources may allow a - client to request the - generation of an appropriate - name automatically. Name - is primarily intended - for creation idempotence - and configuration definition. - Cannot be updated. More - info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace - defines the space within - each name must be unique. - An empty namespace is - equivalent to the \"default\" - namespace, but \"default\" - is the canonical representation. - Not all objects are required - to be scoped to a namespace - - the value of this field - for those objects will - be empty. \n Must be a - DNS_LABEL. Cannot be updated. - More info: http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects - depended by this object. - If ALL objects in the - list have been deleted, - this object will be garbage - collected. If this object - is managed by a controller, - then an entry in this - list will point to this - controller, with the controller - field set to true. There - cannot be more than one - managing controller. items: - description: OwnerReference - contains enough information - to let you identify - an owning object. An - owning object must be - in the same namespace - as the dependent, or - be cluster-scoped, so - there is no namespace - field. properties: apiVersion: - description: API version - of the referent. type: string blockOwnerDeletion: - description: If true, - AND if the owner - has the "foregroundDeletion" - finalizer, then - the owner cannot - be deleted from - the key-value store - until this reference - is removed. See - https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage - collector interacts - with this field - and enforces the - foreground deletion. - Defaults to false. - To set this field, - a user needs "delete" - permission of the - owner, otherwise - 422 (Unprocessable - Entity) will be - returned. type: boolean controller: - description: If true, - this reference points - to the managing - controller. type: boolean kind: - description: 'Kind - of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name - of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID - of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -33880,70 +11531,19 @@ spec: type: array type: object spec: - description: The specification - for the PersistentVolumeClaim. - The entire content is copied - unchanged into the PVC that - gets created from this template. - The same fields as in a PersistentVolumeClaim - are also valid here. properties: accessModes: - description: 'accessModes - contains the desired access - modes the volume should - have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource - field can be used to specify - either: * An existing - VolumeSnapshot object - (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or - an external controller - can support the specified - data source, it will create - a new volume based on - the contents of the specified - data source. When the - AnyVolumeDataSource feature - gate is enabled, dataSource - contents will be copied - to dataSourceRef, and - dataSourceRef contents - will be copied to dataSource - when dataSourceRef.namespace - is not specified. If the - namespace is specified, - then dataSourceRef will - not be copied to dataSource.' properties: apiGroup: - description: APIGroup - is the group for the - resource being referenced. - If APIGroup is not - specified, the specified - Kind must be in the - core API group. For - any other third-party - types, APIGroup is - required. type: string kind: - description: Kind is - the type of resource - being referenced type: string name: - description: Name is - the name of resource - being referenced type: string required: - kind @@ -33951,125 +11551,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef - specifies the object from - which to populate the - volume with data, if a - non-empty volume is desired. - This may be any object - from a non-empty API group - (non core object) or a - PersistentVolumeClaim - object. When this field - is specified, volume binding - will only succeed if the - type of the specified - object matches some installed - volume populator or dynamic - provisioner. This field - will replace the functionality - of the dataSource field - and as such if both fields - are non-empty, they must - have the same value. For - backwards compatibility, - when namespace isn''t - specified in dataSourceRef, - both fields (dataSource - and dataSourceRef) will - be set to the same value - automatically if one of - them is empty and the - other is non-empty. When - namespace is specified - in dataSourceRef, dataSource - isn''t set to the same - value and must be empty. - There are three important - differences between dataSource - and dataSourceRef: * While - dataSource only allows - two specific types of - objects, dataSourceRef - allows any non-core object, - as well as PersistentVolumeClaim - objects. * While dataSource - ignores disallowed values - (dropping them), dataSourceRef - preserves all values, - and generates an error - if a disallowed value - is specified. * While - dataSource only allows - local objects, dataSourceRef - allows objects in any - namespaces. (Beta) Using - this field requires the - AnyVolumeDataSource feature - gate to be enabled. (Alpha) - Using the namespace field - of dataSourceRef requires - the CrossNamespaceVolumeDataSource - feature gate to be enabled.' properties: apiGroup: - description: APIGroup - is the group for the - resource being referenced. - If APIGroup is not - specified, the specified - Kind must be in the - core API group. For - any other third-party - types, APIGroup is - required. type: string kind: - description: Kind is - the type of resource - being referenced type: string name: - description: Name is - the name of resource - being referenced type: string namespace: - description: Namespace - is the namespace of - resource being referenced - Note that when a namespace - is specified, a gateway.networking.k8s.io/ReferenceGrant - object is required - in the referent namespace - to allow that namespace's - owner to accept the - reference. See the - ReferenceGrant documentation - for details. (Alpha) - This field requires - the CrossNamespaceVolumeDataSource - feature gate to be - enabled. type: string required: - kind - name type: object resources: - description: 'resources - represents the minimum - resources the volume should - have. If RecoverVolumeExpansionFailure - feature is enabled users - are allowed to specify - resource requirements - that are lower than previous - value but must still be - higher than capacity recorded - in the status field of - the claim. More info: - https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -34078,11 +11573,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits - describes the maximum - amount of compute - resources allowed. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -34091,75 +11581,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests - describes the minimum - amount of compute - resources required. - If Requests is omitted - for a container, it - defaults to Limits - if that is explicitly - specified, otherwise - to an implementation-defined - value. Requests cannot - exceed Limits. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is - a label query over volumes - to consider for binding. properties: matchExpressions: - description: matchExpressions - is a list of label - selector requirements. - The requirements are - ANDed. items: - description: A label - selector requirement - is a selector that - contains values, - a key, and an operator - that relates the - key and values. properties: key: - description: key - is the label - key that the - selector applies - to. type: string operator: - description: operator - represents a - key's relationship - to a set of - values. Valid - operators are - In, NotIn, Exists - and DoesNotExist. type: string values: - description: values - is an array - of string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or - DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic - merge patch. items: type: string type: array @@ -34173,79 +11606,16 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels - map is equivalent - to an element of matchExpressions, - whose key field is - "key", the operator - is "In", and the values - array contains only - "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName - is the name of the StorageClass - required by the claim. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName - may be used to set the - VolumeAttributesClass - used by this claim. If - specified, the CSI driver - will create or update - the volume with the attributes - defined in the corresponding - VolumeAttributesClass. - This has a different purpose - than storageClassName, - it can be changed after - the claim is created. - An empty string value - means that no VolumeAttributesClass - will be applied to the - claim but it''s not allowed - to reset this field to - empty string once it is - set. If unspecified and - the PersistentVolumeClaim - is unbound, the default - VolumeAttributesClass - will be set by the persistentvolume - controller if it exists. - If the resource referred - to by volumeAttributesClass - does not exist, this PersistentVolumeClaim - will be set to a Pending - state, as reflected by - the modifyVolumeStatus - field, until such as a - resource exists. More - info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field - requires the VolumeAttributesClass - feature gate to be enabled.' type: string volumeMode: - description: volumeMode - defines what type of volume - is required by the claim. - Value of Filesystem is - implied when not included - in claim spec. type: string volumeName: - description: volumeName - is the binding reference - to the PersistentVolume - backing this claim. type: string type: object required: @@ -34253,107 +11623,41 @@ spec: type: object type: object fc: - description: fc represents a Fibre Channel - resource that is attached to a kubelet's - host machine and then exposed to the - pod. properties: fsType: - description: 'fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" - if unspecified. TODO: how do we - prevent errors in the filesystem - from compromising the machine' type: string lun: - description: 'lun is Optional: FC - target lun number' format: int32 type: integer readOnly: - description: 'readOnly is Optional: - Defaults to false (read/write). - ReadOnly here will force the ReadOnly - setting in VolumeMounts.' type: boolean targetWWNs: - description: 'targetWWNs is Optional: - FC target worldwide names (WWNs)' items: type: string type: array x-kubernetes-list-type: atomic wwids: - description: 'wwids Optional: FC - volume world wide identifiers - (wwids) Either wwids or combination - of targetWWNs and lun must be - set, but not both simultaneously.' items: type: string type: array x-kubernetes-list-type: atomic type: object flexVolume: - description: flexVolume represents a - generic volume resource that is provisioned/attached - using an exec based plugin. properties: driver: - description: driver is the name - of the driver to use for this - volume. type: string fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - The default filesystem depends - on FlexVolume script. type: string options: additionalProperties: type: string - description: 'options is Optional: - this field holds extra command - options if any.' type: object readOnly: - description: 'readOnly is Optional: - defaults to false (read/write). - ReadOnly here will force the ReadOnly - setting in VolumeMounts.' type: boolean secretRef: - description: 'secretRef is Optional: - secretRef is reference to the - secret object containing sensitive - information to pass to the plugin - scripts. This may be empty if - no secret object is specified. - If the secret object contains - more than one secret, all secrets - are passed to the plugin scripts.' properties: name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic @@ -34361,219 +11665,79 @@ spec: - driver type: object flocker: - description: flocker represents a Flocker - volume attached to a kubelet's host - machine. This depends on the Flocker - control service being running properties: datasetName: - description: datasetName is Name - of the dataset stored as metadata - -> name on the dataset for Flocker - should be considered as deprecated type: string datasetUUID: - description: datasetUUID is the - UUID of the dataset. This is unique - identifier of a Flocker dataset type: string type: object gcePersistentDisk: - description: 'gcePersistentDisk represents - a GCE Disk resource that is attached - to a kubelet''s host machine and then - exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' properties: fsType: - description: 'fsType is filesystem - type of the volume that you want - to mount. Tip: Ensure that the - filesystem type is supported by - the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. - More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors - in the filesystem from compromising - the machine' type: string partition: - description: 'partition is the partition - in the volume that you want to - mount. If omitted, the default - is to mount by volume name. Examples: - For volume /dev/sda1, you specify - the partition as "1". Similarly, - the volume partition for /dev/sda - is "0" (or you can leave the property - empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' format: int32 type: integer pdName: - description: 'pdName is unique name - of the PD resource in GCE. Used - to identify the disk in GCE. More - info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: string readOnly: - description: 'readOnly here will - force the ReadOnly setting in - VolumeMounts. Defaults to false. - More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: boolean required: - pdName type: object glusterfs: - description: 'glusterfs represents a - Glusterfs mount on the host that shares - a pod''s lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md' properties: endpoints: - description: 'endpoints is the endpoint - name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string path: - description: 'path is the Glusterfs - volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string readOnly: - description: 'readOnly here will - force the Glusterfs volume to - be mounted with read-only permissions. - Defaults to false. More info: - https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: boolean required: - endpoints - path type: object hostPath: - description: 'hostPath represents a - pre-existing file or directory on - the host machine that is directly - exposed to the container. This is - generally used for system agents or - other privileged things that are allowed - to see the host machine. Most containers - will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- TODO(jonesdl) We need to restrict - who can use host directory mounts - and who can/can not mount host directories - as read/write.' properties: path: - description: 'path of the directory - on the host. If the path is a - symlink, it will follow the link - to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string type: - description: 'type for HostPath - Volume Defaults to "" More info: - https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string required: - path type: object iscsi: - description: 'iscsi represents an ISCSI - Disk resource that is attached to - a kubelet''s host machine and then - exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md' properties: chapAuthDiscovery: - description: chapAuthDiscovery defines - whether support iSCSI Discovery - CHAP authentication type: boolean chapAuthSession: - description: chapAuthSession defines - whether support iSCSI Session - CHAP authentication type: boolean fsType: - description: 'fsType is the filesystem - type of the volume that you want - to mount. Tip: Ensure that the - filesystem type is supported by - the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. - More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors - in the filesystem from compromising - the machine' type: string initiatorName: - description: initiatorName is the - custom iSCSI Initiator Name. If - initiatorName is specified with - iscsiInterface simultaneously, - new iSCSI interface : will be created for the - connection. type: string iqn: - description: iqn is the target iSCSI - Qualified Name. type: string iscsiInterface: - description: iscsiInterface is the - interface Name that uses an iSCSI - transport. Defaults to 'default' - (tcp). type: string lun: - description: lun represents iSCSI - Target Lun number. format: int32 type: integer portals: - description: portals is the iSCSI - Target Portal List. The portal - is either an IP or ip_addr:port - if the port is other than default - (typically TCP ports 860 and 3260). items: type: string type: array x-kubernetes-list-type: atomic readOnly: - description: readOnly here will - force the ReadOnly setting in - VolumeMounts. Defaults to false. type: boolean secretRef: - description: secretRef is the CHAP - Secret for iSCSI target and initiator - authentication properties: name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic targetPortal: - description: targetPortal is iSCSI - Target Portal. The Portal is either - an IP or ip_addr:port if the port - is other than default (typically - TCP ports 860 and 3260). type: string required: - iqn @@ -34581,226 +11745,68 @@ spec: - targetPortal type: object name: - description: 'name of the volume. Must - be a DNS_LABEL and unique within the - pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string nfs: - description: 'nfs represents an NFS - mount on the host that shares a pod''s - lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' properties: path: - description: 'path that is exported - by the NFS server. More info: - https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string readOnly: - description: 'readOnly here will - force the NFS export to be mounted - with read-only permissions. Defaults - to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: boolean server: - description: 'server is the hostname - or IP address of the NFS server. - More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string required: - path - server type: object persistentVolumeClaim: - description: 'persistentVolumeClaimVolumeSource - represents a reference to a PersistentVolumeClaim - in the same namespace. More info: - https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: claimName: - description: 'claimName is the name - of a PersistentVolumeClaim in - the same namespace as the pod - using this volume. More info: - https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' type: string readOnly: - description: readOnly Will force - the ReadOnly setting in VolumeMounts. - Default false. type: boolean required: - claimName type: object photonPersistentDisk: - description: photonPersistentDisk represents - a PhotonController persistent disk - attached and mounted on kubelets host - machine properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" - if unspecified. type: string pdID: - description: pdID is the ID that - identifies Photon Controller persistent - disk type: string required: - pdID type: object portworxVolume: - description: portworxVolume represents - a portworx volume attached and mounted - on kubelets host machine properties: fsType: - description: fSType represents the - filesystem type to mount Must - be a filesystem type supported - by the host operating system. - Ex. "ext4", "xfs". Implicitly - inferred to be "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to - false (read/write). ReadOnly here - will force the ReadOnly setting - in VolumeMounts. type: boolean volumeID: - description: volumeID uniquely identifies - a Portworx volume type: string required: - volumeID type: object projected: - description: projected items for all - in one resources secrets, configmaps, - and downward API properties: defaultMode: - description: defaultMode are the - mode bits used to set permissions - on created files by default. Must - be an octal value between 0000 - and 0777 or a decimal value between - 0 and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. - Directories within the path are - not affected by this setting. - This might be in conflict with - other options that affect the - file mode, like fsGroup, and the - result can be other mode bits - set. format: int32 type: integer sources: - description: sources is the list - of volume projections items: - description: Projection that may - be projected along with other - supported volume types properties: clusterTrustBundle: - description: "ClusterTrustBundle - allows a pod to access the - `.spec.trustBundle` field - of ClusterTrustBundle objects - in an auto-updating file. - \n Alpha, gated by the ClusterTrustBundleProjection - feature gate. \n ClusterTrustBundle - objects can either be selected - by name, or by the combination - of signer name and a label - selector. \n Kubelet performs - aggressive normalization - of the PEM contents written - into the pod filesystem. - \ Esoteric PEM features - such as inter-block comments - and block headers are stripped. - \ Certificates are deduplicated. - The ordering of certificates - within the file is arbitrary, - and Kubelet may change the - order over time." properties: labelSelector: - description: Select all - ClusterTrustBundles - that match this label - selector. Only has - effect if signerName - is set. Mutually-exclusive - with name. If unset, - interpreted as "match - nothing". If set but - empty, interpreted as - "match everything". properties: matchExpressions: - description: matchExpressions - is a list of label - selector requirements. - The requirements - are ANDed. items: - description: A label - selector requirement - is a selector - that contains - values, a key, - and an operator - that relates the - key and values. properties: key: - description: key - is the label - key that the - selector applies - to. type: string operator: - description: operator - represents - a key's relationship - to a set of - values. Valid - operators - are In, NotIn, - Exists and - DoesNotExist. type: string values: - description: values - is an array - of string - values. If - the operator - is In or NotIn, - the values - array must - be non-empty. - If the operator - is Exists - or DoesNotExist, - the values - array must - be empty. - This array - is replaced - during a strategic - merge patch. items: type: string type: array @@ -34814,142 +11820,31 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single - {key,value} in the - matchLabels map - is equivalent to - an element of matchExpressions, - whose key field - is "key", the operator - is "In", and the - values array contains - only "value". The - requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic name: - description: Select a - single ClusterTrustBundle - by object name. Mutually-exclusive - with signerName and - labelSelector. type: string optional: - description: If true, - don't block pod startup - if the referenced ClusterTrustBundle(s) - aren't available. If - using name, then the - named ClusterTrustBundle - is allowed not to exist. If - using signerName, then - the combination of signerName - and labelSelector is - allowed to match zero - ClusterTrustBundles. type: boolean path: - description: Relative - path from the volume - root to write the bundle. type: string signerName: - description: Select all - ClusterTrustBundles - that match this signer - name. Mutually-exclusive - with name. The contents - of all selected ClusterTrustBundles - will be unified and - deduplicated. type: string required: - path type: object configMap: - description: configMap information - about the configMap data - to project properties: items: - description: items if - unspecified, each key-value - pair in the Data field - of the referenced ConfigMap - will be projected into - the volume as a file - whose name is the key - and content is the value. - If specified, the listed - keys will be projected - into the specified paths, - and unlisted keys will - not be present. If a - key is specified which - is not present in the - ConfigMap, the volume - setup will error unless - it is marked optional. - Paths must be relative - and may not contain - the '..' path or start - with '..'. items: - description: Maps a - string key to a path - within a volume. properties: key: - description: key - is the key to - project. type: string mode: - description: 'mode - is Optional: mode - bits used to set - permissions on - this file. Must - be an octal value - between 0000 and - 0777 or a decimal - value between - 0 and 511. YAML - accepts both octal - and decimal values, - JSON requires - decimal values - for mode bits. - If not specified, - the volume defaultMode - will be used. - This might be - in conflict with - other options - that affect the - file mode, like - fsGroup, and the - result can be - other mode bits - set.' format: int32 type: integer path: - description: path - is the relative - path of the file - to map the key - to. May not be - an absolute path. - May not contain - the path element - '..'. May not - start with the - string '..'. type: string required: - key @@ -34959,155 +11854,42 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of - the referent. This field - is effectively required, - but due to backwards - compatibility is allowed - to be empty. Instances - of this type with an - empty value here are - almost certainly wrong. - TODO: Add other useful - fields. apiVersion, - kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional - specify whether the - ConfigMap or its keys - must be defined type: boolean type: object x-kubernetes-map-type: atomic downwardAPI: - description: downwardAPI information - about the downwardAPI data - to project properties: items: - description: Items is - a list of DownwardAPIVolume - file items: - description: DownwardAPIVolumeFile - represents information - to create the file - containing the pod - field properties: fieldRef: - description: 'Required: - Selects a field - of the pod: only - annotations, labels, - name, namespace - and uid are supported.' properties: apiVersion: - description: Version - of the schema - the FieldPath - is written - in terms of, - defaults to - "v1". type: string fieldPath: - description: Path - of the field - to select - in the specified - API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: - mode bits used - to set permissions - on this file, - must be an octal - value between - 0000 and 0777 - or a decimal value - between 0 and - 511. YAML accepts - both octal and - decimal values, - JSON requires - decimal values - for mode bits. - If not specified, - the volume defaultMode - will be used. - This might be - in conflict with - other options - that affect the - file mode, like - fsGroup, and the - result can be - other mode bits - set.' format: int32 type: integer path: - description: 'Required: - Path is the relative - path name of the - file to be created. - Must not be absolute - or contain the - ''..'' path. Must - be utf-8 encoded. - The first item - of the relative - path must not - start with ''..''' type: string resourceFieldRef: - description: 'Selects - a resource of - the container: - only resources - limits and requests - (limits.cpu, limits.memory, - requests.cpu and - requests.memory) - are currently - supported.' properties: containerName: - description: 'Container - name: required - for volumes, - optional for - env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies - the output - format of - the exposed - resources, - defaults to - "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: - resource to - select' type: string required: - resource @@ -35120,85 +11902,16 @@ spec: x-kubernetes-list-type: atomic type: object secret: - description: secret information - about the secret data to - project properties: items: - description: items if - unspecified, each key-value - pair in the Data field - of the referenced Secret - will be projected into - the volume as a file - whose name is the key - and content is the value. - If specified, the listed - keys will be projected - into the specified paths, - and unlisted keys will - not be present. If a - key is specified which - is not present in the - Secret, the volume setup - will error unless it - is marked optional. - Paths must be relative - and may not contain - the '..' path or start - with '..'. items: - description: Maps a - string key to a path - within a volume. properties: key: - description: key - is the key to - project. type: string mode: - description: 'mode - is Optional: mode - bits used to set - permissions on - this file. Must - be an octal value - between 0000 and - 0777 or a decimal - value between - 0 and 511. YAML - accepts both octal - and decimal values, - JSON requires - decimal values - for mode bits. - If not specified, - the volume defaultMode - will be used. - This might be - in conflict with - other options - that affect the - file mode, like - fsGroup, and the - result can be - other mode bits - set.' format: int32 type: integer path: - description: path - is the relative - path of the file - to map the key - to. May not be - an absolute path. - May not contain - the path element - '..'. May not - start with the - string '..'. type: string required: - key @@ -35208,76 +11921,19 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of - the referent. This field - is effectively required, - but due to backwards - compatibility is allowed - to be empty. Instances - of this type with an - empty value here are - almost certainly wrong. - TODO: Add other useful - fields. apiVersion, - kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional - field specify whether - the Secret or its key - must be defined type: boolean type: object x-kubernetes-map-type: atomic serviceAccountToken: - description: serviceAccountToken - is information about the - serviceAccountToken data - to project properties: audience: - description: audience - is the intended audience - of the token. A recipient - of a token must identify - itself with an identifier - specified in the audience - of the token, and otherwise - should reject the token. - The audience defaults - to the identifier of - the apiserver. type: string expirationSeconds: - description: expirationSeconds - is the requested duration - of validity of the service - account token. As the - token approaches expiration, - the kubelet volume plugin - will proactively rotate - the service account - token. The kubelet will - start trying to rotate - the token if the token - is older than 80 percent - of its time to live - or if the token is older - than 24 hours.Defaults - to 1 hour and must be - at least 10 minutes. format: int64 type: integer path: - description: path is the - path relative to the - mount point of the file - to project the token - into. type: string required: - path @@ -35287,209 +11943,79 @@ spec: x-kubernetes-list-type: atomic type: object quobyte: - description: quobyte represents a Quobyte - mount on the host that shares a pod's - lifetime properties: group: - description: group to map volume - access to Default is no group type: string readOnly: - description: readOnly here will - force the Quobyte volume to be - mounted with read-only permissions. - Defaults to false. type: boolean registry: - description: registry represents - a single or multiple Quobyte Registry - services specified as a string - as host:port pair (multiple entries - are separated with commas) which - acts as the central registry for - volumes type: string tenant: - description: tenant owning the given - Quobyte volume in the Backend - Used with dynamically provisioned - Quobyte volumes, value is set - by the plugin type: string user: - description: user to map volume - access to Defaults to serivceaccount - user type: string volume: - description: volume is a string - that references an already created - Quobyte volume by name. type: string required: - registry - volume type: object rbd: - description: 'rbd represents a Rados - Block Device mount on the host that - shares a pod''s lifetime. More info: - https://examples.k8s.io/volumes/rbd/README.md' properties: fsType: - description: 'fsType is the filesystem - type of the volume that you want - to mount. Tip: Ensure that the - filesystem type is supported by - the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. - More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors - in the filesystem from compromising - the machine' type: string image: - description: 'image is the rados - image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string keyring: - description: 'keyring is the path - to key ring for RBDUser. Default - is /etc/ceph/keyring. More info: - https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string monitors: - description: 'monitors is a collection - of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic pool: - description: 'pool is the rados - pool name. Default is rbd. More - info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string readOnly: - description: 'readOnly here will - force the ReadOnly setting in - VolumeMounts. Defaults to false. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: boolean secretRef: - description: 'secretRef is name - of the authentication secret for - RBDUser. If provided overrides - keyring. Default is nil. More - info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is the rados - user name. Default is admin. More - info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string required: - image - monitors type: object scaleIO: - description: scaleIO represents a ScaleIO - persistent volume attached and mounted - on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Default is "xfs". type: string gateway: - description: gateway is the host - address of the ScaleIO API Gateway. type: string protectionDomain: - description: protectionDomain is - the name of the ScaleIO Protection - Domain for the configured storage. type: string readOnly: - description: readOnly Defaults to - false (read/write). ReadOnly here - will force the ReadOnly setting - in VolumeMounts. type: boolean secretRef: - description: secretRef references - to the secret for ScaleIO user - and other sensitive information. - If this is not provided, Login - operation will fail. properties: name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic sslEnabled: - description: sslEnabled Flag enable/disable - SSL communication with Gateway, - default false type: boolean storageMode: - description: storageMode indicates - whether the storage for a volume - should be ThickProvisioned or - ThinProvisioned. Default is ThinProvisioned. type: string storagePool: - description: storagePool is the - ScaleIO Storage Pool associated - with the protection domain. type: string system: - description: system is the name - of the storage system as configured - in ScaleIO. type: string volumeName: - description: volumeName is the name - of a volume already created in - the ScaleIO system that is associated - with this volume source. type: string required: - gateway @@ -35497,79 +12023,19 @@ spec: - system type: object secret: - description: 'secret represents a secret - that should populate this volume. - More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' properties: defaultMode: - description: 'defaultMode is Optional: - mode bits used to set permissions - on created files by default. Must - be an octal value between 0000 - and 0777 or a decimal value between - 0 and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. - Defaults to 0644. Directories - within the path are not affected - by this setting. This might be - in conflict with other options - that affect the file mode, like - fsGroup, and the result can be - other mode bits set.' format: int32 type: integer items: - description: items If unspecified, - each key-value pair in the Data - field of the referenced Secret - will be projected into the volume - as a file whose name is the key - and content is the value. If specified, - the listed keys will be projected - into the specified paths, and - unlisted keys will not be present. - If a key is specified which is - not present in the Secret, the - volume setup will error unless - it is marked optional. Paths must - be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key - to a path within a volume. properties: key: - description: key is the key - to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an - octal value between 0000 - and 0777 or a decimal value - between 0 and 511. YAML - accepts both octal and decimal - values, JSON requires decimal - values for mode bits. If - not specified, the volume - defaultMode will be used. - This might be in conflict - with other options that - affect the file mode, like - fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map - the key to. May not be an - absolute path. May not contain - the path element '..'. May - not start with the string - '..'. type: string required: - key @@ -35578,111 +12044,37 @@ spec: type: array x-kubernetes-list-type: atomic optional: - description: optional field specify - whether the Secret or its keys - must be defined type: boolean secretName: - description: 'secretName is the - name of the secret in the pod''s - namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' type: string type: object storageos: - description: storageOS represents a - StorageOS volume attached and mounted - on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" - if unspecified. type: string readOnly: - description: readOnly defaults to - false (read/write). ReadOnly here - will force the ReadOnly setting - in VolumeMounts. type: boolean secretRef: - description: secretRef specifies - the secret to use for obtaining - the StorageOS API credentials. If - not specified, default values - will be attempted. properties: name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeName: - description: volumeName is the human-readable - name of the StorageOS volume. Volume - names are only unique within a - namespace. type: string volumeNamespace: - description: volumeNamespace specifies - the scope of the volume within - StorageOS. If no namespace is - specified then the Pod's namespace - will be used. This allows the - Kubernetes name scoping to be - mirrored within StorageOS for - tighter integration. Set VolumeName - to any name to override the default - behaviour. Set to "default" if - you are not using namespaces within - StorageOS. Namespaces that do - not pre-exist within StorageOS - will be created. type: string type: object vsphereVolume: - description: vsphereVolume represents - a vSphere volume attached and mounted - on kubelets host machine properties: fsType: - description: fsType is filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" - if unspecified. type: string storagePolicyID: - description: storagePolicyID is - the storage Policy Based Management - (SPBM) profile ID associated with - the StoragePolicyName. type: string storagePolicyName: - description: storagePolicyName is - the storage Policy Based Management - (SPBM) profile name. type: string volumePath: - description: volumePath is the path - that identifies vSphere volume - vmdk type: string required: - volumePath @@ -35694,39 +12086,18 @@ spec: type: object type: object ttlSecondsAfterFinished: - description: ttlSecondsAfterFinished limits the lifetime - of a Job that has finished execution (either Complete - or Failed). If this field is set, ttlSecondsAfterFinished - after the Job finishes, it is eligible to be automatically - deleted. When the Job is being deleted, its lifecycle - guarantees (e.g. finalizers) will be honored. If - this field is unset, the Job won't be automatically - deleted. If this field is set to zero, the Job becomes - eligible to be deleted immediately after it finishes. - This field is alpha-level and is only honored by - servers that enable the TTLAfterFinished feature. format: int32 type: integer type: object schedule: - description: The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron. type: string startingDeadlineSeconds: - description: Optional deadline in seconds for starting - the job if it misses scheduled time for any reason. Missed - jobs executions will be counted as failed ones. format: int64 type: integer successfulJobsHistoryLimit: - description: The number of successful finished jobs to - retain. Value must be non-negative integer. Defaults - to 3. format: int32 type: integer suspend: - description: This flag tells the controller to suspend - subsequent executions, it does not apply to already - started executions. Defaults to false. type: boolean required: - jobTemplate @@ -35734,91 +12105,41 @@ spec: type: object sessionHistoryLimit: default: 1 - description: SessionHistoryLimit specifies how many backup - Jobs and associate resources KubeStash should keep for debugging - purpose. The default value is 1. format: int32 type: integer type: object type: array type: object subjects: - description: Subjects specify a list of subject to which this BackupBlueprint - is applicable. KubeStash will start watcher for these resources. Multiple - BackupBlueprints can have common subject. The watcher will find the - appropriate blueprint from its annotations. items: - description: TypeMeta describes an individual object in an API response - or request with strings representing the type of the object and - its API schema version. Structures that are versioned or persisted - should inline TypeMeta. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this - representation of an object. Servers should convert recognized - schemas to the latest internal value, and may reject unrecognized - values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'Kind is a string value representing the REST resource - this object represents. Servers may infer this from the endpoint - the client submits requests to. Cannot be updated. In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string type: object type: array usagePolicy: - description: UsagePolicy specifies a policy of how this BackupBlueprint - will be used. For example, you can use `allowedNamespaces` policy - to restrict the usage of this BackupBlueprint to particular namespaces. - This field is optional. If you don't provide the usagePolicy, then - it can be used only from the current namespace. properties: allowedNamespaces: - description: AllowedNamespaces specifies which namespaces are allowed - to use the resource properties: from: default: Same - description: 'From indicates how to select the namespaces that - are allowed to use this resource. Possible values are: * All: - All namespaces can use this resource. * Selector: Namespaces - that matches the selector can use this resource. * Same: Only - current namespace can use the resource.' enum: - All - Selector - Same type: string selector: - description: Selector must be specified when From is set to - "Selector". In that case, only the selected namespaces are - allowed to use this resource. This field is ignored for other - values of "From". properties: matchExpressions: - description: matchExpressions is a list of label selector - requirements. The requirements are ANDed. items: - description: A label selector requirement is a selector - that contains values, a key, and an operator that relates - the key and values. properties: key: - description: key is the label key that the selector - applies to. type: string operator: - description: operator represents a key's relationship - to a set of values. Valid operators are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values is an array of string values. - If the operator is In or NotIn, the values array - must be non-empty. If the operator is Exists or - DoesNotExist, the values array must be empty. This - array is replaced during a strategic merge patch. items: type: string type: array @@ -35832,11 +12153,6 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} pairs. - A single {key,value} in the matchLabels map is equivalent - to an element of matchExpressions, whose key field is - "key", the operator is "In", and the values array contains - only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/core.kubestash.com/v1alpha1/backupconfigurations.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/core.kubestash.com/v1alpha1/backupconfigurations.yaml index f155a4571..51b2a8e64 100644 --- a/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/core.kubestash.com/v1alpha1/backupconfigurations.yaml +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/core.kubestash.com/v1alpha1/backupconfigurations.yaml @@ -122,18 +122,10 @@ spec: version: v1alpha1 validation: openAPIV3Schema: - description: BackupConfiguration specifies the configuration for taking backup - of a target application. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: properties: @@ -169,57 +161,26 @@ spec: type: object type: object spec: - description: BackupConfigurationSpec defines the target of backup, the backends - where the data will be stored, and the sessions that specifies when and - how to take backup. properties: backends: - description: "Backends specifies a list of storage references where - the backed up data will be stored. The respective BackupStorages can - be in a different namespace than the BackupConfiguration. However, - it must be allowed by the `usagePolicy` of the BackupStorage to refer - from this namespace. \n This field is optional, if you don't provide - any backend here, KubeStash will use the default BackupStorage for - the namespace. If a default BackupStorage does not exist in the same - namespace, then KubeStash will look for a default BackupStorage in - other namespaces that allows using it from the BackupConfiguration - namespace." items: - description: BackendReference specifies reference to a storage where - the backed up data will be stored. properties: name: - description: Name provides an identifier for this storage. type: string retentionPolicy: - description: RetentionPolicy refers to a RetentionPolicy CRs which - defines how to cleanup the old Snapshots. This field is optional. - If you don't provide this field, KubeStash will use the default - RetentionPolicy for the namespace. If there is no default RetentionPolicy - for the namespace, then KubeStash will find a RetentionPolicy - from other namespaces that is allowed to use from the current - namespace. properties: name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string required: - name type: object storageRef: - description: StorageRef refers to the CR that holds the information - of a storage. You can refer to the BackupStorage CR of a different - namespace as long as it is allowed by the `usagePolicy` of the - BackupStorage.` properties: name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string required: - name @@ -227,149 +188,70 @@ spec: type: object type: array paused: - description: Paused indicates that the BackupConfiguration has been - paused from taking backup. Default value is 'false'. If you set `paused` - field to `true`, KubeStash will suspend the respective backup triggering - CronJob and skip processing any further events for this BackupConfiguration. type: boolean sessions: - description: Sessions defines a list of session configuration that specifies - when and how to take backup. items: - description: Session specifies a backup session configuration for - the target properties: addon: - description: Addon specifies addon configuration that will be - used to backup the target. properties: containerRuntimeSettings: - description: ContainerRuntimeSettings specifies runtime settings - for the backup/restore executor container properties: env: - description: List of environment variables to set in the - container. Cannot be updated. items: - description: EnvVar represents an environment variable - present in a Container. properties: name: - description: Name of the environment variable. Must - be a C_IDENTIFIER. type: string value: - description: 'Variable references $(VAR_NAME) are - expanded using the previously defined environment - variables in the container and any service environment - variables. If a variable cannot be resolved, the - reference in the input string will be unchanged. - Double $$ are reduced to a single $, which allows - for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" - will produce the string literal "$(VAR_NAME)". - Escaped references will never be expanded, regardless - of whether the variable exists or not. Defaults - to "".' type: string valueFrom: - description: Source for the environment variable's - value. Cannot be used if value is not empty. properties: configMapKeyRef: - description: Selects a key of a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type with - an empty value here are almost certainly - wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap - or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field of the pod: supports - metadata.name, metadata.namespace, `metadata.labels['''']`, - `metadata.annotations['''']`, spec.nodeName, - spec.serviceAccountName, status.hostIP, status.podIP, - status.podIPs.' properties: apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". type: string fieldPath: - description: Path of the field to select - in the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource of the container: - only resources limits and requests (limits.cpu, - limits.memory, limits.ephemeral-storage, requests.cpu, - requests.memory and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: required for - volumes, optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output format - of the exposed resources, defaults to - "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource to select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret in the - pod's namespace properties: key: - description: The key of the secret to select - from. Must be a valid secret key. type: string name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type with - an empty value here are almost certainly - wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret - or its key must be defined type: boolean required: - key @@ -381,70 +263,31 @@ spec: type: object type: array envFrom: - description: List of sources to populate environment variables - in the container. The keys defined within a source must - be a C_IDENTIFIER. All invalid keys will be reported - as an event when the container is starting. When a key - exists in multiple sources, the value associated with - the last source will take precedence. Values defined - by an Env with a duplicate key will take precedence. - Cannot be updated. items: - description: EnvFromSource represents the source of - a set of ConfigMaps properties: configMapRef: - description: The ConfigMap to select from properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap must - be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: - description: An optional identifier to prepend to - each key in the ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: - description: The Secret to select from properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret must - be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array ionice: - description: 'Settings to configure `ionice` to throttle - the load on disk. More info: http://kennystechtalk.blogspot.com/2015/04/throttling-cpu-usage-with-linux-cgroups.html - More info: https://oakbytes.wordpress.com/2012/06/06/linux-scheduler-cfs-and-nice/' properties: class: format: int32 @@ -454,60 +297,27 @@ spec: type: integer type: object lifecycle: - description: Actions that the management system should - take in response to container lifecycle events. Cannot - be updated. properties: postStart: - description: 'PostStart is called immediately after - a container is created. If the handler fails, the - container is terminated and restarted according - to its restart policy. Other management of the container - blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action to take. properties: command: - description: Command is the command line to - execute inside the container, the working - directory for the command is root ('/') - in the container's filesystem. The command - is simply exec'd, it is not run inside a - shell, so traditional shell instructions - ('|', etc) won't work. To use a shell, you - need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http request - to perform. properties: host: - description: Host name to connect to, defaults - to the pod IP. You probably want to set - "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in the - request. HTTP allows repeated headers. items: - description: HTTPHeader describes a custom - header to be used in HTTP probes properties: name: - description: The header field name. - This will be canonicalized upon output, - so case-variant names will be understood - as the same header. type: string value: - description: The header field value type: string required: - name @@ -516,118 +326,58 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port to - access on the container. Number must be - in the range 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration that - the container should sleep before being terminated. properties: seconds: - description: Seconds is the number of seconds - to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is NOT supported - as a LifecycleHandler and kept for the backward - compatibility. There are no validation of this - field and lifecycle hooks will fail in runtime - when tcp handler is specified. properties: host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port to - access on the container. Number must be - in the range 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object type: object preStop: - description: 'PreStop is called immediately before - a container is terminated due to an API request - or management event such as liveness/startup probe - failure, preemption, resource contention, etc. The - handler is not called if the container crashes or - exits. The Pod''s termination grace period countdown - begins before the PreStop hook is executed. Regardless - of the outcome of the handler, the container will - eventually terminate within the Pod''s termination - grace period (unless delayed by finalizers). Other - management of the container blocks until the hook - completes or until the termination grace period - is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action to take. properties: command: - description: Command is the command line to - execute inside the container, the working - directory for the command is root ('/') - in the container's filesystem. The command - is simply exec'd, it is not run inside a - shell, so traditional shell instructions - ('|', etc) won't work. To use a shell, you - need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http request - to perform. properties: host: - description: Host name to connect to, defaults - to the pod IP. You probably want to set - "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in the - request. HTTP allows repeated headers. items: - description: HTTPHeader describes a custom - header to be used in HTTP probes properties: name: - description: The header field name. - This will be canonicalized upon output, - so case-variant names will be understood - as the same header. type: string value: - description: The header field value type: string required: - name @@ -636,55 +386,33 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port to - access on the container. Number must be - in the range 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration that - the container should sleep before being terminated. properties: seconds: - description: Seconds is the number of seconds - to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is NOT supported - as a LifecycleHandler and kept for the backward - compatibility. There are no validation of this - field and lifecycle hooks will fail in runtime - when tcp handler is specified. properties: host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port to - access on the container. Number must be - in the range 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port @@ -692,77 +420,38 @@ spec: type: object type: object livenessProbe: - description: 'Periodic probe of container liveness. Container - will be restarted if the probe fails. Cannot be updated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to take. properties: command: - description: Command is the command line to execute - inside the container, the working directory - for the command is root ('/') in the container's - filesystem. The command is simply exec'd, it - is not run inside a shell, so traditional shell - instructions ('|', etc) won't work. To use a - shell, you need to explicitly call out to that - shell. Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures for the - probe to be considered failed after having succeeded. - Defaults to 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving a - GRPC port. properties: port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name of the service - to place in the gRPC HealthCheckRequest (see - https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default behavior - is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http request to - perform. properties: host: - description: Host name to connect to, defaults - to the pod IP. You probably want to set "Host" - in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in the request. - HTTP allows repeated headers. items: - description: HTTPHeader describes a custom header - to be used in HTTP probes properties: name: - description: The header field name. This - will be canonicalized upon output, so - case-variant names will be understood - as the same header. type: string value: - description: The header field value type: string required: - name @@ -771,166 +460,84 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port to access - on the container. Number must be in the range - 1 to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting to the - host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the container - has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform the - probe. Default to 10 seconds. Minimum value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes for the - probe to be considered successful after having failed. - Defaults to 1. Must be 1 for liveness and startup. - Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. properties: host: - description: 'Optional: Host name to connect to, - defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port to access - on the container. Number must be in the range - 1 to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds the pod - needs to terminate gracefully upon probe failure. - The grace period is the duration in seconds after - the processes running in the pod are sent a termination - signal and the time when the processes are forcibly - halted with a kill signal. Set this value longer - than the expected cleanup time for your process. - If this value is nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value overrides the - value provided by the pod spec. Value must be non-negative - integer. The value zero indicates stop immediately - via the kill signal (no opportunity to shut down). - This is a beta field and requires enabling ProbeTerminationGracePeriod - feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which the probe - times out. Defaults to 1 second. Minimum value is - 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object nice: - description: 'Settings to configure `nice` to throttle - the load on cpu. More info: http://kennystechtalk.blogspot.com/2015/04/throttling-cpu-usage-with-linux-cgroups.html - More info: https://oakbytes.wordpress.com/2012/06/06/linux-scheduler-cfs-and-nice/' properties: adjustment: format: int32 type: integer type: object readinessProbe: - description: 'Periodic probe of container service readiness. - Container will be removed from service endpoints if - the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to take. properties: command: - description: Command is the command line to execute - inside the container, the working directory - for the command is root ('/') in the container's - filesystem. The command is simply exec'd, it - is not run inside a shell, so traditional shell - instructions ('|', etc) won't work. To use a - shell, you need to explicitly call out to that - shell. Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures for the - probe to be considered failed after having succeeded. - Defaults to 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving a - GRPC port. properties: port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name of the service - to place in the gRPC HealthCheckRequest (see - https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default behavior - is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http request to - perform. properties: host: - description: Host name to connect to, defaults - to the pod IP. You probably want to set "Host" - in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in the request. - HTTP allows repeated headers. items: - description: HTTPHeader describes a custom header - to be used in HTTP probes properties: name: - description: The header field name. This - will be canonicalized upon output, so - case-variant names will be understood - as the same header. type: string value: - description: The header field value type: string required: - name @@ -939,105 +546,51 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port to access - on the container. Number must be in the range - 1 to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting to the - host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the container - has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform the - probe. Default to 10 seconds. Minimum value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes for the - probe to be considered successful after having failed. - Defaults to 1. Must be 1 for liveness and startup. - Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. properties: host: - description: 'Optional: Host name to connect to, - defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port to access - on the container. Number must be in the range - 1 to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds the pod - needs to terminate gracefully upon probe failure. - The grace period is the duration in seconds after - the processes running in the pod are sent a termination - signal and the time when the processes are forcibly - halted with a kill signal. Set this value longer - than the expected cleanup time for your process. - If this value is nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value overrides the - value provided by the pod spec. Value must be non-negative - integer. The value zero indicates stop immediately - via the kill signal (no opportunity to shut down). - This is a beta field and requires enabling ProbeTerminationGracePeriod - feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which the probe - times out. Defaults to 1 second. Minimum value is - 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object resources: - description: 'Compute Resources required by container. - Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' properties: claims: - description: "Claims lists the names of resources, - defined in spec.resourceClaims, that are used by - this container. \n This is an alpha field and requires - enabling the DynamicResourceAllocation feature gate. - \n This field is immutable. It can only be set for - containers." items: - description: ResourceClaim references one entry - in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one - entry in pod.spec.resourceClaims of the Pod - where this field is used. It makes that resource - available inside a container. type: string required: - name @@ -1053,8 +606,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount - of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -1063,340 +614,124 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount - of compute resources required. If Requests is omitted - for a container, it defaults to Limits if that is - explicitly specified, otherwise to an implementation-defined - value. Requests cannot exceed Limits. More info: - https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object securityContext: - description: 'Security options the pod should run with. - More info: https://kubernetes.io/docs/concepts/policy/security-context/ - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: allowPrivilegeEscalation: - description: 'AllowPrivilegeEscalation controls whether - a process can gain more privileges than its parent - process. This bool directly controls if the no_new_privs - flag will be set on the container process. AllowPrivilegeEscalation - is true always when the container is: 1) run as - Privileged 2) has CAP_SYS_ADMIN Note that this field - cannot be set when spec.os.name is windows.' type: boolean appArmorProfile: - description: appArmorProfile is the AppArmor options - to use by this container. If set, this profile overrides - the pod's appArmorProfile. Note that this field - cannot be set when spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates a profile - loaded on the node that should be used. The - profile must be preconfigured on the node to - work. Must match the loaded name of the profile. - Must be set if and only if type is "Localhost". type: string type: - description: 'type indicates which kind of AppArmor - profile will be applied. Valid options are: - Localhost - a profile pre-loaded on the node. - RuntimeDefault - the container runtime''s default - profile. Unconfined - no AppArmor enforcement.' type: string required: - type type: object capabilities: - description: The capabilities to add/drop when running - containers. Defaults to the default set of capabilities - granted by the container runtime. Note that this - field cannot be set when spec.os.name is windows. properties: add: - description: Added capabilities items: - description: Capability represent POSIX capabilities - type type: string type: array x-kubernetes-list-type: atomic drop: - description: Removed capabilities items: - description: Capability represent POSIX capabilities - type type: string type: array x-kubernetes-list-type: atomic type: object privileged: - description: Run container in privileged mode. Processes - in privileged containers are essentially equivalent - to root on the host. Defaults to false. Note that - this field cannot be set when spec.os.name is windows. type: boolean procMount: - description: procMount denotes the type of proc mount - to use for the containers. The default is DefaultProcMount - which uses the container runtime defaults for readonly - paths and masked paths. This requires the ProcMountType - feature flag to be enabled. Note that this field - cannot be set when spec.os.name is windows. type: string readOnlyRootFilesystem: - description: Whether this container has a read-only - root filesystem. Default is false. Note that this - field cannot be set when spec.os.name is windows. type: boolean runAsGroup: - description: The GID to run the entrypoint of the - container process. Uses runtime default if unset. - May also be set in PodSecurityContext. If set in - both SecurityContext and PodSecurityContext, the - value specified in SecurityContext takes precedence. - Note that this field cannot be set when spec.os.name - is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container must run - as a non-root user. If true, the Kubelet will validate - the image at runtime to ensure that it does not - run as UID 0 (root) and fail to start the container - if it does. If unset or false, no such validation - will be performed. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes precedence. type: boolean runAsUser: - description: The UID to run the entrypoint of the - container process. Defaults to user specified in - image metadata if unspecified. May also be set in - PodSecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified in SecurityContext - takes precedence. Note that this field cannot be - set when spec.os.name is windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be applied to - the container. If unspecified, the container runtime - will allocate a random SELinux context for each - container. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes precedence. - Note that this field cannot be set when spec.os.name - is windows. properties: level: - description: Level is SELinux level label that - applies to the container. type: string role: - description: Role is a SELinux role label that - applies to the container. type: string type: - description: Type is a SELinux type label that - applies to the container. type: string user: - description: User is a SELinux user label that - applies to the container. type: string type: object seccompProfile: - description: The seccomp options to use by this container. - If seccomp options are provided at both the pod - & container level, the container options override - the pod options. Note that this field cannot be - set when spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates a profile - defined in a file on the node should be used. - The profile must be preconfigured on the node - to work. Must be a descending path, relative - to the kubelet's configured seccomp profile - location. Must be set if type is "Localhost". - Must NOT be set for any other type. type: string type: - description: "type indicates which kind of seccomp - profile will be applied. Valid options are: - \n Localhost - a profile defined in a file on - the node should be used. RuntimeDefault - the - container runtime default profile should be - used. Unconfined - no profile should be applied." type: string required: - type type: object windowsOptions: - description: The Windows specific settings applied - to all containers. If unspecified, the options from - the PodSecurityContext will be used. If set in both - SecurityContext and PodSecurityContext, the value - specified in SecurityContext takes precedence. Note - that this field cannot be set when spec.os.name - is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is where the GMSA - admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA credential - spec named by the GMSACredentialSpecName field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName is the name - of the GMSA credential spec to use. type: string hostProcess: - description: HostProcess determines if a container - should be run as a 'Host Process' container. - All of a Pod's containers must have the same - effective HostProcess value (it is not allowed - to have a mix of HostProcess containers and - non-HostProcess containers). In addition, if - HostProcess is true then HostNetwork must also - be set to true. type: boolean runAsUserName: - description: The UserName in Windows to run the - entrypoint of the container process. Defaults - to the user specified in image metadata if unspecified. - May also be set in PodSecurityContext. If set - in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. type: string type: object type: object type: object jobTemplate: - description: JobTemplate specifies runtime configurations - for the backup/restore Job properties: controller: - description: 'Workload controller''s metadata. More info: - https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value - map stored with a resource that may be set by external - tools to store and retrieve arbitrary metadata. - They are not queryable and should be preserved when - modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that can - be used to organize and categorize (scope and select) - objects. May match selectors of replication controllers - and services. More info: http://kubernetes.io/docs/user-guide/labels' type: object type: object metadata: - description: 'Standard object''s metadata. More info: - https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value - map stored with a resource that may be set by external - tools to store and retrieve arbitrary metadata. - They are not queryable and should be preserved when - modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that can - be used to organize and categorize (scope and select) - objects. May match selectors of replication controllers - and services. More info: http://kubernetes.io/docs/user-guide/labels' type: object type: object spec: - description: 'Specification of the desired behavior of - the pod. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' properties: affinity: - description: If specified, the pod's scheduling constraints properties: nodeAffinity: - description: Describes node affinity scheduling - rules for the pod. properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer to - schedule pods to nodes that satisfy the - affinity expressions specified by this field, - but it may choose a node that violates one - or more of the expressions. The node that - is most preferred is the one with the greatest - sum of weights, i.e. for each node that - meets all of the scheduling requirements - (resource request, requiredDuringScheduling - affinity expressions, etc.), compute a sum - by iterating through the elements of this - field and adding "weight" to the sum if - the node matches the corresponding matchExpressions; - the node(s) with the highest sum are the - most preferred. items: - description: An empty preferred scheduling - term matches all objects with implicit - weight 0 (i.e. it's a no-op). A null preferred - scheduling term matches no objects (i.e. - is also a no-op). properties: preference: - description: A node selector term, associated - with the corresponding weight. properties: matchExpressions: - description: A list of node selector - requirements by node's labels. items: - description: A node selector requirement - is a selector that contains - values, a key, and an operator - that relates the key and values. properties: key: - description: The label key - that the selector applies - to. type: string operator: - description: Represents a - key's relationship to a - set of values. Valid operators - are In, NotIn, Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An array of string - values. If the operator - is In or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the values - array must be empty. If - the operator is Gt or Lt, - the values array must have - a single element, which - will be interpreted as an - integer. This array is replaced - during a strategic merge - patch. items: type: string type: array @@ -1408,41 +743,13 @@ spec: type: array x-kubernetes-list-type: atomic matchFields: - description: A list of node selector - requirements by node's fields. items: - description: A node selector requirement - is a selector that contains - values, a key, and an operator - that relates the key and values. properties: key: - description: The label key - that the selector applies - to. type: string operator: - description: Represents a - key's relationship to a - set of values. Valid operators - are In, NotIn, Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An array of string - values. If the operator - is In or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the values - array must be empty. If - the operator is Gt or Lt, - the values array must have - a single element, which - will be interpreted as an - integer. This array is replaced - during a strategic merge - patch. items: type: string type: array @@ -1456,9 +763,6 @@ spec: type: object x-kubernetes-map-type: atomic weight: - description: Weight associated with - matching the corresponding nodeSelectorTerm, - in the range 1-100. format: int32 type: integer required: @@ -1468,60 +772,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements - specified by this field are not met at scheduling - time, the pod will not be scheduled onto - the node. If the affinity requirements specified - by this field cease to be met at some point - during pod execution (e.g. due to an update), - the system may or may not try to eventually - evict the pod from its node. properties: nodeSelectorTerms: - description: Required. A list of node - selector terms. The terms are ORed. items: - description: A null or empty node selector - term matches no objects. The requirements - of them are ANDed. The TopologySelectorTerm - type implements a subset of the NodeSelectorTerm. properties: matchExpressions: - description: A list of node selector - requirements by node's labels. items: - description: A node selector requirement - is a selector that contains - values, a key, and an operator - that relates the key and values. properties: key: - description: The label key - that the selector applies - to. type: string operator: - description: Represents a - key's relationship to a - set of values. Valid operators - are In, NotIn, Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An array of string - values. If the operator - is In or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the values - array must be empty. If - the operator is Gt or Lt, - the values array must have - a single element, which - will be interpreted as an - integer. This array is replaced - during a strategic merge - patch. items: type: string type: array @@ -1533,41 +795,13 @@ spec: type: array x-kubernetes-list-type: atomic matchFields: - description: A list of node selector - requirements by node's fields. items: - description: A node selector requirement - is a selector that contains - values, a key, and an operator - that relates the key and values. properties: key: - description: The label key - that the selector applies - to. type: string operator: - description: Represents a - key's relationship to a - set of values. Valid operators - are In, NotIn, Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An array of string - values. If the operator - is In or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the values - array must be empty. If - the operator is Gt or Lt, - the values array must have - a single element, which - will be interpreted as an - integer. This array is replaced - during a strategic merge - patch. items: type: string type: array @@ -1588,79 +822,22 @@ spec: x-kubernetes-map-type: atomic type: object podAffinity: - description: Describes pod affinity scheduling - rules (e.g. co-locate this pod in the same node, - zone, etc. as some other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer to - schedule pods to nodes that satisfy the - affinity expressions specified by this field, - but it may choose a node that violates one - or more of the expressions. The node that - is most preferred is the one with the greatest - sum of weights, i.e. for each node that - meets all of the scheduling requirements - (resource request, requiredDuringScheduling - affinity expressions, etc.), compute a sum - by iterating through the elements of this - field and adding "weight" to the sum if - the node has pods which matches the corresponding - podAffinityTerm; the node(s) with the highest - sum are the most preferred. items: - description: The weights of all of the matched - WeightedPodAffinityTerm fields are added - per-node to find the most preferred node(s) properties: podAffinityTerm: - description: Required. A pod affinity - term, associated with the corresponding - weight. properties: labelSelector: - description: A label query over - a set of resources, in this case - pods. If it's null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator - represents a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is - an array of string values. - If the operator is In - or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the - values array must be - empty. This array is - replaced during a strategic - merge patch. items: type: string type: array @@ -1674,120 +851,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in the - matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is a - set of pod label keys to select - which pods will be taken into - consideration. The keys are used - to lookup values from the incoming - pod labels, those key-value labels - are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, matchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys is - a set of pod label keys to select - which pods will be taken into - consideration. The keys are used - to lookup values from the incoming - pod labels, those key-value labels - are merged with `labelSelector` - as `key notin (value)` to select - the group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over - the set of namespaces that the - term applies to. The term is applied - to the union of the namespaces - selected by this field and the - ones listed in the namespaces - field. null selector and null - or empty namespaces list means - "this pod's namespace". An empty - selector ({}) matches all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator - represents a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is - an array of string values. - If the operator is In - or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the - values array must be - empty. This array is - replaced during a strategic - merge patch. items: type: string type: array @@ -1801,53 +887,20 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in the - matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace names - that the term applies to. The - term is applied to the union of - the namespaces listed in this - field and the ones selected by - namespaceSelector. null or empty - namespaces list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be - co-located (affinity) or not co-located - (anti-affinity) with the pods - matching the labelSelector in - the specified namespaces, where - co-located is defined as running - on a node whose value of the label - with key topologyKey matches that - of any node on which any of the - selected pods is running. Empty - topologyKey is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated with - matching the corresponding podAffinityTerm, - in the range 1-100. format: int32 type: integer required: @@ -1857,69 +910,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements - specified by this field are not met at scheduling - time, the pod will not be scheduled onto - the node. If the affinity requirements specified - by this field cease to be met at some point - during pod execution (e.g. due to a pod - label update), the system may or may not - try to eventually evict the pod from its - node. When there are multiple elements, - the lists of nodes corresponding to each - podAffinityTerm are intersected, i.e. all - terms must be satisfied. items: - description: Defines a set of pods (namely - those matching the labelSelector relative - to the given namespace(s)) that this pod - should be co-located (affinity) or not - co-located (anti-affinity) with, where - co-located is defined as running on a - node whose value of the label with key - matches that of any node - on which a pod of the set of pods is running properties: labelSelector: - description: A label query over a set - of resources, in this case pods. If - it's null, this PodAffinityTerm matches - with no Pods. properties: matchExpressions: - description: matchExpressions is - a list of label selector requirements. - The requirements are ANDed. items: - description: A label selector - requirement is a selector that - contains values, a key, and - an operator that relates the - key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to - a set of values. Valid operators - are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an - array of string values. - If the operator is In or - NotIn, the values array - must be non-empty. If the - operator is Exists or DoesNotExist, - the values array must be - empty. This array is replaced - during a strategic merge - patch. items: type: string type: array @@ -1933,111 +935,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map - of {key,value} pairs. A single - {key,value} in the matchLabels - map is equivalent to an element - of matchExpressions, whose key - field is "key", the operator is - "In", and the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is a set - of pod label keys to select which - pods will be taken into consideration. - The keys are used to lookup values - from the incoming pod labels, those - key-value labels are merged with `labelSelector` - as `key in (value)` to select the - group of existing pods which pods - will be taken into consideration for - the incoming pod's pod (anti) affinity. - Keys that don't exist in the incoming - pod labels will be ignored. The default - value is empty. The same key is forbidden - to exist in both matchLabelKeys and - labelSelector. Also, matchLabelKeys - cannot be set when labelSelector isn't - set. This is an alpha field and requires - enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys is a - set of pod label keys to select which - pods will be taken into consideration. - The keys are used to lookup values - from the incoming pod labels, those - key-value labels are merged with `labelSelector` - as `key notin (value)` to select the - group of existing pods which pods - will be taken into consideration for - the incoming pod's pod (anti) affinity. - Keys that don't exist in the incoming - pod labels will be ignored. The default - value is empty. The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector isn't - set. This is an alpha field and requires - enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over the - set of namespaces that the term applies - to. The term is applied to the union - of the namespaces selected by this - field and the ones listed in the namespaces - field. null selector and null or empty - namespaces list means "this pod's - namespace". An empty selector ({}) - matches all namespaces. properties: matchExpressions: - description: matchExpressions is - a list of label selector requirements. - The requirements are ANDed. items: - description: A label selector - requirement is a selector that - contains values, a key, and - an operator that relates the - key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to - a set of values. Valid operators - are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an - array of string values. - If the operator is In or - NotIn, the values array - must be non-empty. If the - operator is Exists or DoesNotExist, - the values array must be - empty. This array is replaced - during a strategic merge - patch. items: type: string type: array @@ -2051,42 +971,15 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map - of {key,value} pairs. A single - {key,value} in the matchLabels - map is equivalent to an element - of matchExpressions, whose key - field is "key", the operator is - "In", and the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies a - static list of namespace names that - the term applies to. The term is applied - to the union of the namespaces listed - in this field and the ones selected - by namespaceSelector. null or empty - namespaces list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be co-located - (affinity) or not co-located (anti-affinity) - with the pods matching the labelSelector - in the specified namespaces, where - co-located is defined as running on - a node whose value of the label with - key topologyKey matches that of any - node on which any of the selected - pods is running. Empty topologyKey - is not allowed. type: string required: - topologyKey @@ -2095,79 +988,22 @@ spec: x-kubernetes-list-type: atomic type: object podAntiAffinity: - description: Describes pod anti-affinity scheduling - rules (e.g. avoid putting this pod in the same - node, zone, etc. as some other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer to - schedule pods to nodes that satisfy the - anti-affinity expressions specified by this - field, but it may choose a node that violates - one or more of the expressions. The node - that is most preferred is the one with the - greatest sum of weights, i.e. for each node - that meets all of the scheduling requirements - (resource request, requiredDuringScheduling - anti-affinity expressions, etc.), compute - a sum by iterating through the elements - of this field and adding "weight" to the - sum if the node has pods which matches the - corresponding podAffinityTerm; the node(s) - with the highest sum are the most preferred. items: - description: The weights of all of the matched - WeightedPodAffinityTerm fields are added - per-node to find the most preferred node(s) properties: podAffinityTerm: - description: Required. A pod affinity - term, associated with the corresponding - weight. properties: labelSelector: - description: A label query over - a set of resources, in this case - pods. If it's null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator - represents a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is - an array of string values. - If the operator is In - or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the - values array must be - empty. This array is - replaced during a strategic - merge patch. items: type: string type: array @@ -2181,120 +1017,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in the - matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is a - set of pod label keys to select - which pods will be taken into - consideration. The keys are used - to lookup values from the incoming - pod labels, those key-value labels - are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, matchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys is - a set of pod label keys to select - which pods will be taken into - consideration. The keys are used - to lookup values from the incoming - pod labels, those key-value labels - are merged with `labelSelector` - as `key notin (value)` to select - the group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over - the set of namespaces that the - term applies to. The term is applied - to the union of the namespaces - selected by this field and the - ones listed in the namespaces - field. null selector and null - or empty namespaces list means - "this pod's namespace". An empty - selector ({}) matches all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator - represents a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is - an array of string values. - If the operator is In - or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the - values array must be - empty. This array is - replaced during a strategic - merge patch. items: type: string type: array @@ -2308,53 +1053,20 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in the - matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace names - that the term applies to. The - term is applied to the union of - the namespaces listed in this - field and the ones selected by - namespaceSelector. null or empty - namespaces list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be - co-located (affinity) or not co-located - (anti-affinity) with the pods - matching the labelSelector in - the specified namespaces, where - co-located is defined as running - on a node whose value of the label - with key topologyKey matches that - of any node on which any of the - selected pods is running. Empty - topologyKey is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated with - matching the corresponding podAffinityTerm, - in the range 1-100. format: int32 type: integer required: @@ -2364,69 +1076,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the anti-affinity requirements - specified by this field are not met at scheduling - time, the pod will not be scheduled onto - the node. If the anti-affinity requirements - specified by this field cease to be met - at some point during pod execution (e.g. - due to a pod label update), the system may - or may not try to eventually evict the pod - from its node. When there are multiple elements, - the lists of nodes corresponding to each - podAffinityTerm are intersected, i.e. all - terms must be satisfied. items: - description: Defines a set of pods (namely - those matching the labelSelector relative - to the given namespace(s)) that this pod - should be co-located (affinity) or not - co-located (anti-affinity) with, where - co-located is defined as running on a - node whose value of the label with key - matches that of any node - on which a pod of the set of pods is running properties: labelSelector: - description: A label query over a set - of resources, in this case pods. If - it's null, this PodAffinityTerm matches - with no Pods. properties: matchExpressions: - description: matchExpressions is - a list of label selector requirements. - The requirements are ANDed. items: - description: A label selector - requirement is a selector that - contains values, a key, and - an operator that relates the - key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to - a set of values. Valid operators - are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an - array of string values. - If the operator is In or - NotIn, the values array - must be non-empty. If the - operator is Exists or DoesNotExist, - the values array must be - empty. This array is replaced - during a strategic merge - patch. items: type: string type: array @@ -2440,111 +1101,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map - of {key,value} pairs. A single - {key,value} in the matchLabels - map is equivalent to an element - of matchExpressions, whose key - field is "key", the operator is - "In", and the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is a set - of pod label keys to select which - pods will be taken into consideration. - The keys are used to lookup values - from the incoming pod labels, those - key-value labels are merged with `labelSelector` - as `key in (value)` to select the - group of existing pods which pods - will be taken into consideration for - the incoming pod's pod (anti) affinity. - Keys that don't exist in the incoming - pod labels will be ignored. The default - value is empty. The same key is forbidden - to exist in both matchLabelKeys and - labelSelector. Also, matchLabelKeys - cannot be set when labelSelector isn't - set. This is an alpha field and requires - enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys is a - set of pod label keys to select which - pods will be taken into consideration. - The keys are used to lookup values - from the incoming pod labels, those - key-value labels are merged with `labelSelector` - as `key notin (value)` to select the - group of existing pods which pods - will be taken into consideration for - the incoming pod's pod (anti) affinity. - Keys that don't exist in the incoming - pod labels will be ignored. The default - value is empty. The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector isn't - set. This is an alpha field and requires - enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over the - set of namespaces that the term applies - to. The term is applied to the union - of the namespaces selected by this - field and the ones listed in the namespaces - field. null selector and null or empty - namespaces list means "this pod's - namespace". An empty selector ({}) - matches all namespaces. properties: matchExpressions: - description: matchExpressions is - a list of label selector requirements. - The requirements are ANDed. items: - description: A label selector - requirement is a selector that - contains values, a key, and - an operator that relates the - key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to - a set of values. Valid operators - are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an - array of string values. - If the operator is In or - NotIn, the values array - must be non-empty. If the - operator is Exists or DoesNotExist, - the values array must be - empty. This array is replaced - during a strategic merge - patch. items: type: string type: array @@ -2558,42 +1137,15 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map - of {key,value} pairs. A single - {key,value} in the matchLabels - map is equivalent to an element - of matchExpressions, whose key - field is "key", the operator is - "In", and the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies a - static list of namespace names that - the term applies to. The term is applied - to the union of the namespaces listed - in this field and the ones selected - by namespaceSelector. null or empty - namespaces list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be co-located - (affinity) or not co-located (anti-affinity) - with the pods matching the labelSelector - in the specified namespaces, where - co-located is defined as running on - a node whose value of the label with - key topologyKey matches that of any - node on which any of the selected - pods is running. Empty topologyKey - is not allowed. type: string required: - topologyKey @@ -2603,263 +1155,92 @@ spec: type: object type: object args: - description: 'Arguments to the entrypoint. The docker - image''s CMD is used if this is not provided. Variable - references $(VAR_NAME) are expanded using the container''s - environment. If a variable cannot be resolved, the - reference in the input string will be unchanged. - The $(VAR_NAME) syntax can be escaped with a double - $$, ie: $$(VAR_NAME). Escaped references will never - be expanded, regardless of whether the variable - exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' items: type: string type: array containerSecurityContext: - description: 'Security options the pod should run - with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: allowPrivilegeEscalation: - description: 'AllowPrivilegeEscalation controls - whether a process can gain more privileges than - its parent process. This bool directly controls - if the no_new_privs flag will be set on the - container process. AllowPrivilegeEscalation - is true always when the container is: 1) run - as Privileged 2) has CAP_SYS_ADMIN Note that - this field cannot be set when spec.os.name is - windows.' type: boolean appArmorProfile: - description: appArmorProfile is the AppArmor options - to use by this container. If set, this profile - overrides the pod's appArmorProfile. Note that - this field cannot be set when spec.os.name is - windows. properties: localhostProfile: - description: localhostProfile indicates a - profile loaded on the node that should be - used. The profile must be preconfigured - on the node to work. Must match the loaded - name of the profile. Must be set if and - only if type is "Localhost". type: string type: - description: 'type indicates which kind of - AppArmor profile will be applied. Valid - options are: Localhost - a profile pre-loaded - on the node. RuntimeDefault - the container - runtime''s default profile. Unconfined - - no AppArmor enforcement.' type: string required: - type type: object capabilities: - description: The capabilities to add/drop when - running containers. Defaults to the default - set of capabilities granted by the container - runtime. Note that this field cannot be set - when spec.os.name is windows. properties: add: - description: Added capabilities items: - description: Capability represent POSIX - capabilities type type: string type: array x-kubernetes-list-type: atomic drop: - description: Removed capabilities items: - description: Capability represent POSIX - capabilities type type: string type: array x-kubernetes-list-type: atomic type: object privileged: - description: Run container in privileged mode. - Processes in privileged containers are essentially - equivalent to root on the host. Defaults to - false. Note that this field cannot be set when - spec.os.name is windows. type: boolean procMount: - description: procMount denotes the type of proc - mount to use for the containers. The default - is DefaultProcMount which uses the container - runtime defaults for readonly paths and masked - paths. This requires the ProcMountType feature - flag to be enabled. Note that this field cannot - be set when spec.os.name is windows. type: string readOnlyRootFilesystem: - description: Whether this container has a read-only - root filesystem. Default is false. Note that - this field cannot be set when spec.os.name is - windows. type: boolean runAsGroup: - description: The GID to run the entrypoint of - the container process. Uses runtime default - if unset. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. Note that this field cannot be set - when spec.os.name is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container must - run as a non-root user. If true, the Kubelet - will validate the image at runtime to ensure - that it does not run as UID 0 (root) and fail - to start the container if it does. If unset - or false, no such validation will be performed. - May also be set in PodSecurityContext. If set - in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. type: boolean runAsUser: - description: The UID to run the entrypoint of - the container process. Defaults to user specified - in image metadata if unspecified. May also be - set in PodSecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. Note that - this field cannot be set when spec.os.name is - windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be applied - to the container. If unspecified, the container - runtime will allocate a random SELinux context - for each container. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. Note that this field cannot be set - when spec.os.name is windows. properties: level: - description: Level is SELinux level label - that applies to the container. type: string role: - description: Role is a SELinux role label - that applies to the container. type: string type: - description: Type is a SELinux type label - that applies to the container. type: string user: - description: User is a SELinux user label - that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to use by this - container. If seccomp options are provided at - both the pod & container level, the container - options override the pod options. Note that - this field cannot be set when spec.os.name is - windows. properties: localhostProfile: - description: localhostProfile indicates a - profile defined in a file on the node should - be used. The profile must be preconfigured - on the node to work. Must be a descending - path, relative to the kubelet's configured - seccomp profile location. Must be set if - type is "Localhost". Must NOT be set for - any other type. type: string type: - description: "type indicates which kind of - seccomp profile will be applied. Valid options - are: \n Localhost - a profile defined in - a file on the node should be used. RuntimeDefault - - the container runtime default profile - should be used. Unconfined - no profile - should be applied." type: string required: - type type: object windowsOptions: - description: The Windows specific settings applied - to all containers. If unspecified, the options - from the PodSecurityContext will be used. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. Note that this field cannot be set - when spec.os.name is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is where the - GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA credential - spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName is the - name of the GMSA credential spec to use. type: string hostProcess: - description: HostProcess determines if a container - should be run as a 'Host Process' container. - All of a Pod's containers must have the - same effective HostProcess value (it is - not allowed to have a mix of HostProcess - containers and non-HostProcess containers). - In addition, if HostProcess is true then - HostNetwork must also be set to true. type: boolean runAsUserName: - description: The UserName in Windows to run - the entrypoint of the container process. - Defaults to the user specified in image - metadata if unspecified. May also be set - in PodSecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. type: string type: object type: object dnsConfig: - description: Specifies the DNS parameters of a pod. - Parameters specified here will be merged to the - generated DNS configuration based on DNSPolicy. properties: nameservers: - description: A list of DNS name server IP addresses. - This will be appended to the base nameservers - generated from DNSPolicy. Duplicated nameservers - will be removed. items: type: string type: array x-kubernetes-list-type: atomic options: - description: A list of DNS resolver options. This - will be merged with the base options generated - from DNSPolicy. Duplicated entries will be removed. - Resolution options given in Options will override - those that appear in the base DNSPolicy. items: - description: PodDNSConfigOption defines DNS - resolver options of a pod. properties: name: - description: Required. type: string value: type: string @@ -2867,159 +1248,71 @@ spec: type: array x-kubernetes-list-type: atomic searches: - description: A list of DNS search domains for - host-name lookup. This will be appended to the - base search paths generated from DNSPolicy. - Duplicated search paths will be removed. items: type: string type: array x-kubernetes-list-type: atomic type: object dnsPolicy: - description: Set DNS policy for the pod. Defaults - to "ClusterFirst". Valid values are 'ClusterFirstWithHostNet', - 'ClusterFirst', 'Default' or 'None'. DNS parameters - given in DNSConfig will be merged with the policy - selected with DNSPolicy. To have DNS options set - along with hostNetwork, you have to specify DNS - policy explicitly to 'ClusterFirstWithHostNet'. type: string enableServiceLinks: - description: 'EnableServiceLinks indicates whether - information about services should be injected into - pod''s environment variables, matching the syntax - of Docker links. Optional: Defaults to true.' type: boolean env: - description: List of environment variables to set - in the container. Cannot be updated. items: - description: EnvVar represents an environment variable - present in a Container. properties: name: - description: Name of the environment variable. - Must be a C_IDENTIFIER. type: string value: - description: 'Variable references $(VAR_NAME) - are expanded using the previously defined - environment variables in the container and - any service environment variables. If a variable - cannot be resolved, the reference in the input - string will be unchanged. Double $$ are reduced - to a single $, which allows for escaping the - $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will - produce the string literal "$(VAR_NAME)". - Escaped references will never be expanded, - regardless of whether the variable exists - or not. Defaults to "".' type: string valueFrom: - description: Source for the environment variable's - value. Cannot be used if value is not empty. properties: configMapKeyRef: - description: Selects a key of a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value here - are almost certainly wrong. TODO: - Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap - or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field of the pod: - supports metadata.name, metadata.namespace, - `metadata.labels['''']`, `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, - status.hostIP, status.podIP, status.podIPs.' properties: apiVersion: - description: Version of the schema the - FieldPath is written in terms of, - defaults to "v1". type: string fieldPath: - description: Path of the field to select - in the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource of the - container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, - requests.cpu, requests.memory and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: required - for volumes, optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output format - of the exposed resources, defaults - to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource to - select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret in - the pod's namespace properties: key: - description: The key of the secret to - select from. Must be a valid secret - key. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value here - are almost certainly wrong. TODO: - Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret - or its key must be defined type: boolean required: - key @@ -3031,242 +1324,89 @@ spec: type: object type: array hostIPC: - description: 'Use the host''s ipc namespace. Optional: - Default to false.' type: boolean hostNetwork: - description: Host networking requested for this pod. - Use the host's network namespace. If this option - is set, the ports that will be used must be specified. - Default to false. type: boolean hostPID: - description: 'Use the host''s pid namespace. Optional: - Default to false.' type: boolean imagePullSecrets: - description: 'ImagePullSecrets is an optional list - of references to secrets in the same namespace to - use for pulling any of the images used by this PodSpec. - If specified, these secrets will be passed to individual - puller implementations for them to use. More info: - https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod' items: - description: LocalObjectReference contains enough - information to let you locate the referenced object - inside the same namespace. properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic type: array initContainers: - description: 'List of initialization containers belonging - to the pod. Init containers are executed in order - prior to containers being started. If any init container - fails, the pod is considered to have failed and - is handled according to its restartPolicy. The name - for an init container or normal container must be - unique among all containers. Init containers may - not have Lifecycle actions, Readiness probes, or - Liveness probes. The resourceRequirements of an - init container are taken into account during scheduling - by finding the highest request/limit for each resource - type, and then using the max of of that value or - the sum of the normal containers. Limits are applied - to init containers in a similar fashion. Init containers - cannot currently be added or removed. Cannot be - updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/' items: - description: A single application container that - you want to run within a pod. properties: args: - description: 'Arguments to the entrypoint. The - container image''s CMD is used if this is - not provided. Variable references $(VAR_NAME) - are expanded using the container''s environment. - If a variable cannot be resolved, the reference - in the input string will be unchanged. Double - $$ are reduced to a single $, which allows - for escaping the $(VAR_NAME) syntax: i.e. - "$$(VAR_NAME)" will produce the string literal - "$(VAR_NAME)". Escaped references will never - be expanded, regardless of whether the variable - exists or not. Cannot be updated. More info: - https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' items: type: string type: array x-kubernetes-list-type: atomic command: - description: 'Entrypoint array. Not executed - within a shell. The container image''s ENTRYPOINT - is used if this is not provided. Variable - references $(VAR_NAME) are expanded using - the container''s environment. If a variable - cannot be resolved, the reference in the input - string will be unchanged. Double $$ are reduced - to a single $, which allows for escaping the - $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will - produce the string literal "$(VAR_NAME)". - Escaped references will never be expanded, - regardless of whether the variable exists - or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' items: type: string type: array x-kubernetes-list-type: atomic env: - description: List of environment variables to - set in the container. Cannot be updated. items: - description: EnvVar represents an environment - variable present in a Container. properties: name: - description: Name of the environment variable. - Must be a C_IDENTIFIER. type: string value: - description: 'Variable references $(VAR_NAME) - are expanded using the previously defined - environment variables in the container - and any service environment variables. - If a variable cannot be resolved, the - reference in the input string will be - unchanged. Double $$ are reduced to - a single $, which allows for escaping - the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" - will produce the string literal "$(VAR_NAME)". - Escaped references will never be expanded, - regardless of whether the variable exists - or not. Defaults to "".' type: string valueFrom: - description: Source for the environment - variable's value. Cannot be used if - value is not empty. properties: configMapKeyRef: - description: Selects a key of a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the - ConfigMap or its key must be - defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field of the - pod: supports metadata.name, metadata.namespace, - `metadata.labels['''']`, `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, - status.hostIP, status.podIP, status.podIPs.' properties: apiVersion: - description: Version of the schema - the FieldPath is written in - terms of, defaults to "v1". type: string fieldPath: - description: Path of the field - to select in the specified API - version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource of - the container: only resources limits - and requests (limits.cpu, limits.memory, - limits.ephemeral-storage, requests.cpu, - requests.memory and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: - required for volumes, optional - for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource - to select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret - in the pod's namespace properties: key: - description: The key of the secret - to select from. Must be a valid - secret key. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the - Secret or its key must be defined type: boolean required: - key @@ -3281,67 +1421,25 @@ spec: - name x-kubernetes-list-type: map envFrom: - description: List of sources to populate environment - variables in the container. The keys defined - within a source must be a C_IDENTIFIER. All - invalid keys will be reported as an event - when the container is starting. When a key - exists in multiple sources, the value associated - with the last source will take precedence. - Values defined by an Env with a duplicate - key will take precedence. Cannot be updated. items: - description: EnvFromSource represents the - source of a set of ConfigMaps properties: configMapRef: - description: The ConfigMap to select from properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap - must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: - description: An optional identifier to - prepend to each key in the ConfigMap. - Must be a C_IDENTIFIER. type: string secretRef: - description: The Secret to select from properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret - must be defined type: boolean type: object x-kubernetes-map-type: atomic @@ -3349,84 +1447,31 @@ spec: type: array x-kubernetes-list-type: atomic image: - description: 'Container image name. More info: - https://kubernetes.io/docs/concepts/containers/images - This field is optional to allow higher level - config management to default or override container - images in workload controllers like Deployments - and StatefulSets.' type: string imagePullPolicy: - description: 'Image pull policy. One of Always, - Never, IfNotPresent. Defaults to Always if - :latest tag is specified, or IfNotPresent - otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images' type: string lifecycle: - description: Actions that the management system - should take in response to container lifecycle - events. Cannot be updated. properties: postStart: - description: 'PostStart is called immediately - after a container is created. If the handler - fails, the container is terminated and - restarted according to its restart policy. - Other management of the container blocks - until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the - command is root ('/') in the - container's filesystem. The command - is simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, you - need to explicitly call out to - that shell. Exit status of 0 is - treated as live/healthy and non-zero - is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in - httpHeaders instead. type: string httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood - as the same header. type: string value: - description: The header field - value type: string required: - name @@ -3435,134 +1480,58 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the - HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration - that the container should sleep before - being terminated. properties: seconds: - description: Seconds is the number - of seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is - NOT supported as a LifecycleHandler - and kept for the backward compatibility. - There are no validation of this field - and lifecycle hooks will fail in runtime - when tcp handler is specified. properties: host: - description: 'Optional: Host name - to connect to, defaults to the - pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object type: object preStop: - description: 'PreStop is called immediately - before a container is terminated due to - an API request or management event such - as liveness/startup probe failure, preemption, - resource contention, etc. The handler - is not called if the container crashes - or exits. The Pod''s termination grace - period countdown begins before the PreStop - hook is executed. Regardless of the outcome - of the handler, the container will eventually - terminate within the Pod''s termination - grace period (unless delayed by finalizers). - Other management of the container blocks - until the hook completes or until the - termination grace period is reached. More - info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the - command is root ('/') in the - container's filesystem. The command - is simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, you - need to explicitly call out to - that shell. Exit status of 0 is - treated as live/healthy and non-zero - is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in - httpHeaders instead. type: string httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood - as the same header. type: string value: - description: The header field - value type: string required: - name @@ -3571,59 +1540,33 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the - HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration - that the container should sleep before - being terminated. properties: seconds: - description: Seconds is the number - of seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is - NOT supported as a LifecycleHandler - and kept for the backward compatibility. - There are no validation of this field - and lifecycle hooks will fail in runtime - when tcp handler is specified. properties: host: - description: 'Optional: Host name - to connect to, defaults to the - pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port @@ -3631,87 +1574,38 @@ spec: type: object type: object livenessProbe: - description: 'Periodic probe of container liveness. - Container will be restarted if the probe fails. - Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to - take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it is - not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to - explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults to 3. - Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving - a GRPC port. properties: port: - description: Port number of the gRPC - service. Number must be in the range - 1 to 65535. format: int32 type: integer service: - description: "Service is the name of - the service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default - behavior is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect to, - defaults to the pod IP. You probably - want to set "Host" in httpHeaders - instead. type: string httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in HTTP - probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood as - the same header. type: string value: - description: The header field - value type: string required: - name @@ -3720,145 +1614,62 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP - server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port - to access on the container. Number - must be in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the - container has started before liveness - probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform - the probe. Default to 10 seconds. Minimum - value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. Must - be 1 for liveness and startup. Minimum - value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action - involving a TCP port. properties: host: - description: 'Optional: Host name to - connect to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port - to access on the container. Number - must be in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully - upon probe failure. The grace period is - the duration in seconds after the processes - running in the pod are sent a termination - signal and the time when the processes - are forcibly halted with a kill signal. - Set this value longer than the expected - cleanup time for your process. If this - value is nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value overrides - the value provided by the pod spec. Value - must be non-negative integer. The value - zero indicates stop immediately via the - kill signal (no opportunity to shut down). - This is a beta field and requires enabling - ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which - the probe times out. Defaults to 1 second. - Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object name: - description: Name of the container specified - as a DNS_LABEL. Each container in a pod must - have a unique name (DNS_LABEL). Cannot be - updated. type: string ports: - description: List of ports to expose from the - container. Not specifying a port here DOES - NOT prevent that port from being exposed. - Any port which is listening on the default - "0.0.0.0" address inside a container will - be accessible from the network. Modifying - this array with strategic merge patch may - corrupt the data. For more information See - https://github.com/kubernetes/kubernetes/issues/108255. - Cannot be updated. items: - description: ContainerPort represents a network - port in a single container. properties: containerPort: - description: Number of port to expose - on the pod's IP address. This must be - a valid port number, 0 < x < 65536. format: int32 type: integer hostIP: - description: What host IP to bind the - external port to. type: string hostPort: - description: Number of port to expose - on the host. If specified, this must - be a valid port number, 0 < x < 65536. - If HostNetwork is specified, this must - match ContainerPort. Most containers - do not need this. format: int32 type: integer name: - description: If specified, this must be - an IANA_SVC_NAME and unique within the - pod. Each named port in a pod must have - a unique name. Name for the port that - can be referred to by services. type: string protocol: default: TCP - description: Protocol for port. Must be - UDP, TCP, or SCTP. Defaults to "TCP". type: string required: - containerPort @@ -3869,88 +1680,38 @@ spec: - protocol x-kubernetes-list-type: map readinessProbe: - description: 'Periodic probe of container service - readiness. Container will be removed from - service endpoints if the probe fails. Cannot - be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to - take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it is - not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to - explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults to 3. - Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving - a GRPC port. properties: port: - description: Port number of the gRPC - service. Number must be in the range - 1 to 65535. format: int32 type: integer service: - description: "Service is the name of - the service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default - behavior is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect to, - defaults to the pod IP. You probably - want to set "Host" in httpHeaders - instead. type: string httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in HTTP - probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood as - the same header. type: string value: - description: The header field - value type: string required: - name @@ -3959,110 +1720,51 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP - server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port - to access on the container. Number - must be in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the - container has started before liveness - probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform - the probe. Default to 10 seconds. Minimum - value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. Must - be 1 for liveness and startup. Minimum - value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action - involving a TCP port. properties: host: - description: 'Optional: Host name to - connect to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port - to access on the container. Number - must be in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully - upon probe failure. The grace period is - the duration in seconds after the processes - running in the pod are sent a termination - signal and the time when the processes - are forcibly halted with a kill signal. - Set this value longer than the expected - cleanup time for your process. If this - value is nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value overrides - the value provided by the pod spec. Value - must be non-negative integer. The value - zero indicates stop immediately via the - kill signal (no opportunity to shut down). - This is a beta field and requires enabling - ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which - the probe times out. Defaults to 1 second. - Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object resizePolicy: - description: Resources resize policy for the - container. items: - description: ContainerResizePolicy represents - resource resize policy for the container. properties: resourceName: - description: 'Name of the resource to - which this resource resize policy applies. - Supported values: cpu, memory.' type: string restartPolicy: - description: Restart policy to apply when - specified resource is resized. If not - specified, it defaults to NotRequired. type: string required: - resourceName @@ -4071,28 +1773,11 @@ spec: type: array x-kubernetes-list-type: atomic resources: - description: 'Compute Resources required by - this container. Cannot be updated. More info: - https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' properties: claims: - description: "Claims lists the names of - resources, defined in spec.resourceClaims, - that are used by this container. \n This - is an alpha field and requires enabling - the DynamicResourceAllocation feature - gate. \n This field is immutable. It can - only be set for containers." items: - description: ResourceClaim references - one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name - of one entry in pod.spec.resourceClaims - of the Pod where this field is used. - It makes that resource available - inside a container. type: string required: - name @@ -4108,9 +1793,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum - amount of compute resources allowed. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -4119,365 +1801,115 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum - amount of compute resources required. - If Requests is omitted for a container, - it defaults to Limits if that is explicitly - specified, otherwise to an implementation-defined - value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object restartPolicy: - description: 'RestartPolicy defines the restart - behavior of individual containers in a pod. - This field may only be set for init containers, - and the only allowed value is "Always". For - non-init containers or when this field is - not specified, the restart behavior is defined - by the Pod''s restart policy and the container - type. Setting the RestartPolicy as "Always" - for the init container will have the following - effect: this init container will be continually - restarted on exit until all regular containers - have terminated. Once all regular containers - have completed, all init containers with restartPolicy - "Always" will be shut down. This lifecycle - differs from normal init containers and is - often referred to as a "sidecar" container. - Although this init container still starts - in the init container sequence, it does not - wait for the container to complete before - proceeding to the next init container. Instead, - the next init container starts immediately - after this init container is started, or after - any startupProbe has successfully completed.' type: string securityContext: - description: 'SecurityContext defines the security - options the container should be run with. - If set, the fields of SecurityContext override - the equivalent fields of PodSecurityContext. - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: allowPrivilegeEscalation: - description: 'AllowPrivilegeEscalation controls - whether a process can gain more privileges - than its parent process. This bool directly - controls if the no_new_privs flag will - be set on the container process. AllowPrivilegeEscalation - is true always when the container is: - 1) run as Privileged 2) has CAP_SYS_ADMIN - Note that this field cannot be set when - spec.os.name is windows.' type: boolean appArmorProfile: - description: appArmorProfile is the AppArmor - options to use by this container. If set, - this profile overrides the pod's appArmorProfile. - Note that this field cannot be set when - spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile loaded on the node that - should be used. The profile must be - preconfigured on the node to work. - Must match the loaded name of the - profile. Must be set if and only if - type is "Localhost". type: string type: - description: 'type indicates which kind - of AppArmor profile will be applied. - Valid options are: Localhost - a profile - pre-loaded on the node. RuntimeDefault - - the container runtime''s default - profile. Unconfined - no AppArmor - enforcement.' type: string required: - type type: object capabilities: - description: The capabilities to add/drop - when running containers. Defaults to the - default set of capabilities granted by - the container runtime. Note that this - field cannot be set when spec.os.name - is windows. properties: add: - description: Added capabilities items: - description: Capability represent - POSIX capabilities type type: string type: array x-kubernetes-list-type: atomic drop: - description: Removed capabilities items: - description: Capability represent - POSIX capabilities type type: string type: array x-kubernetes-list-type: atomic type: object privileged: - description: Run container in privileged - mode. Processes in privileged containers - are essentially equivalent to root on - the host. Defaults to false. Note that - this field cannot be set when spec.os.name - is windows. type: boolean procMount: - description: procMount denotes the type - of proc mount to use for the containers. - The default is DefaultProcMount which - uses the container runtime defaults for - readonly paths and masked paths. This - requires the ProcMountType feature flag - to be enabled. Note that this field cannot - be set when spec.os.name is windows. type: string readOnlyRootFilesystem: - description: Whether this container has - a read-only root filesystem. Default is - false. Note that this field cannot be - set when spec.os.name is windows. type: boolean runAsGroup: - description: The GID to run the entrypoint - of the container process. Uses runtime - default if unset. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container - must run as a non-root user. If true, - the Kubelet will validate the image at - runtime to ensure that it does not run - as UID 0 (root) and fail to start the - container if it does. If unset or false, - no such validation will be performed. - May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: boolean runAsUser: - description: The UID to run the entrypoint - of the container process. Defaults to - user specified in image metadata if unspecified. - May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be applied - to the container. If unspecified, the - container runtime will allocate a random - SELinux context for each container. May - also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is windows. properties: level: - description: Level is SELinux level - label that applies to the container. type: string role: - description: Role is a SELinux role - label that applies to the container. type: string type: - description: Type is a SELinux type - label that applies to the container. type: string user: - description: User is a SELinux user - label that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to use - by this container. If seccomp options - are provided at both the pod & container - level, the container options override - the pod options. Note that this field - cannot be set when spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile defined in a file on the - node should be used. The profile must - be preconfigured on the node to work. - Must be a descending path, relative - to the kubelet's configured seccomp - profile location. Must be set if type - is "Localhost". Must NOT be set for - any other type. type: string type: - description: "type indicates which kind - of seccomp profile will be applied. - Valid options are: \n Localhost - - a profile defined in a file on the - node should be used. RuntimeDefault - - the container runtime default profile - should be used. Unconfined - no profile - should be applied." type: string required: - type type: object windowsOptions: - description: The Windows specific settings - applied to all containers. If unspecified, - the options from the PodSecurityContext - will be used. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. Note - that this field cannot be set when spec.os.name - is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is where - the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA credential - spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName - is the name of the GMSA credential - spec to use. type: string hostProcess: - description: HostProcess determines - if a container should be run as a - 'Host Process' container. All of a - Pod's containers must have the same - effective HostProcess value (it is - not allowed to have a mix of HostProcess - containers and non-HostProcess containers). - In addition, if HostProcess is true - then HostNetwork must also be set - to true. type: boolean runAsUserName: - description: The UserName in Windows - to run the entrypoint of the container - process. Defaults to the user specified - in image metadata if unspecified. - May also be set in PodSecurityContext. - If set in both SecurityContext and - PodSecurityContext, the value specified - in SecurityContext takes precedence. type: string type: object type: object startupProbe: - description: 'StartupProbe indicates that the - Pod has successfully initialized. If specified, - no other probes are executed until this completes - successfully. If this probe fails, the Pod - will be restarted, just as if the livenessProbe - failed. This can be used to provide different - probe parameters at the beginning of a Pod''s - lifecycle, when it might take a long time - to load data or warm a cache, than during - steady-state operation. This cannot be updated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to - take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it is - not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to - explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults to 3. - Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving - a GRPC port. properties: port: - description: Port number of the gRPC - service. Number must be in the range - 1 to 65535. format: int32 type: integer service: - description: "Service is the name of - the service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default - behavior is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect to, - defaults to the pod IP. You probably - want to set "Host" in httpHeaders - instead. type: string httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in HTTP - probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood as - the same header. type: string value: - description: The header field - value type: string required: - name @@ -4486,160 +1918,61 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP - server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port - to access on the container. Number - must be in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the - container has started before liveness - probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform - the probe. Default to 10 seconds. Minimum - value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. Must - be 1 for liveness and startup. Minimum - value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action - involving a TCP port. properties: host: - description: 'Optional: Host name to - connect to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port - to access on the container. Number - must be in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully - upon probe failure. The grace period is - the duration in seconds after the processes - running in the pod are sent a termination - signal and the time when the processes - are forcibly halted with a kill signal. - Set this value longer than the expected - cleanup time for your process. If this - value is nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value overrides - the value provided by the pod spec. Value - must be non-negative integer. The value - zero indicates stop immediately via the - kill signal (no opportunity to shut down). - This is a beta field and requires enabling - ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which - the probe times out. Defaults to 1 second. - Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object stdin: - description: Whether this container should allocate - a buffer for stdin in the container runtime. - If this is not set, reads from stdin in the - container will always result in EOF. Default - is false. type: boolean stdinOnce: - description: Whether the container runtime should - close the stdin channel after it has been - opened by a single attach. When stdin is true - the stdin stream will remain open across multiple - attach sessions. If stdinOnce is set to true, - stdin is opened on container start, is empty - until the first client attaches to stdin, - and then remains open and accepts data until - the client disconnects, at which time stdin - is closed and remains closed until the container - is restarted. If this flag is false, a container - processes that reads from stdin will never - receive an EOF. Default is false type: boolean terminationMessagePath: - description: 'Optional: Path at which the file - to which the container''s termination message - will be written is mounted into the container''s - filesystem. Message written is intended to - be brief final status, such as an assertion - failure message. Will be truncated by the - node if greater than 4096 bytes. The total - message length across all containers will - be limited to 12kb. Defaults to /dev/termination-log. - Cannot be updated.' type: string terminationMessagePolicy: - description: Indicate how the termination message - should be populated. File will use the contents - of terminationMessagePath to populate the - container status message on both success and - failure. FallbackToLogsOnError will use the - last chunk of container log output if the - termination message file is empty and the - container exited with an error. The log output - is limited to 2048 bytes or 80 lines, whichever - is smaller. Defaults to File. Cannot be updated. type: string tty: - description: Whether this container should allocate - a TTY for itself, also requires 'stdin' to - be true. Default is false. type: boolean volumeDevices: - description: volumeDevices is the list of block - devices to be used by the container. items: - description: volumeDevice describes a mapping - of a raw block device within a container. properties: devicePath: - description: devicePath is the path inside - of the container that the device will - be mapped to. type: string name: - description: name must match the name - of a persistentVolumeClaim in the pod type: string required: - devicePath @@ -4650,75 +1983,21 @@ spec: - devicePath x-kubernetes-list-type: map volumeMounts: - description: Pod volumes to mount into the container's - filesystem. Cannot be updated. items: - description: VolumeMount describes a mounting - of a Volume within a container. properties: mountPath: - description: Path within the container - at which the volume should be mounted. Must - not contain ':'. type: string mountPropagation: - description: mountPropagation determines - how mounts are propagated from the host - to container and the other way around. - When not set, MountPropagationNone is - used. This field is beta in 1.10. When - RecursiveReadOnly is set to IfPossible - or to Enabled, MountPropagation must - be None or unspecified (which defaults - to None). type: string name: - description: This must match the Name - of a Volume. type: string readOnly: - description: Mounted read-only if true, - read-write otherwise (false or unspecified). - Defaults to false. type: boolean recursiveReadOnly: - description: "RecursiveReadOnly specifies - whether read-only mounts should be handled - recursively. \n If ReadOnly is false, - this field has no meaning and must be - unspecified. \n If ReadOnly is true, - and this field is set to Disabled, the - mount is not made recursively read-only. - \ If this field is set to IfPossible, - the mount is made recursively read-only, - if it is supported by the container - runtime. If this field is set to Enabled, - the mount is made recursively read-only - if it is supported by the container - runtime, otherwise the pod will not - be started and an error will be generated - to indicate the reason. \n If this field - is set to IfPossible or Enabled, MountPropagation - must be set to None (or be unspecified, - which defaults to None). \n If this - field is not specified, it is treated - as an equivalent of Disabled." type: string subPath: - description: Path within the volume from - which the container's volume should - be mounted. Defaults to "" (volume's - root). type: string subPathExpr: - description: Expanded path within the - volume from which the container's volume - should be mounted. Behaves similarly - to SubPath but environment variable - references $(VAR_NAME) are expanded - using the container's environment. Defaults - to "" (volume's root). SubPathExpr and - SubPath are mutually exclusive. type: string required: - mountPath @@ -4729,74 +2008,33 @@ spec: - mountPath x-kubernetes-list-type: map workingDir: - description: Container's working directory. - If not specified, the container runtime's - default will be used, which might be configured - in the container image. Cannot be updated. type: string required: - name type: object type: array lifecycle: - description: Actions that the management system should - take in response to container lifecycle events. - Cannot be updated. properties: postStart: - description: 'PostStart is called immediately - after a container is created. If the handler - fails, the container is terminated and restarted - according to its restart policy. Other management - of the container blocks until the hook completes. - More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action to - take. properties: command: - description: Command is the command line - to execute inside the container, the - working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it is - not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to explicitly - call out to that shell. Exit status - of 0 is treated as live/healthy and - non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http request - to perform. properties: host: - description: Host name to connect to, - defaults to the pod IP. You probably - want to set "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated headers. items: - description: HTTPHeader describes a - custom header to be used in HTTP probes properties: name: - description: The header field name. - This will be canonicalized upon - output, so case-variant names - will be understood as the same - header. type: string value: - description: The header field value type: string required: - name @@ -4805,125 +2043,58 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP - server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration - that the container should sleep before being - terminated. properties: seconds: - description: Seconds is the number of - seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is NOT - supported as a LifecycleHandler and kept - for the backward compatibility. There are - no validation of this field and lifecycle - hooks will fail in runtime when tcp handler - is specified. properties: host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object type: object preStop: - description: 'PreStop is called immediately before - a container is terminated due to an API request - or management event such as liveness/startup - probe failure, preemption, resource contention, - etc. The handler is not called if the container - crashes or exits. The Pod''s termination grace - period countdown begins before the PreStop hook - is executed. Regardless of the outcome of the - handler, the container will eventually terminate - within the Pod''s termination grace period (unless - delayed by finalizers). Other management of - the container blocks until the hook completes - or until the termination grace period is reached. - More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action to - take. properties: command: - description: Command is the command line - to execute inside the container, the - working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it is - not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to explicitly - call out to that shell. Exit status - of 0 is treated as live/healthy and - non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http request - to perform. properties: host: - description: Host name to connect to, - defaults to the pod IP. You probably - want to set "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated headers. items: - description: HTTPHeader describes a - custom header to be used in HTTP probes properties: name: - description: The header field name. - This will be canonicalized upon - output, so case-variant names - will be understood as the same - header. type: string value: - description: The header field value type: string required: - name @@ -4932,58 +2103,33 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP - server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration - that the container should sleep before being - terminated. properties: seconds: - description: Seconds is the number of - seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is NOT - supported as a LifecycleHandler and kept - for the backward compatibility. There are - no validation of this field and lifecycle - hooks will fail in runtime when tcp handler - is specified. properties: host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port @@ -4991,81 +2137,38 @@ spec: type: object type: object livenessProbe: - description: 'Periodic probe of container liveness. - Container will be restarted if the probe fails. - Controllers may set default LivenessProbe if no - liveness probe is provided. To ignore defaulting, - set the value to empty LivenessProbe "{}". Cannot - be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to take. properties: command: - description: Command is the command line to - execute inside the container, the working - directory for the command is root ('/') - in the container's filesystem. The command - is simply exec'd, it is not run inside a - shell, so traditional shell instructions - ('|', etc) won't work. To use a shell, you - need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures for - the probe to be considered failed after having - succeeded. Defaults to 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving - a GRPC port. properties: port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name of the service - to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default - behavior is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http request - to perform. properties: host: - description: Host name to connect to, defaults - to the pod IP. You probably want to set - "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in the - request. HTTP allows repeated headers. items: - description: HTTPHeader describes a custom - header to be used in HTTP probes properties: name: - description: The header field name. - This will be canonicalized upon output, - so case-variant names will be understood - as the same header. type: string value: - description: The header field value type: string required: - name @@ -5074,212 +2177,95 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port to - access on the container. Number must be - in the range 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the container - has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform - the probe. Default to 10 seconds. Minimum value - is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes for - the probe to be considered successful after - having failed. Defaults to 1. Must be 1 for - liveness and startup. Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. properties: host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port to - access on the container. Number must be - in the range 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds the - pod needs to terminate gracefully upon probe - failure. The grace period is the duration in - seconds after the processes running in the pod - are sent a termination signal and the time when - the processes are forcibly halted with a kill - signal. Set this value longer than the expected - cleanup time for your process. If this value - is nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value overrides - the value provided by the pod spec. Value must - be non-negative integer. The value zero indicates - stop immediately via the kill signal (no opportunity - to shut down). This is a beta field and requires - enabling ProbeTerminationGracePeriod feature - gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which the - probe times out. Defaults to 1 second. Minimum - value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object nodeSelector: additionalProperties: type: string - description: 'NodeSelector is a selector which must - be true for the pod to fit on a node. Selector which - must match a node''s labels for the pod to be scheduled - on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/' type: object x-kubernetes-map-type: atomic podPlacementPolicy: - description: PodPlacementPolicy is the reference of - the podPlacementPolicy properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are almost - certainly wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic priority: - description: The priority value. Various system components - use this field to find the priority of the pod. - When Priority Admission Controller is enabled, it - prevents users from setting this field. The admission - controller populates this field from PriorityClassName. - The higher the value, the higher the priority. format: int32 type: integer priorityClassName: - description: If specified, indicates the pod's priority. - "system-node-critical" and "system-cluster-critical" - are two special keywords which indicate the highest - priorities with the former being the highest priority. - Any other name must be defined by creating a PriorityClass - object with that name. If not specified, the pod - priority will be default or zero if there is no - default. type: string readinessProbe: - description: 'Periodic probe of container service - readiness. Container will be removed from service - endpoints if the probe fails. Cannot be updated. - Controllers may set default ReadinessProbe if no - readyness probe is provided. To ignore defaulting, - set the value to empty ReadynessProbe "{}". More - info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to take. properties: command: - description: Command is the command line to - execute inside the container, the working - directory for the command is root ('/') - in the container's filesystem. The command - is simply exec'd, it is not run inside a - shell, so traditional shell instructions - ('|', etc) won't work. To use a shell, you - need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures for - the probe to be considered failed after having - succeeded. Defaults to 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving - a GRPC port. properties: port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name of the service - to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default - behavior is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http request - to perform. properties: host: - description: Host name to connect to, defaults - to the pod IP. You probably want to set - "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in the - request. HTTP allows repeated headers. items: - description: HTTPHeader describes a custom - header to be used in HTTP probes properties: name: - description: The header field name. - This will be canonicalized upon output, - so case-variant names will be understood - as the same header. type: string value: - description: The header field value type: string required: - name @@ -5288,110 +2274,51 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port to - access on the container. Number must be - in the range 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the container - has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform - the probe. Default to 10 seconds. Minimum value - is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes for - the probe to be considered successful after - having failed. Defaults to 1. Must be 1 for - liveness and startup. Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. properties: host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port to - access on the container. Number must be - in the range 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds the - pod needs to terminate gracefully upon probe - failure. The grace period is the duration in - seconds after the processes running in the pod - are sent a termination signal and the time when - the processes are forcibly halted with a kill - signal. Set this value longer than the expected - cleanup time for your process. If this value - is nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value overrides - the value provided by the pod spec. Value must - be non-negative integer. The value zero indicates - stop immediately via the kill signal (no opportunity - to shut down). This is a beta field and requires - enabling ProbeTerminationGracePeriod feature - gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which the - probe times out. Defaults to 1 second. Minimum - value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object resources: - description: Compute Resources required by the sidecar - container. properties: claims: - description: "Claims lists the names of resources, - defined in spec.resourceClaims, that are used - by this container. \n This is an alpha field - and requires enabling the DynamicResourceAllocation - feature gate. \n This field is immutable. It - can only be set for containers." items: - description: ResourceClaim references one entry - in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of - one entry in pod.spec.resourceClaims of - the Pod where this field is used. It makes - that resource available inside a container. type: string required: - name @@ -5407,8 +2334,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount - of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -5417,206 +2342,68 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount - of compute resources required. If Requests is - omitted for a container, it defaults to Limits - if that is explicitly specified, otherwise to - an implementation-defined value. Requests cannot - exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object runtimeClassName: - description: 'RuntimeClassName refers to a RuntimeClass - object in the node.k8s.io group, which should be - used to run this pod. If no RuntimeClass resource - matches the named class, the pod will not be run. - If unset or empty, the "legacy" RuntimeClass will - be used, which is an implicit class with an empty - definition that uses the default runtime handler. - More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class' type: string schedulerName: - description: If specified, the pod will be dispatched - by specified scheduler. If not specified, the pod - will be dispatched by default scheduler. type: string securityContext: - description: 'SecurityContext holds pod-level security - attributes and common container settings. Optional: - Defaults to empty. See type description for default - values of each field.' properties: appArmorProfile: - description: appArmorProfile is the AppArmor options - to use by the containers in this pod. Note that - this field cannot be set when spec.os.name is - windows. properties: localhostProfile: - description: localhostProfile indicates a - profile loaded on the node that should be - used. The profile must be preconfigured - on the node to work. Must match the loaded - name of the profile. Must be set if and - only if type is "Localhost". type: string type: - description: 'type indicates which kind of - AppArmor profile will be applied. Valid - options are: Localhost - a profile pre-loaded - on the node. RuntimeDefault - the container - runtime''s default profile. Unconfined - - no AppArmor enforcement.' type: string required: - type type: object fsGroup: - description: "A special supplemental group that - applies to all containers in a pod. Some volume - types allow the Kubelet to change the ownership - of that volume to be owned by the pod: \n 1. - The owning GID will be the FSGroup 2. The setgid - bit is set (new files created in the volume - will be owned by FSGroup) 3. The permission - bits are OR'd with rw-rw---- \n If unset, the - Kubelet will not modify the ownership and permissions - of any volume. Note that this field cannot be - set when spec.os.name is windows." format: int64 type: integer fsGroupChangePolicy: - description: 'fsGroupChangePolicy defines behavior - of changing ownership and permission of the - volume before being exposed inside Pod. This - field will only apply to volume types which - support fsGroup based ownership(and permissions). - It will have no effect on ephemeral volume types - such as: secret, configmaps and emptydir. Valid - values are "OnRootMismatch" and "Always". If - not specified, "Always" is used. Note that this - field cannot be set when spec.os.name is windows.' type: string runAsGroup: - description: The GID to run the entrypoint of - the container process. Uses runtime default - if unset. May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence for that container. Note that this - field cannot be set when spec.os.name is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container must - run as a non-root user. If true, the Kubelet - will validate the image at runtime to ensure - that it does not run as UID 0 (root) and fail - to start the container if it does. If unset - or false, no such validation will be performed. - May also be set in SecurityContext. If set - in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. type: boolean runAsUser: - description: The UID to run the entrypoint of - the container process. Defaults to user specified - in image metadata if unspecified. May also be - set in SecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence for that - container. Note that this field cannot be set - when spec.os.name is windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be applied - to all containers. If unspecified, the container - runtime will allocate a random SELinux context - for each container. May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence for that container. Note that this - field cannot be set when spec.os.name is windows. properties: level: - description: Level is SELinux level label - that applies to the container. type: string role: - description: Role is a SELinux role label - that applies to the container. type: string type: - description: Type is a SELinux type label - that applies to the container. type: string user: - description: User is a SELinux user label - that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to use by the - containers in this pod. Note that this field - cannot be set when spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates a - profile defined in a file on the node should - be used. The profile must be preconfigured - on the node to work. Must be a descending - path, relative to the kubelet's configured - seccomp profile location. Must be set if - type is "Localhost". Must NOT be set for - any other type. type: string type: - description: "type indicates which kind of - seccomp profile will be applied. Valid options - are: \n Localhost - a profile defined in - a file on the node should be used. RuntimeDefault - - the container runtime default profile - should be used. Unconfined - no profile - should be applied." type: string required: - type type: object supplementalGroups: - description: A list of groups applied to the first - process run in each container, in addition to - the container's primary GID, the fsGroup (if - specified), and group memberships defined in - the container image for the uid of the container - process. If unspecified, no additional groups - are added to any container. Note that group - memberships defined in the container image for - the uid of the container process are still effective, - even if they are not included in this list. - Note that this field cannot be set when spec.os.name - is windows. items: format: int64 type: integer type: array x-kubernetes-list-type: atomic sysctls: - description: Sysctls hold a list of namespaced - sysctls used for the pod. Pods with unsupported - sysctls (by the container runtime) might fail - to launch. Note that this field cannot be set - when spec.os.name is windows. items: - description: Sysctl defines a kernel parameter - to be set properties: name: - description: Name of a property to set type: string value: - description: Value of a property to set type: string required: - name @@ -5625,167 +2412,53 @@ spec: type: array x-kubernetes-list-type: atomic windowsOptions: - description: The Windows specific settings applied - to all containers. If unspecified, the options - within a container's SecurityContext will be - used. If set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. Note that this field cannot be set - when spec.os.name is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is where the - GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA credential - spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName is the - name of the GMSA credential spec to use. type: string hostProcess: - description: HostProcess determines if a container - should be run as a 'Host Process' container. - All of a Pod's containers must have the - same effective HostProcess value (it is - not allowed to have a mix of HostProcess - containers and non-HostProcess containers). - In addition, if HostProcess is true then - HostNetwork must also be set to true. type: boolean runAsUserName: - description: The UserName in Windows to run - the entrypoint of the container process. - Defaults to the user specified in image - metadata if unspecified. May also be set - in PodSecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. type: string type: object type: object serviceAccountName: - description: 'ServiceAccountName is the name of the - ServiceAccount to use to run this pod. More info: - https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/' type: string shareProcessNamespace: - description: 'Share a single process namespace between - all of the containers in a pod. When this is set - containers will be able to view and signal processes - from other containers in the same pod, and the first - process in each container will not be assigned PID - 1. HostPID and ShareProcessNamespace cannot both - be set. Optional: Default to false.' type: boolean terminationGracePeriodSeconds: - description: Optional duration in seconds the pod - needs to terminate gracefully. May be decreased - in delete request. Value must be non-negative integer. - The value zero indicates stop immediately via the - kill signal (no opportunity to shut down). If this - value is nil, the default grace period will be used - instead. The grace period is the duration in seconds - after the processes running in the pod are sent - a termination signal and the time when the processes - are forcibly halted with a kill signal. Set this - value longer than the expected cleanup time for - your process. Defaults to 30 seconds. format: int64 type: integer tolerations: - description: If specified, the pod's tolerations. items: - description: The pod this Toleration is attached - to tolerates any taint that matches the triple - using the matching operator - . properties: effect: - description: Effect indicates the taint effect - to match. Empty means match all taint effects. - When specified, allowed values are NoSchedule, - PreferNoSchedule and NoExecute. type: string key: - description: Key is the taint key that the toleration - applies to. Empty means match all taint keys. - If the key is empty, operator must be Exists; - this combination means to match all values - and all keys. type: string operator: - description: Operator represents a key's relationship - to the value. Valid operators are Exists and - Equal. Defaults to Equal. Exists is equivalent - to wildcard for value, so that a pod can tolerate - all taints of a particular category. type: string tolerationSeconds: - description: TolerationSeconds represents the - period of time the toleration (which must - be of effect NoExecute, otherwise this field - is ignored) tolerates the taint. By default, - it is not set, which means tolerate the taint - forever (do not evict). Zero and negative - values will be treated as 0 (evict immediately) - by the system. format: int64 type: integer value: - description: Value is the taint value the toleration - matches to. If the operator is Exists, the - value should be empty, otherwise just a regular - string. type: string type: object type: array topologySpreadConstraints: - description: TopologySpreadConstraints describes how - a group of pods ought to spread across topology - domains. Scheduler will schedule pods in a way which - abides by the constraints. All topologySpreadConstraints - are ANDed. items: - description: TopologySpreadConstraint specifies - how to spread matching pods among the given topology. properties: labelSelector: - description: LabelSelector is used to find matching - pods. Pods that match this label selector - are counted to determine the number of pods - in their corresponding topology domain. properties: matchExpressions: - description: matchExpressions is a list - of label selector requirements. The requirements - are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label key - that the selector applies to. type: string operator: - description: operator represents a - key's relationship to a set of values. - Valid operators are In, NotIn, Exists - and DoesNotExist. type: string values: - description: values is an array of - string values. If the operator is - In or NotIn, the values array must - be non-empty. If the operator is - Exists or DoesNotExist, the values - array must be empty. This array - is replaced during a strategic merge - patch. items: type: string type: array @@ -5799,156 +2472,27 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: "MatchLabelKeys is a set of pod - label keys to select the pods over which spreading - will be calculated. The keys are used to lookup - values from the incoming pod labels, those - key-value labels are ANDed with labelSelector - to select the group of existing pods over - which spreading will be calculated for the - incoming pod. The same key is forbidden to - exist in both MatchLabelKeys and LabelSelector. - MatchLabelKeys cannot be set when LabelSelector - isn't set. Keys that don't exist in the incoming - pod labels will be ignored. A null or empty - list means only match against labelSelector. - \n This is a beta field and requires the MatchLabelKeysInPodTopologySpread - feature gate to be enabled (enabled by default)." items: type: string type: array x-kubernetes-list-type: atomic maxSkew: - description: 'MaxSkew describes the degree to - which pods may be unevenly distributed. When - `whenUnsatisfiable=DoNotSchedule`, it is the - maximum permitted difference between the number - of matching pods in the target topology and - the global minimum. The global minimum is - the minimum number of matching pods in an - eligible domain or zero if the number of eligible - domains is less than MinDomains. For example, - in a 3-zone cluster, MaxSkew is set to 1, - and pods with the same labelSelector spread - as 2/2/1: In this case, the global minimum - is 1. | zone1 | zone2 | zone3 | | P P | P - P | P | - if MaxSkew is 1, incoming pod - can only be scheduled to zone3 to become 2/2/2; - scheduling it onto zone1(zone2) would make - the ActualSkew(3-1) on zone1(zone2) violate - MaxSkew(1). - if MaxSkew is 2, incoming pod - can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, - it is used to give higher precedence to topologies - that satisfy it. It''s a required field. Default - value is 1 and 0 is not allowed.' format: int32 type: integer minDomains: - description: "MinDomains indicates a minimum - number of eligible domains. When the number - of eligible domains with matching topology - keys is less than minDomains, Pod Topology - Spread treats \"global minimum\" as 0, and - then the calculation of Skew is performed. - And when the number of eligible domains with - matching topology keys equals or greater than - minDomains, this value has no effect on scheduling. - As a result, when the number of eligible domains - is less than minDomains, scheduler won't schedule - more than maxSkew Pods to those domains. If - value is nil, the constraint behaves as if - MinDomains is equal to 1. Valid values are - integers greater than 0. When value is not - nil, WhenUnsatisfiable must be DoNotSchedule. - \n For example, in a 3-zone cluster, MaxSkew - is set to 2, MinDomains is set to 5 and pods - with the same labelSelector spread as 2/2/2: - | zone1 | zone2 | zone3 | | P P | P P | - \ P P | The number of domains is less than - 5(MinDomains), so \"global minimum\" is treated - as 0. In this situation, new pod with the - same labelSelector cannot be scheduled, because - computed skew will be 3(3 - 0) if new Pod - is scheduled to any of the three zones, it - will violate MaxSkew." format: int32 type: integer nodeAffinityPolicy: - description: "NodeAffinityPolicy indicates how - we will treat Pod's nodeAffinity/nodeSelector - when calculating pod topology spread skew. - Options are: - Honor: only nodes matching - nodeAffinity/nodeSelector are included in - the calculations. - Ignore: nodeAffinity/nodeSelector - are ignored. All nodes are included in the - calculations. \n If this value is nil, the - behavior is equivalent to the Honor policy. - This is a beta-level feature default enabled - by the NodeInclusionPolicyInPodTopologySpread - feature flag." type: string nodeTaintsPolicy: - description: "NodeTaintsPolicy indicates how - we will treat node taints when calculating - pod topology spread skew. Options are: - Honor: - nodes without taints, along with tainted nodes - for which the incoming pod has a toleration, - are included. - Ignore: node taints are ignored. - All nodes are included. \n If this value is - nil, the behavior is equivalent to the Ignore - policy. This is a beta-level feature default - enabled by the NodeInclusionPolicyInPodTopologySpread - feature flag." type: string topologyKey: - description: TopologyKey is the key of node - labels. Nodes that have a label with this - key and identical values are considered to - be in the same topology. We consider each - as a "bucket", and try to put - balanced number of pods into each bucket. - We define a domain as a particular instance - of a topology. Also, we define an eligible - domain as a domain whose nodes meet the requirements - of nodeAffinityPolicy and nodeTaintsPolicy. - e.g. If TopologyKey is "kubernetes.io/hostname", - each Node is a domain of that topology. And, - if TopologyKey is "topology.kubernetes.io/zone", - each zone is a domain of that topology. It's - a required field. type: string whenUnsatisfiable: - description: 'WhenUnsatisfiable indicates how - to deal with a pod if it doesn''t satisfy - the spread constraint. - DoNotSchedule (default) - tells the scheduler not to schedule it. - - ScheduleAnyway tells the scheduler to schedule - the pod in any location, but giving higher - precedence to topologies that would help reduce - the skew. A constraint is considered "Unsatisfiable" - for an incoming pod if and only if every possible - node assignment for that pod would violate - "MaxSkew" on some topology. For example, in - a 3-zone cluster, MaxSkew is set to 1, and - pods with the same labelSelector spread as - 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | - If WhenUnsatisfiable is set to DoNotSchedule, - incoming pod can only be scheduled to zone2(zone3) - to become 3/2/1(3/1/2) as ActualSkew(2-1) - on zone2(zone3) satisfies MaxSkew(1). In other - words, the cluster can still be imbalanced, - but scheduler won''t make it *more* imbalanced. - It''s a required field.' type: string required: - maxSkew @@ -5961,68 +2505,21 @@ spec: - whenUnsatisfiable x-kubernetes-list-type: map volumeMounts: - description: Pod volumes to mount into the container's - filesystem. Cannot be updated. items: - description: VolumeMount describes a mounting of - a Volume within a container. properties: mountPath: - description: Path within the container at which - the volume should be mounted. Must not contain - ':'. type: string mountPropagation: - description: mountPropagation determines how - mounts are propagated from the host to container - and the other way around. When not set, MountPropagationNone - is used. This field is beta in 1.10. When - RecursiveReadOnly is set to IfPossible or - to Enabled, MountPropagation must be None - or unspecified (which defaults to None). type: string name: - description: This must match the Name of a Volume. type: string readOnly: - description: Mounted read-only if true, read-write - otherwise (false or unspecified). Defaults - to false. type: boolean recursiveReadOnly: - description: "RecursiveReadOnly specifies whether - read-only mounts should be handled recursively. - \n If ReadOnly is false, this field has no - meaning and must be unspecified. \n If ReadOnly - is true, and this field is set to Disabled, - the mount is not made recursively read-only. - \ If this field is set to IfPossible, the - mount is made recursively read-only, if it - is supported by the container runtime. If - this field is set to Enabled, the mount is - made recursively read-only if it is supported - by the container runtime, otherwise the pod - will not be started and an error will be generated - to indicate the reason. \n If this field is - set to IfPossible or Enabled, MountPropagation - must be set to None (or be unspecified, which - defaults to None). \n If this field is not - specified, it is treated as an equivalent - of Disabled." type: string subPath: - description: Path within the volume from which - the container's volume should be mounted. - Defaults to "" (volume's root). type: string subPathExpr: - description: Expanded path within the volume - from which the container's volume should be - mounted. Behaves similarly to SubPath but - environment variable references $(VAR_NAME) - are expanded using the container's environment. - Defaults to "" (volume's root). SubPathExpr - and SubPath are mutually exclusive. type: string required: - mountPath @@ -6030,282 +2527,109 @@ spec: type: object type: array volumes: - description: 'List of volumes that can be mounted - by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes' items: - description: Volume represents a named volume in - a pod that may be accessed by any container in - the pod. properties: awsElasticBlockStore: - description: 'awsElasticBlockStore represents - an AWS Disk resource that is attached to a - kubelet''s host machine and then exposed to - the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' properties: fsType: - description: 'fsType is the filesystem type - of the volume that you want to mount. - Tip: Ensure that the filesystem type is - supported by the host operating system. - Examples: "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. - More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the - filesystem from compromising the machine' type: string partition: - description: 'partition is the partition - in the volume that you want to mount. - If omitted, the default is to mount by - volume name. Examples: For volume /dev/sda1, - you specify the partition as "1". Similarly, - the volume partition for /dev/sda is "0" - (or you can leave the property empty).' format: int32 type: integer readOnly: - description: 'readOnly value true will force - the readOnly setting in VolumeMounts. - More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: boolean volumeID: - description: 'volumeID is unique ID of the - persistent disk resource in AWS (Amazon - EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: string required: - volumeID type: object azureDisk: - description: azureDisk represents an Azure Data - Disk mount on the host and bind mount to the - pod. properties: cachingMode: - description: 'cachingMode is the Host Caching - mode: None, Read Only, Read Write.' type: string diskName: - description: diskName is the Name of the - data disk in the blob storage type: string diskURI: - description: diskURI is the URI of data - disk in the blob storage type: string fsType: - description: fsType is Filesystem type to - mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Implicitly inferred to - be "ext4" if unspecified. type: string kind: - description: 'kind expected values are Shared: - multiple blob disks per storage account Dedicated: - single blob disk per storage account Managed: - azure managed data disk (only in managed - availability set). defaults to shared' type: string readOnly: - description: readOnly Defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean required: - diskName - diskURI type: object azureFile: - description: azureFile represents an Azure File - Service mount on the host and bind mount to - the pod. properties: readOnly: - description: readOnly defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean secretName: - description: secretName is the name of - secret that contains Azure Storage Account - Name and Key type: string shareName: - description: shareName is the azure share - Name type: string required: - secretName - shareName type: object cephfs: - description: cephFS represents a Ceph FS mount - on the host that shares a pod's lifetime properties: monitors: - description: 'monitors is Required: Monitors - is a collection of Ceph monitors More - info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic path: - description: 'path is Optional: Used as - the mounted root, rather than the full - Ceph tree, default is /' type: string readOnly: - description: 'readOnly is Optional: Defaults - to false (read/write). ReadOnly here will - force the ReadOnly setting in VolumeMounts. - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: boolean secretFile: - description: 'secretFile is Optional: SecretFile - is the path to key ring for User, default - is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string secretRef: - description: 'secretRef is Optional: SecretRef - is reference to the authentication secret - for User, default is empty. More info: - https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value here - are almost certainly wrong. TODO: - Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is optional: User is - the rados user name, default is admin - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string required: - monitors type: object cinder: - description: 'cinder represents a cinder volume - attached and mounted on kubelets host machine. - More info: https://examples.k8s.io/mysql-cinder-pd/README.md' properties: fsType: - description: 'fsType is the filesystem type - to mount. Must be a filesystem type supported - by the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly inferred - to be "ext4" if unspecified. More info: - https://examples.k8s.io/mysql-cinder-pd/README.md' type: string readOnly: - description: 'readOnly defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. - More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: boolean secretRef: - description: 'secretRef is optional: points - to a secret object containing parameters - used to connect to OpenStack.' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value here - are almost certainly wrong. TODO: - Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeID: - description: 'volumeID used to identify - the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string required: - volumeID type: object configMap: - description: configMap represents a configMap - that should populate this volume properties: defaultMode: - description: 'defaultMode is optional: mode - bits used to set permissions on created - files by default. Must be an octal value - between 0000 and 0777 or a decimal value - between 0 and 511. YAML accepts both octal - and decimal values, JSON requires decimal - values for mode bits. Defaults to 0644. - Directories within the path are not affected - by this setting. This might be in conflict - with other options that affect the file - mode, like fsGroup, and the result can - be other mode bits set.' format: int32 type: integer items: - description: items if unspecified, each - key-value pair in the Data field of the - referenced ConfigMap will be projected - into the volume as a file whose name is - the key and content is the value. If specified, - the listed keys will be projected into - the specified paths, and unlisted keys - will not be present. If a key is specified - which is not present in the ConfigMap, - the volume setup will error unless it - is marked optional. Paths must be relative - and may not contain the '..' path or start - with '..'. items: - description: Maps a string key to a path - within a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: mode - bits used to set permissions on - this file. Must be an octal value - between 0000 and 0777 or a decimal - value between 0 and 511. YAML accepts - both octal and decimal values, JSON - requires decimal values for mode - bits. If not specified, the volume - defaultMode will be used. This might - be in conflict with other options - that affect the file mode, like - fsGroup, and the result can be other - mode bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the key - to. May not be an absolute path. - May not contain the path element - '..'. May not start with the string - '..'. type: string required: - key @@ -6315,181 +2639,67 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type with - an empty value here are almost certainly - wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether the - ConfigMap or its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic csi: - description: csi (Container Storage Interface) - represents ephemeral storage that is handled - by certain external CSI drivers (Beta feature). properties: driver: - description: driver is the name of the CSI - driver that handles this volume. Consult - with your admin for the correct name as - registered in the cluster. type: string fsType: - description: fsType to mount. Ex. "ext4", - "xfs", "ntfs". If not provided, the empty - value is passed to the associated CSI - driver which will determine the default - filesystem to apply. type: string nodePublishSecretRef: - description: nodePublishSecretRef is a reference - to the secret object containing sensitive - information to pass to the CSI driver - to complete the CSI NodePublishVolume - and NodeUnpublishVolume calls. This field - is optional, and may be empty if no secret - is required. If the secret object contains - more than one secret, all secret references - are passed. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value here - are almost certainly wrong. TODO: - Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic readOnly: - description: readOnly specifies a read-only - configuration for the volume. Defaults - to false (read/write). type: boolean volumeAttributes: additionalProperties: type: string - description: volumeAttributes stores driver-specific - properties that are passed to the CSI - driver. Consult your driver's documentation - for supported values. type: object required: - driver type: object downwardAPI: - description: downwardAPI represents downward - API about the pod that should populate this - volume properties: defaultMode: - description: 'Optional: mode bits to use - on created files by default. Must be a - Optional: mode bits used to set permissions - on created files by default. Must be an - octal value between 0000 and 0777 or a - decimal value between 0 and 511. YAML - accepts both octal and decimal values, - JSON requires decimal values for mode - bits. Defaults to 0644. Directories within - the path are not affected by this setting. - This might be in conflict with other options - that affect the file mode, like fsGroup, - and the result can be other mode bits - set.' format: int32 type: integer items: - description: Items is a list of downward - API volume file items: - description: DownwardAPIVolumeFile represents - information to create the file containing - the pod field properties: fieldRef: - description: 'Required: Selects a - field of the pod: only annotations, - labels, name, namespace and uid - are supported.' properties: apiVersion: - description: Version of the schema - the FieldPath is written in - terms of, defaults to "v1". type: string fieldPath: - description: Path of the field - to select in the specified API - version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode bits - used to set permissions on this - file, must be an octal value between - 0000 and 0777 or a decimal value - between 0 and 511. YAML accepts - both octal and decimal values, JSON - requires decimal values for mode - bits. If not specified, the volume - defaultMode will be used. This might - be in conflict with other options - that affect the file mode, like - fsGroup, and the result can be other - mode bits set.' format: int32 type: integer path: - description: 'Required: Path is the - relative path name of the file to - be created. Must not be absolute - or contain the ''..'' path. Must - be utf-8 encoded. The first item - of the relative path must not start - with ''..''' type: string resourceFieldRef: - description: 'Selects a resource of - the container: only resources limits - and requests (limits.cpu, limits.memory, - requests.cpu and requests.memory) - are currently supported.' properties: containerName: - description: 'Container name: - required for volumes, optional - for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource - to select' type: string required: - resource @@ -6502,229 +2712,50 @@ spec: x-kubernetes-list-type: atomic type: object emptyDir: - description: 'emptyDir represents a temporary - directory that shares a pod''s lifetime. More - info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' properties: medium: - description: 'medium represents what type - of storage medium should back this directory. - The default is "" which means to use the - node''s default medium. Must be an empty - string (default) or Memory. More info: - https://kubernetes.io/docs/concepts/storage/volumes#emptydir' type: string sizeLimit: anyOf: - type: integer - type: string - description: 'sizeLimit is the total amount - of local storage required for this EmptyDir - volume. The size limit is also applicable - for memory medium. The maximum usage on - memory medium EmptyDir would be the minimum - value between the SizeLimit specified - here and the sum of memory limits of all - containers in a pod. The default is nil - which means that the limit is undefined. - More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object ephemeral: - description: "ephemeral represents a volume - that is handled by a cluster storage driver. - The volume's lifecycle is tied to the pod - that defines it - it will be created before - the pod starts, and deleted when the pod is - removed. \n Use this if: a) the volume is - only needed while the pod runs, b) features - of normal volumes like restoring from snapshot - or capacity tracking are needed, c) the storage - driver is specified through a storage class, - and d) the storage driver supports dynamic - volume provisioning through a PersistentVolumeClaim - (see EphemeralVolumeSource for more information - on the connection between this volume type - and PersistentVolumeClaim). \n Use PersistentVolumeClaim - or one of the vendor-specific APIs for volumes - that persist for longer than the lifecycle - of an individual pod. \n Use CSI for light-weight - local ephemeral volumes if the CSI driver - is meant to be used that way - see the documentation - of the driver for more information. \n A pod - can use both types of ephemeral volumes and - persistent volumes at the same time." properties: volumeClaimTemplate: - description: "Will be used to create a stand-alone - PVC to provision the volume. The pod in - which this EphemeralVolumeSource is embedded - will be the owner of the PVC, i.e. the - PVC will be deleted together with the - pod. The name of the PVC will be `-` where `` - is the name from the `PodSpec.Volumes` - array entry. Pod validation will reject - the pod if the concatenated name is not - valid for a PVC (for example, too long). - \n An existing PVC with that name that - is not owned by the pod will *not* be - used for the pod to avoid using an unrelated - volume by mistake. Starting the pod is - then blocked until the unrelated PVC is - removed. If such a pre-created PVC is - meant to be used by the pod, the PVC has - to updated with an owner reference to - the pod once the pod exists. Normally - this should not be necessary, but it may - be useful when manually reconstructing - a broken cluster. \n This field is read-only - and no changes will be made by Kubernetes - to the PVC after it has been created. - \n Required, must not be nil." properties: metadata: - description: May contain labels and - annotations that will be copied into - the PVC when creating it. No other - fields are allowed and will be rejected - during validation. properties: annotations: additionalProperties: type: string - description: 'Annotations is an - unstructured key value map stored - with a resource that may be set - by external tools to store and - retrieve arbitrary metadata. They - are not queryable and should be - preserved when modifying objects. - More info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName is an - optional prefix, used by the server, - to generate a unique name ONLY - IF the Name field has not been - provided. If this field is used, - the name returned to the client - will be different than the name - passed. This value will also be - combined with a unique suffix. - The provided value has the same - validation rules as the Name field, - and may be truncated by the length - of the suffix required to make - the value unique on the server. - \n If this field is specified - and the generated name exists, - the server will NOT return a 409 - - instead, it will either return - 201 Created or 500 with Reason - ServerTimeout indicating a unique - name could not be found in the - time allotted, and the client - should retry (optionally after - the time indicated in the Retry-After - header). \n Applied only if Name - is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string keys - and values that can be used to - organize and categorize (scope - and select) objects. May match - selectors of replication controllers - and services. More info: http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must be unique - within a namespace. Is required - when creating resources, although - some resources may allow a client - to request the generation of an - appropriate name automatically. - Name is primarily intended for - creation idempotence and configuration - definition. Cannot be updated. - More info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace defines - the space within each name must - be unique. An empty namespace - is equivalent to the \"default\" - namespace, but \"default\" is - the canonical representation. - Not all objects are required to - be scoped to a namespace - the - value of this field for those - objects will be empty. \n Must - be a DNS_LABEL. Cannot be updated. - More info: http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects depended - by this object. If ALL objects - in the list have been deleted, - this object will be garbage collected. - If this object is managed by a - controller, then an entry in this - list will point to this controller, - with the controller field set - to true. There cannot be more - than one managing controller. items: - description: OwnerReference contains - enough information to let you - identify an owning object. An - owning object must be in the - same namespace as the dependent, - or be cluster-scoped, so there - is no namespace field. properties: apiVersion: - description: API version of - the referent. type: string blockOwnerDeletion: - description: If true, AND - if the owner has the "foregroundDeletion" - finalizer, then the owner - cannot be deleted from the - key-value store until this - reference is removed. See - https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage collector - interacts with this field - and enforces the foreground - deletion. Defaults to false. - To set this field, a user - needs "delete" permission - of the owner, otherwise - 422 (Unprocessable Entity) - will be returned. type: boolean controller: - description: If true, this - reference points to the - managing controller. type: boolean kind: - description: 'Kind of the - referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of the - referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -6736,57 +2767,19 @@ spec: type: array type: object spec: - description: The specification for the - PersistentVolumeClaim. The entire - content is copied unchanged into the - PVC that gets created from this template. - The same fields as in a PersistentVolumeClaim - are also valid here. properties: accessModes: - description: 'accessModes contains - the desired access modes the volume - should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource field can - be used to specify either: * An - existing VolumeSnapshot object - (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an external - controller can support the specified - data source, it will create a - new volume based on the contents - of the specified data source. - When the AnyVolumeDataSource feature - gate is enabled, dataSource contents - will be copied to dataSourceRef, - and dataSourceRef contents will - be copied to dataSource when dataSourceRef.namespace - is not specified. If the namespace - is specified, then dataSourceRef - will not be copied to dataSource.' properties: apiGroup: - description: APIGroup is the - group for the resource being - referenced. If APIGroup is - not specified, the specified - Kind must be in the core API - group. For any other third-party - types, APIGroup is required. type: string kind: - description: Kind is the type - of resource being referenced type: string name: - description: Name is the name - of resource being referenced type: string required: - kind @@ -6794,98 +2787,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef specifies - the object from which to populate - the volume with data, if a non-empty - volume is desired. This may be - any object from a non-empty API - group (non core object) or a PersistentVolumeClaim - object. When this field is specified, - volume binding will only succeed - if the type of the specified object - matches some installed volume - populator or dynamic provisioner. - This field will replace the functionality - of the dataSource field and as - such if both fields are non-empty, - they must have the same value. - For backwards compatibility, when - namespace isn''t specified in - dataSourceRef, both fields (dataSource - and dataSourceRef) will be set - to the same value automatically - if one of them is empty and the - other is non-empty. When namespace - is specified in dataSourceRef, - dataSource isn''t set to the same - value and must be empty. There - are three important differences - between dataSource and dataSourceRef: - * While dataSource only allows - two specific types of objects, - dataSourceRef allows any non-core - object, as well as PersistentVolumeClaim - objects. * While dataSource ignores - disallowed values (dropping them), - dataSourceRef preserves all values, - and generates an error if a disallowed - value is specified. * While dataSource - only allows local objects, dataSourceRef - allows objects in any namespaces. - (Beta) Using this field requires - the AnyVolumeDataSource feature - gate to be enabled. (Alpha) Using - the namespace field of dataSourceRef - requires the CrossNamespaceVolumeDataSource - feature gate to be enabled.' properties: apiGroup: - description: APIGroup is the - group for the resource being - referenced. If APIGroup is - not specified, the specified - Kind must be in the core API - group. For any other third-party - types, APIGroup is required. type: string kind: - description: Kind is the type - of resource being referenced type: string name: - description: Name is the name - of resource being referenced type: string namespace: - description: Namespace is the - namespace of resource being - referenced Note that when - a namespace is specified, - a gateway.networking.k8s.io/ReferenceGrant - object is required in the - referent namespace to allow - that namespace's owner to - accept the reference. See - the ReferenceGrant documentation - for details. (Alpha) This - field requires the CrossNamespaceVolumeDataSource - feature gate to be enabled. type: string required: - kind - name type: object resources: - description: 'resources represents - the minimum resources the volume - should have. If RecoverVolumeExpansionFailure - feature is enabled users are allowed - to specify resource requirements - that are lower than previous value - but must still be higher than - capacity recorded in the status - field of the claim. More info: - https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -6894,10 +2809,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes - the maximum amount of compute - resources allowed. More info: - https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -6906,59 +2817,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes - the minimum amount of compute - resources required. If Requests - is omitted for a container, - it defaults to Limits if that - is explicitly specified, otherwise - to an implementation-defined - value. Requests cannot exceed - Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is a label - query over volumes to consider - for binding. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator - represents a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is - an array of string values. - If the operator is In - or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the - values array must be - empty. This array is - replaced during a strategic - merge patch. items: type: string type: array @@ -6972,64 +2842,16 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in the - matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName is - the name of the StorageClass required - by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName - may be used to set the VolumeAttributesClass - used by this claim. If specified, - the CSI driver will create or - update the volume with the attributes - defined in the corresponding VolumeAttributesClass. - This has a different purpose than - storageClassName, it can be changed - after the claim is created. An - empty string value means that - no VolumeAttributesClass will - be applied to the claim but it''s - not allowed to reset this field - to empty string once it is set. - If unspecified and the PersistentVolumeClaim - is unbound, the default VolumeAttributesClass - will be set by the persistentvolume - controller if it exists. If the - resource referred to by volumeAttributesClass - does not exist, this PersistentVolumeClaim - will be set to a Pending state, - as reflected by the modifyVolumeStatus - field, until such as a resource - exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires - the VolumeAttributesClass feature - gate to be enabled.' type: string volumeMode: - description: volumeMode defines - what type of volume is required - by the claim. Value of Filesystem - is implied when not included in - claim spec. type: string volumeName: - description: volumeName is the binding - reference to the PersistentVolume - backing this claim. type: string type: object required: @@ -7037,94 +2859,41 @@ spec: type: object type: object fc: - description: fc represents a Fibre Channel resource - that is attached to a kubelet's host machine - and then exposed to the pod. properties: fsType: - description: 'fsType is the filesystem type - to mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Implicitly inferred to - be "ext4" if unspecified. TODO: how do - we prevent errors in the filesystem from - compromising the machine' type: string lun: - description: 'lun is Optional: FC target - lun number' format: int32 type: integer readOnly: - description: 'readOnly is Optional: Defaults - to false (read/write). ReadOnly here will - force the ReadOnly setting in VolumeMounts.' type: boolean targetWWNs: - description: 'targetWWNs is Optional: FC - target worldwide names (WWNs)' items: type: string type: array x-kubernetes-list-type: atomic wwids: - description: 'wwids Optional: FC volume - world wide identifiers (wwids) Either - wwids or combination of targetWWNs and - lun must be set, but not both simultaneously.' items: type: string type: array x-kubernetes-list-type: atomic type: object flexVolume: - description: flexVolume represents a generic - volume resource that is provisioned/attached - using an exec based plugin. properties: driver: - description: driver is the name of the driver - to use for this volume. type: string fsType: - description: fsType is the filesystem type - to mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". The default filesystem - depends on FlexVolume script. type: string options: additionalProperties: type: string - description: 'options is Optional: this - field holds extra command options if any.' type: object readOnly: - description: 'readOnly is Optional: defaults - to false (read/write). ReadOnly here will - force the ReadOnly setting in VolumeMounts.' type: boolean secretRef: - description: 'secretRef is Optional: secretRef - is reference to the secret object containing - sensitive information to pass to the plugin - scripts. This may be empty if no secret - object is specified. If the secret object - contains more than one secret, all secrets - are passed to the plugin scripts.' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value here - are almost certainly wrong. TODO: - Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic @@ -7132,197 +2901,79 @@ spec: - driver type: object flocker: - description: flocker represents a Flocker volume - attached to a kubelet's host machine. This - depends on the Flocker control service being - running properties: datasetName: - description: datasetName is Name of the - dataset stored as metadata -> name on - the dataset for Flocker should be considered - as deprecated type: string datasetUUID: - description: datasetUUID is the UUID of - the dataset. This is unique identifier - of a Flocker dataset type: string type: object gcePersistentDisk: - description: 'gcePersistentDisk represents a - GCE Disk resource that is attached to a kubelet''s - host machine and then exposed to the pod. - More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' properties: fsType: - description: 'fsType is filesystem type - of the volume that you want to mount. - Tip: Ensure that the filesystem type is - supported by the host operating system. - Examples: "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. - More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the - filesystem from compromising the machine' type: string partition: - description: 'partition is the partition - in the volume that you want to mount. - If omitted, the default is to mount by - volume name. Examples: For volume /dev/sda1, - you specify the partition as "1". Similarly, - the volume partition for /dev/sda is "0" - (or you can leave the property empty). - More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' format: int32 type: integer pdName: - description: 'pdName is unique name of the - PD resource in GCE. Used to identify the - disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: string readOnly: - description: 'readOnly here will force the - ReadOnly setting in VolumeMounts. Defaults - to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: boolean required: - pdName type: object glusterfs: - description: 'glusterfs represents a Glusterfs - mount on the host that shares a pod''s lifetime. - More info: https://examples.k8s.io/volumes/glusterfs/README.md' properties: endpoints: - description: 'endpoints is the endpoint - name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string path: - description: 'path is the Glusterfs volume - path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string readOnly: - description: 'readOnly here will force the - Glusterfs volume to be mounted with read-only - permissions. Defaults to false. More info: - https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: boolean required: - endpoints - path type: object hostPath: - description: 'hostPath represents a pre-existing - file or directory on the host machine that - is directly exposed to the container. This - is generally used for system agents or other - privileged things that are allowed to see - the host machine. Most containers will NOT - need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- TODO(jonesdl) We need to restrict who - can use host directory mounts and who can/can - not mount host directories as read/write.' properties: path: - description: 'path of the directory on the - host. If the path is a symlink, it will - follow the link to the real path. More - info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string type: - description: 'type for HostPath Volume Defaults - to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string required: - path type: object iscsi: - description: 'iscsi represents an ISCSI Disk - resource that is attached to a kubelet''s - host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md' properties: chapAuthDiscovery: - description: chapAuthDiscovery defines whether - support iSCSI Discovery CHAP authentication type: boolean chapAuthSession: - description: chapAuthSession defines whether - support iSCSI Session CHAP authentication type: boolean fsType: - description: 'fsType is the filesystem type - of the volume that you want to mount. - Tip: Ensure that the filesystem type is - supported by the host operating system. - Examples: "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. - More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the - filesystem from compromising the machine' type: string initiatorName: - description: initiatorName is the custom - iSCSI Initiator Name. If initiatorName - is specified with iscsiInterface simultaneously, - new iSCSI interface : will be created for the connection. type: string iqn: - description: iqn is the target iSCSI Qualified - Name. type: string iscsiInterface: - description: iscsiInterface is the interface - Name that uses an iSCSI transport. Defaults - to 'default' (tcp). type: string lun: - description: lun represents iSCSI Target - Lun number. format: int32 type: integer portals: - description: portals is the iSCSI Target - Portal List. The portal is either an IP - or ip_addr:port if the port is other than - default (typically TCP ports 860 and 3260). items: type: string type: array x-kubernetes-list-type: atomic readOnly: - description: readOnly here will force the - ReadOnly setting in VolumeMounts. Defaults - to false. type: boolean secretRef: - description: secretRef is the CHAP Secret - for iSCSI target and initiator authentication properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value here - are almost certainly wrong. TODO: - Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic targetPortal: - description: targetPortal is iSCSI Target - Portal. The Portal is either an IP or - ip_addr:port if the port is other than - default (typically TCP ports 860 and 3260). type: string required: - iqn @@ -7330,194 +2981,68 @@ spec: - targetPortal type: object name: - description: 'name of the volume. Must be a - DNS_LABEL and unique within the pod. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string nfs: - description: 'nfs represents an NFS mount on - the host that shares a pod''s lifetime More - info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' properties: path: - description: 'path that is exported by the - NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string readOnly: - description: 'readOnly here will force the - NFS export to be mounted with read-only - permissions. Defaults to false. More info: - https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: boolean server: - description: 'server is the hostname or - IP address of the NFS server. More info: - https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string required: - path - server type: object persistentVolumeClaim: - description: 'persistentVolumeClaimVolumeSource - represents a reference to a PersistentVolumeClaim - in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: claimName: - description: 'claimName is the name of a - PersistentVolumeClaim in the same namespace - as the pod using this volume. More info: - https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' type: string readOnly: - description: readOnly Will force the ReadOnly - setting in VolumeMounts. Default false. type: boolean required: - claimName type: object photonPersistentDisk: - description: photonPersistentDisk represents - a PhotonController persistent disk attached - and mounted on kubelets host machine properties: fsType: - description: fsType is the filesystem type - to mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Implicitly inferred to - be "ext4" if unspecified. type: string pdID: - description: pdID is the ID that identifies - Photon Controller persistent disk type: string required: - pdID type: object portworxVolume: - description: portworxVolume represents a portworx - volume attached and mounted on kubelets host - machine properties: fsType: - description: fSType represents the filesystem - type to mount Must be a filesystem type - supported by the host operating system. - Ex. "ext4", "xfs". Implicitly inferred - to be "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean volumeID: - description: volumeID uniquely identifies - a Portworx volume type: string required: - volumeID type: object projected: - description: projected items for all in one - resources secrets, configmaps, and downward - API properties: defaultMode: - description: defaultMode are the mode bits - used to set permissions on created files - by default. Must be an octal value between - 0000 and 0777 or a decimal value between - 0 and 511. YAML accepts both octal and - decimal values, JSON requires decimal - values for mode bits. Directories within - the path are not affected by this setting. - This might be in conflict with other options - that affect the file mode, like fsGroup, - and the result can be other mode bits - set. format: int32 type: integer sources: - description: sources is the list of volume - projections items: - description: Projection that may be projected - along with other supported volume types properties: clusterTrustBundle: - description: "ClusterTrustBundle allows - a pod to access the `.spec.trustBundle` - field of ClusterTrustBundle objects - in an auto-updating file. \n Alpha, - gated by the ClusterTrustBundleProjection - feature gate. \n ClusterTrustBundle - objects can either be selected by - name, or by the combination of signer - name and a label selector. \n Kubelet - performs aggressive normalization - of the PEM contents written into - the pod filesystem. Esoteric PEM - features such as inter-block comments - and block headers are stripped. - \ Certificates are deduplicated. - The ordering of certificates within - the file is arbitrary, and Kubelet - may change the order over time." properties: labelSelector: - description: Select all ClusterTrustBundles - that match this label selector. Only - has effect if signerName is - set. Mutually-exclusive with - name. If unset, interpreted - as "match nothing". If set - but empty, interpreted as "match - everything". properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to a - set of values. Valid - operators are In, - NotIn, Exists and - DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, the - values array must - be non-empty. If the - operator is Exists - or DoesNotExist, the - values array must - be empty. This array - is replaced during - a strategic merge - patch. items: type: string type: array @@ -7531,110 +3056,31 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in - the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic name: - description: Select a single ClusterTrustBundle - by object name. Mutually-exclusive - with signerName and labelSelector. type: string optional: - description: If true, don't block - pod startup if the referenced - ClusterTrustBundle(s) aren't - available. If using name, then - the named ClusterTrustBundle - is allowed not to exist. If - using signerName, then the combination - of signerName and labelSelector - is allowed to match zero ClusterTrustBundles. type: boolean path: - description: Relative path from - the volume root to write the - bundle. type: string signerName: - description: Select all ClusterTrustBundles - that match this signer name. - Mutually-exclusive with name. The - contents of all selected ClusterTrustBundles - will be unified and deduplicated. type: string required: - path type: object configMap: - description: configMap information - about the configMap data to project properties: items: - description: items if unspecified, - each key-value pair in the Data - field of the referenced ConfigMap - will be projected into the volume - as a file whose name is the - key and content is the value. - If specified, the listed keys - will be projected into the specified - paths, and unlisted keys will - not be present. If a key is - specified which is not present - in the ConfigMap, the volume - setup will error unless it is - marked optional. Paths must - be relative and may not contain - the '..' path or start with - '..'. items: - description: Maps a string key - to a path within a volume. properties: key: - description: key is the - key to project. type: string mode: - description: 'mode is Optional: - mode bits used to set - permissions on this file. - Must be an octal value - between 0000 and 0777 - or a decimal value between - 0 and 511. YAML accepts - both octal and decimal - values, JSON requires - decimal values for mode - bits. If not specified, - the volume defaultMode - will be used. This might - be in conflict with other - options that affect the - file mode, like fsGroup, - and the result can be - other mode bits set.' format: int32 type: integer path: - description: path is the - relative path of the file - to map the key to. May - not be an absolute path. - May not contain the path - element '..'. May not - start with the string - '..'. type: string required: - key @@ -7644,124 +3090,42 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify - whether the ConfigMap or its - keys must be defined type: boolean type: object x-kubernetes-map-type: atomic downwardAPI: - description: downwardAPI information - about the downwardAPI data to project properties: items: - description: Items is a list of - DownwardAPIVolume file items: - description: DownwardAPIVolumeFile - represents information to - create the file containing - the pod field properties: fieldRef: - description: 'Required: - Selects a field of the - pod: only annotations, - labels, name, namespace - and uid are supported.' properties: apiVersion: - description: Version - of the schema the - FieldPath is written - in terms of, defaults - to "v1". type: string fieldPath: - description: Path of - the field to select - in the specified API - version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: - mode bits used to set - permissions on this file, - must be an octal value - between 0000 and 0777 - or a decimal value between - 0 and 511. YAML accepts - both octal and decimal - values, JSON requires - decimal values for mode - bits. If not specified, - the volume defaultMode - will be used. This might - be in conflict with other - options that affect the - file mode, like fsGroup, - and the result can be - other mode bits set.' format: int32 type: integer path: - description: 'Required: - Path is the relative - path name of the file - to be created. Must not - be absolute or contain - the ''..'' path. Must - be utf-8 encoded. The - first item of the relative - path must not start with - ''..''' type: string resourceFieldRef: - description: 'Selects a - resource of the container: - only resources limits - and requests (limits.cpu, - limits.memory, requests.cpu - and requests.memory) are - currently supported.' properties: containerName: - description: 'Container - name: required for - volumes, optional - for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies - the output format - of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: - resource to select' type: string required: - resource @@ -7774,64 +3138,16 @@ spec: x-kubernetes-list-type: atomic type: object secret: - description: secret information about - the secret data to project properties: items: - description: items if unspecified, - each key-value pair in the Data - field of the referenced Secret - will be projected into the volume - as a file whose name is the - key and content is the value. - If specified, the listed keys - will be projected into the specified - paths, and unlisted keys will - not be present. If a key is - specified which is not present - in the Secret, the volume setup - will error unless it is marked - optional. Paths must be relative - and may not contain the '..' - path or start with '..'. items: - description: Maps a string key - to a path within a volume. properties: key: - description: key is the - key to project. type: string mode: - description: 'mode is Optional: - mode bits used to set - permissions on this file. - Must be an octal value - between 0000 and 0777 - or a decimal value between - 0 and 511. YAML accepts - both octal and decimal - values, JSON requires - decimal values for mode - bits. If not specified, - the volume defaultMode - will be used. This might - be in conflict with other - options that affect the - file mode, like fsGroup, - and the result can be - other mode bits set.' format: int32 type: integer path: - description: path is the - relative path of the file - to map the key to. May - not be an absolute path. - May not contain the path - element '..'. May not - start with the string - '..'. type: string required: - key @@ -7841,63 +3157,19 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional field specify - whether the Secret or its key - must be defined type: boolean type: object x-kubernetes-map-type: atomic serviceAccountToken: - description: serviceAccountToken is - information about the serviceAccountToken - data to project properties: audience: - description: audience is the intended - audience of the token. A recipient - of a token must identify itself - with an identifier specified - in the audience of the token, - and otherwise should reject - the token. The audience defaults - to the identifier of the apiserver. type: string expirationSeconds: - description: expirationSeconds - is the requested duration of - validity of the service account - token. As the token approaches - expiration, the kubelet volume - plugin will proactively rotate - the service account token. The - kubelet will start trying to - rotate the token if the token - is older than 80 percent of - its time to live or if the token - is older than 24 hours.Defaults - to 1 hour and must be at least - 10 minutes. format: int64 type: integer path: - description: path is the path - relative to the mount point - of the file to project the token - into. type: string required: - path @@ -7907,183 +3179,79 @@ spec: x-kubernetes-list-type: atomic type: object quobyte: - description: quobyte represents a Quobyte mount - on the host that shares a pod's lifetime properties: group: - description: group to map volume access - to Default is no group type: string readOnly: - description: readOnly here will force the - Quobyte volume to be mounted with read-only - permissions. Defaults to false. type: boolean registry: - description: registry represents a single - or multiple Quobyte Registry services - specified as a string as host:port pair - (multiple entries are separated with commas) - which acts as the central registry for - volumes type: string tenant: - description: tenant owning the given Quobyte - volume in the Backend Used with dynamically - provisioned Quobyte volumes, value is - set by the plugin type: string user: - description: user to map volume access to - Defaults to serivceaccount user type: string volume: - description: volume is a string that references - an already created Quobyte volume by name. type: string required: - registry - volume type: object rbd: - description: 'rbd represents a Rados Block Device - mount on the host that shares a pod''s lifetime. - More info: https://examples.k8s.io/volumes/rbd/README.md' properties: fsType: - description: 'fsType is the filesystem type - of the volume that you want to mount. - Tip: Ensure that the filesystem type is - supported by the host operating system. - Examples: "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. - More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the - filesystem from compromising the machine' type: string image: - description: 'image is the rados image name. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string keyring: - description: 'keyring is the path to key - ring for RBDUser. Default is /etc/ceph/keyring. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string monitors: - description: 'monitors is a collection of - Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic pool: - description: 'pool is the rados pool name. - Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string readOnly: - description: 'readOnly here will force the - ReadOnly setting in VolumeMounts. Defaults - to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: boolean secretRef: - description: 'secretRef is name of the authentication - secret for RBDUser. If provided overrides - keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value here - are almost certainly wrong. TODO: - Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is the rados user name. - Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string required: - image - monitors type: object scaleIO: - description: scaleIO represents a ScaleIO persistent - volume attached and mounted on Kubernetes - nodes. properties: fsType: - description: fsType is the filesystem type - to mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Default is "xfs". type: string gateway: - description: gateway is the host address - of the ScaleIO API Gateway. type: string protectionDomain: - description: protectionDomain is the name - of the ScaleIO Protection Domain for the - configured storage. type: string readOnly: - description: readOnly Defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean secretRef: - description: secretRef references to the - secret for ScaleIO user and other sensitive - information. If this is not provided, - Login operation will fail. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value here - are almost certainly wrong. TODO: - Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic sslEnabled: - description: sslEnabled Flag enable/disable - SSL communication with Gateway, default - false type: boolean storageMode: - description: storageMode indicates whether - the storage for a volume should be ThickProvisioned - or ThinProvisioned. Default is ThinProvisioned. type: string storagePool: - description: storagePool is the ScaleIO - Storage Pool associated with the protection - domain. type: string system: - description: system is the name of the storage - system as configured in ScaleIO. type: string volumeName: - description: volumeName is the name of a - volume already created in the ScaleIO - system that is associated with this volume - source. type: string required: - gateway @@ -8091,68 +3259,19 @@ spec: - system type: object secret: - description: 'secret represents a secret that - should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' properties: defaultMode: - description: 'defaultMode is Optional: mode - bits used to set permissions on created - files by default. Must be an octal value - between 0000 and 0777 or a decimal value - between 0 and 511. YAML accepts both octal - and decimal values, JSON requires decimal - values for mode bits. Defaults to 0644. - Directories within the path are not affected - by this setting. This might be in conflict - with other options that affect the file - mode, like fsGroup, and the result can - be other mode bits set.' format: int32 type: integer items: - description: items If unspecified, each - key-value pair in the Data field of the - referenced Secret will be projected into - the volume as a file whose name is the - key and content is the value. If specified, - the listed keys will be projected into - the specified paths, and unlisted keys - will not be present. If a key is specified - which is not present in the Secret, the - volume setup will error unless it is marked - optional. Paths must be relative and may - not contain the '..' path or start with - '..'. items: - description: Maps a string key to a path - within a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: mode - bits used to set permissions on - this file. Must be an octal value - between 0000 and 0777 or a decimal - value between 0 and 511. YAML accepts - both octal and decimal values, JSON - requires decimal values for mode - bits. If not specified, the volume - defaultMode will be used. This might - be in conflict with other options - that affect the file mode, like - fsGroup, and the result can be other - mode bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the key - to. May not be an absolute path. - May not contain the path element - '..'. May not start with the string - '..'. type: string required: - key @@ -8161,97 +3280,37 @@ spec: type: array x-kubernetes-list-type: atomic optional: - description: optional field specify whether - the Secret or its keys must be defined type: boolean secretName: - description: 'secretName is the name of - the secret in the pod''s namespace to - use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' type: string type: object storageos: - description: storageOS represents a StorageOS - volume attached and mounted on Kubernetes - nodes. properties: fsType: - description: fsType is the filesystem type - to mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Implicitly inferred to - be "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean secretRef: - description: secretRef specifies the secret - to use for obtaining the StorageOS API - credentials. If not specified, default - values will be attempted. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value here - are almost certainly wrong. TODO: - Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeName: - description: volumeName is the human-readable - name of the StorageOS volume. Volume - names are only unique within a namespace. type: string volumeNamespace: - description: volumeNamespace specifies the - scope of the volume within StorageOS. If - no namespace is specified then the Pod's - namespace will be used. This allows the - Kubernetes name scoping to be mirrored - within StorageOS for tighter integration. - Set VolumeName to any name to override - the default behaviour. Set to "default" - if you are not using namespaces within - StorageOS. Namespaces that do not pre-exist - within StorageOS will be created. type: string type: object vsphereVolume: - description: vsphereVolume represents a vSphere - volume attached and mounted on kubelets host - machine properties: fsType: - description: fsType is filesystem type to - mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Implicitly inferred to - be "ext4" if unspecified. type: string storagePolicyID: - description: storagePolicyID is the storage - Policy Based Management (SPBM) profile - ID associated with the StoragePolicyName. type: string storagePolicyName: - description: storagePolicyName is the storage - Policy Based Management (SPBM) profile - name. type: string volumePath: - description: volumePath is the path that - identifies vSphere volume vmdk type: string required: - volumePath @@ -8263,309 +3322,118 @@ spec: type: object type: object name: - description: Name specifies the name of the addon that will - be used for the backup/restore purpose type: string tasks: - description: Tasks specifies a list of backup/restore tasks - and their configuration parameters items: - description: TaskReference specifies a task and its configuration - parameters properties: addonVolumes: - description: AddonVolumes lets you overwrite the volume - sources used in the VolumeTemplate section of Addon. - Make sure that name of your volume matches with the - name of the volume you want to overwrite. items: - description: AddonVolumeInfo specifies the name and - the source of volume properties: name: - description: Name specifies the name of the volume type: string source: - description: Source specifies the source of this - volume. properties: awsElasticBlockStore: - description: 'awsElasticBlockStore represents - an AWS Disk resource that is attached to - a kubelet''s host machine and then exposed - to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' properties: fsType: - description: 'fsType is the filesystem - type of the volume that you want to - mount. Tip: Ensure that the filesystem - type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the - filesystem from compromising the machine' type: string partition: - description: 'partition is the partition - in the volume that you want to mount. - If omitted, the default is to mount - by volume name. Examples: For volume - /dev/sda1, you specify the partition - as "1". Similarly, the volume partition - for /dev/sda is "0" (or you can leave - the property empty).' format: int32 type: integer readOnly: - description: 'readOnly value true will - force the readOnly setting in VolumeMounts. - More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: boolean volumeID: - description: 'volumeID is unique ID of - the persistent disk resource in AWS - (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: string required: - volumeID type: object azureDisk: - description: azureDisk represents an Azure - Data Disk mount on the host and bind mount - to the pod. properties: cachingMode: - description: 'cachingMode is the Host - Caching mode: None, Read Only, Read - Write.' type: string diskName: - description: diskName is the Name of the - data disk in the blob storage type: string diskURI: - description: diskURI is the URI of data - disk in the blob storage type: string fsType: - description: fsType is Filesystem type - to mount. Must be a filesystem type - supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string kind: - description: 'kind expected values are - Shared: multiple blob disks per storage - account Dedicated: single blob disk - per storage account Managed: azure - managed data disk (only in managed availability - set). defaults to shared' type: string readOnly: - description: readOnly Defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean required: - diskName - diskURI type: object azureFile: - description: azureFile represents an Azure - File Service mount on the host and bind - mount to the pod. properties: readOnly: - description: readOnly defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean secretName: - description: secretName is the name of - secret that contains Azure Storage Account - Name and Key type: string shareName: - description: shareName is the azure share - Name type: string required: - secretName - shareName type: object cephfs: - description: cephFS represents a Ceph FS mount - on the host that shares a pod's lifetime properties: monitors: - description: 'monitors is Required: Monitors - is a collection of Ceph monitors More - info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic path: - description: 'path is Optional: Used as - the mounted root, rather than the full - Ceph tree, default is /' type: string readOnly: - description: 'readOnly is Optional: Defaults - to false (read/write). ReadOnly here - will force the ReadOnly setting in VolumeMounts. - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: boolean secretFile: - description: 'secretFile is Optional: - SecretFile is the path to key ring for - User, default is /etc/ceph/user.secret - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string secretRef: - description: 'secretRef is Optional: SecretRef - is reference to the authentication secret - for User, default is empty. More info: - https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is optional: User is - the rados user name, default is admin - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string required: - monitors type: object cinder: - description: 'cinder represents a cinder volume - attached and mounted on kubelets host machine. - More info: https://examples.k8s.io/mysql-cinder-pd/README.md' properties: fsType: - description: 'fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string readOnly: - description: 'readOnly defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. - More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: boolean secretRef: - description: 'secretRef is optional: points - to a secret object containing parameters - used to connect to OpenStack.' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeID: - description: 'volumeID used to identify - the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string required: - volumeID type: object configMap: - description: configMap represents a configMap - that should populate this volume properties: defaultMode: - description: 'defaultMode is optional: - mode bits used to set permissions on - created files by default. Must be an - octal value between 0000 and 0777 or - a decimal value between 0 and 511. YAML - accepts both octal and decimal values, - JSON requires decimal values for mode - bits. Defaults to 0644. Directories - within the path are not affected by - this setting. This might be in conflict - with other options that affect the file - mode, like fsGroup, and the result can - be other mode bits set.' format: int32 type: integer items: - description: items if unspecified, each - key-value pair in the Data field of - the referenced ConfigMap will be projected - into the volume as a file whose name - is the key and content is the value. - If specified, the listed keys will be - projected into the specified paths, - and unlisted keys will not be present. - If a key is specified which is not present - in the ConfigMap, the volume setup will - error unless it is marked optional. - Paths must be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key to a - path within a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an octal - value between 0000 and 0777 or - a decimal value between 0 and - 511. YAML accepts both octal and - decimal values, JSON requires - decimal values for mode bits. - If not specified, the volume defaultMode - will be used. This might be in - conflict with other options that - affect the file mode, like fsGroup, - and the result can be other mode - bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the key - to. May not be an absolute path. - May not contain the path element - '..'. May not start with the string - '..'. type: string required: - key @@ -8575,185 +3443,67 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether - the ConfigMap or its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic csi: - description: csi (Container Storage Interface) - represents ephemeral storage that is handled - by certain external CSI drivers (Beta feature). properties: driver: - description: driver is the name of the - CSI driver that handles this volume. - Consult with your admin for the correct - name as registered in the cluster. type: string fsType: - description: fsType to mount. Ex. "ext4", - "xfs", "ntfs". If not provided, the - empty value is passed to the associated - CSI driver which will determine the - default filesystem to apply. type: string nodePublishSecretRef: - description: nodePublishSecretRef is a - reference to the secret object containing - sensitive information to pass to the - CSI driver to complete the CSI NodePublishVolume - and NodeUnpublishVolume calls. This - field is optional, and may be empty - if no secret is required. If the secret - object contains more than one secret, - all secret references are passed. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic readOnly: - description: readOnly specifies a read-only - configuration for the volume. Defaults - to false (read/write). type: boolean volumeAttributes: additionalProperties: type: string - description: volumeAttributes stores driver-specific - properties that are passed to the CSI - driver. Consult your driver's documentation - for supported values. type: object required: - driver type: object downwardAPI: - description: downwardAPI represents downward - API about the pod that should populate this - volume properties: defaultMode: - description: 'Optional: mode bits to use - on created files by default. Must be - a Optional: mode bits used to set permissions - on created files by default. Must be - an octal value between 0000 and 0777 - or a decimal value between 0 and 511. - YAML accepts both octal and decimal - values, JSON requires decimal values - for mode bits. Defaults to 0644. Directories - within the path are not affected by - this setting. This might be in conflict - with other options that affect the file - mode, like fsGroup, and the result can - be other mode bits set.' format: int32 type: integer items: - description: Items is a list of downward - API volume file items: - description: DownwardAPIVolumeFile represents - information to create the file containing - the pod field properties: fieldRef: - description: 'Required: Selects - a field of the pod: only annotations, - labels, name, namespace and uid - are supported.' properties: apiVersion: - description: Version of the - schema the FieldPath is written - in terms of, defaults to "v1". type: string fieldPath: - description: Path of the field - to select in the specified - API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode bits - used to set permissions on this - file, must be an octal value between - 0000 and 0777 or a decimal value - between 0 and 511. YAML accepts - both octal and decimal values, - JSON requires decimal values for - mode bits. If not specified, the - volume defaultMode will be used. - This might be in conflict with - other options that affect the - file mode, like fsGroup, and the - result can be other mode bits - set.' format: int32 type: integer path: - description: 'Required: Path is the - relative path name of the file - to be created. Must not be absolute - or contain the ''..'' path. Must - be utf-8 encoded. The first item - of the relative path must not - start with ''..''' type: string resourceFieldRef: - description: 'Selects a resource - of the container: only resources - limits and requests (limits.cpu, - limits.memory, requests.cpu and - requests.memory) are currently - supported.' properties: containerName: - description: 'Container name: - required for volumes, optional - for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource - to select' type: string required: - resource @@ -8766,232 +3516,50 @@ spec: x-kubernetes-list-type: atomic type: object emptyDir: - description: 'emptyDir represents a temporary - directory that shares a pod''s lifetime. - More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' properties: medium: - description: 'medium represents what type - of storage medium should back this directory. - The default is "" which means to use - the node''s default medium. Must be - an empty string (default) or Memory. - More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' type: string sizeLimit: anyOf: - type: integer - type: string - description: 'sizeLimit is the total amount - of local storage required for this EmptyDir - volume. The size limit is also applicable - for memory medium. The maximum usage - on memory medium EmptyDir would be the - minimum value between the SizeLimit - specified here and the sum of memory - limits of all containers in a pod. The - default is nil which means that the - limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object ephemeral: - description: "ephemeral represents a volume - that is handled by a cluster storage driver. - The volume's lifecycle is tied to the pod - that defines it - it will be created before - the pod starts, and deleted when the pod - is removed. \n Use this if: a) the volume - is only needed while the pod runs, b) features - of normal volumes like restoring from snapshot - or capacity tracking are needed, c) the - storage driver is specified through a storage - class, and d) the storage driver supports - dynamic volume provisioning through a PersistentVolumeClaim - (see EphemeralVolumeSource for more information - on the connection between this volume type - and PersistentVolumeClaim). \n Use PersistentVolumeClaim - or one of the vendor-specific APIs for volumes - that persist for longer than the lifecycle - of an individual pod. \n Use CSI for light-weight - local ephemeral volumes if the CSI driver - is meant to be used that way - see the documentation - of the driver for more information. \n A - pod can use both types of ephemeral volumes - and persistent volumes at the same time." properties: volumeClaimTemplate: - description: "Will be used to create a - stand-alone PVC to provision the volume. - The pod in which this EphemeralVolumeSource - is embedded will be the owner of the - PVC, i.e. the PVC will be deleted together - with the pod. The name of the PVC will - be `-` where - `` is the name from the - `PodSpec.Volumes` array entry. Pod validation - will reject the pod if the concatenated - name is not valid for a PVC (for example, - too long). \n An existing PVC with that - name that is not owned by the pod will - *not* be used for the pod to avoid using - an unrelated volume by mistake. Starting - the pod is then blocked until the unrelated - PVC is removed. If such a pre-created - PVC is meant to be used by the pod, - the PVC has to updated with an owner - reference to the pod once the pod exists. - Normally this should not be necessary, - but it may be useful when manually reconstructing - a broken cluster. \n This field is read-only - and no changes will be made by Kubernetes - to the PVC after it has been created. - \n Required, must not be nil." properties: metadata: - description: May contain labels and - annotations that will be copied - into the PVC when creating it. No - other fields are allowed and will - be rejected during validation. properties: annotations: additionalProperties: type: string - description: 'Annotations is an - unstructured key value map stored - with a resource that may be - set by external tools to store - and retrieve arbitrary metadata. - They are not queryable and should - be preserved when modifying - objects. More info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName is - an optional prefix, used by - the server, to generate a unique - name ONLY IF the Name field - has not been provided. If this - field is used, the name returned - to the client will be different - than the name passed. This value - will also be combined with a - unique suffix. The provided - value has the same validation - rules as the Name field, and - may be truncated by the length - of the suffix required to make - the value unique on the server. - \n If this field is specified - and the generated name exists, - the server will NOT return a - 409 - instead, it will either - return 201 Created or 500 with - Reason ServerTimeout indicating - a unique name could not be found - in the time allotted, and the - client should retry (optionally - after the time indicated in - the Retry-After header). \n - Applied only if Name is not - specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string keys - and values that can be used - to organize and categorize (scope - and select) objects. May match - selectors of replication controllers - and services. More info: http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must be unique - within a namespace. Is required - when creating resources, although - some resources may allow a client - to request the generation of - an appropriate name automatically. - Name is primarily intended for - creation idempotence and configuration - definition. Cannot be updated. - More info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace defines - the space within each name must - be unique. An empty namespace - is equivalent to the \"default\" - namespace, but \"default\" is - the canonical representation. - Not all objects are required - to be scoped to a namespace - - the value of this field for - those objects will be empty. - \n Must be a DNS_LABEL. Cannot - be updated. More info: http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects depended - by this object. If ALL objects - in the list have been deleted, - this object will be garbage - collected. If this object is - managed by a controller, then - an entry in this list will point - to this controller, with the - controller field set to true. - There cannot be more than one - managing controller. items: - description: OwnerReference - contains enough information - to let you identify an owning - object. An owning object must - be in the same namespace as - the dependent, or be cluster-scoped, - so there is no namespace field. properties: apiVersion: - description: API version - of the referent. type: string blockOwnerDeletion: - description: If true, AND - if the owner has the "foregroundDeletion" - finalizer, then the owner - cannot be deleted from - the key-value store until - this reference is removed. - See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage collector - interacts with this field - and enforces the foreground - deletion. Defaults to - false. To set this field, - a user needs "delete" - permission of the owner, - otherwise 422 (Unprocessable - Entity) will be returned. type: boolean controller: - description: If true, this - reference points to the - managing controller. type: boolean kind: - description: 'Kind of the - referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of the - referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the - referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -9003,61 +3571,19 @@ spec: type: array type: object spec: - description: The specification for - the PersistentVolumeClaim. The entire - content is copied unchanged into - the PVC that gets created from this - template. The same fields as in - a PersistentVolumeClaim are also - valid here. properties: accessModes: - description: 'accessModes contains - the desired access modes the - volume should have. More info: - https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource field - can be used to specify either: - * An existing VolumeSnapshot - object (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an external - controller can support the specified - data source, it will create - a new volume based on the contents - of the specified data source. - When the AnyVolumeDataSource - feature gate is enabled, dataSource - contents will be copied to dataSourceRef, - and dataSourceRef contents will - be copied to dataSource when - dataSourceRef.namespace is not - specified. If the namespace - is specified, then dataSourceRef - will not be copied to dataSource.' properties: apiGroup: - description: APIGroup is the - group for the resource being - referenced. If APIGroup - is not specified, the specified - Kind must be in the core - API group. For any other - third-party types, APIGroup - is required. type: string kind: - description: Kind is the type - of resource being referenced type: string name: - description: Name is the name - of resource being referenced type: string required: - kind @@ -9065,103 +3591,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef specifies - the object from which to populate - the volume with data, if a non-empty - volume is desired. This may - be any object from a non-empty - API group (non core object) - or a PersistentVolumeClaim object. - When this field is specified, - volume binding will only succeed - if the type of the specified - object matches some installed - volume populator or dynamic - provisioner. This field will - replace the functionality of - the dataSource field and as - such if both fields are non-empty, - they must have the same value. - For backwards compatibility, - when namespace isn''t specified - in dataSourceRef, both fields - (dataSource and dataSourceRef) - will be set to the same value - automatically if one of them - is empty and the other is non-empty. - When namespace is specified - in dataSourceRef, dataSource - isn''t set to the same value - and must be empty. There are - three important differences - between dataSource and dataSourceRef: - * While dataSource only allows - two specific types of objects, - dataSourceRef allows any non-core - object, as well as PersistentVolumeClaim - objects. * While dataSource - ignores disallowed values (dropping - them), dataSourceRef preserves - all values, and generates an - error if a disallowed value - is specified. * While dataSource - only allows local objects, dataSourceRef - allows objects in any namespaces. - (Beta) Using this field requires - the AnyVolumeDataSource feature - gate to be enabled. (Alpha) - Using the namespace field of - dataSourceRef requires the CrossNamespaceVolumeDataSource - feature gate to be enabled.' properties: apiGroup: - description: APIGroup is the - group for the resource being - referenced. If APIGroup - is not specified, the specified - Kind must be in the core - API group. For any other - third-party types, APIGroup - is required. type: string kind: - description: Kind is the type - of resource being referenced type: string name: - description: Name is the name - of resource being referenced type: string namespace: - description: Namespace is - the namespace of resource - being referenced Note that - when a namespace is specified, - a gateway.networking.k8s.io/ReferenceGrant - object is required in the - referent namespace to allow - that namespace's owner to - accept the reference. See - the ReferenceGrant documentation - for details. (Alpha) This - field requires the CrossNamespaceVolumeDataSource - feature gate to be enabled. type: string required: - kind - name type: object resources: - description: 'resources represents - the minimum resources the volume - should have. If RecoverVolumeExpansionFailure - feature is enabled users are - allowed to specify resource - requirements that are lower - than previous value but must - still be higher than capacity - recorded in the status field - of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -9170,10 +3613,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes - the maximum amount of compute - resources allowed. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -9182,64 +3621,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes - the minimum amount of compute - resources required. If Requests - is omitted for a container, - it defaults to Limits if - that is explicitly specified, - otherwise to an implementation-defined - value. Requests cannot exceed - Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is a label - query over volumes to consider - for binding. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to a - set of values. Valid - operators are In, - NotIn, Exists and - DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, the - values array must - be non-empty. If the - operator is Exists - or DoesNotExist, the - values array must - be empty. This array - is replaced during - a strategic merge - patch. items: type: string type: array @@ -9253,68 +3646,16 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in - the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName - is the name of the StorageClass - required by the claim. More - info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName - may be used to set the VolumeAttributesClass - used by this claim. If specified, - the CSI driver will create or - update the volume with the attributes - defined in the corresponding - VolumeAttributesClass. This - has a different purpose than - storageClassName, it can be - changed after the claim is created. - An empty string value means - that no VolumeAttributesClass - will be applied to the claim - but it''s not allowed to reset - this field to empty string once - it is set. If unspecified and - the PersistentVolumeClaim is - unbound, the default VolumeAttributesClass - will be set by the persistentvolume - controller if it exists. If - the resource referred to by - volumeAttributesClass does not - exist, this PersistentVolumeClaim - will be set to a Pending state, - as reflected by the modifyVolumeStatus - field, until such as a resource - exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires - the VolumeAttributesClass feature - gate to be enabled.' type: string volumeMode: - description: volumeMode defines - what type of volume is required - by the claim. Value of Filesystem - is implied when not included - in claim spec. type: string volumeName: - description: volumeName is the - binding reference to the PersistentVolume - backing this claim. type: string type: object required: @@ -9322,98 +3663,41 @@ spec: type: object type: object fc: - description: fc represents a Fibre Channel - resource that is attached to a kubelet's - host machine and then exposed to the pod. properties: fsType: - description: 'fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. - TODO: how do we prevent errors in the - filesystem from compromising the machine' type: string lun: - description: 'lun is Optional: FC target - lun number' format: int32 type: integer readOnly: - description: 'readOnly is Optional: Defaults - to false (read/write). ReadOnly here - will force the ReadOnly setting in VolumeMounts.' type: boolean targetWWNs: - description: 'targetWWNs is Optional: - FC target worldwide names (WWNs)' items: type: string type: array x-kubernetes-list-type: atomic wwids: - description: 'wwids Optional: FC volume - world wide identifiers (wwids) Either - wwids or combination of targetWWNs and - lun must be set, but not both simultaneously.' items: type: string type: array x-kubernetes-list-type: atomic type: object flexVolume: - description: flexVolume represents a generic - volume resource that is provisioned/attached - using an exec based plugin. properties: driver: - description: driver is the name of the - driver to use for this volume. type: string fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". The - default filesystem depends on FlexVolume - script. type: string options: additionalProperties: type: string - description: 'options is Optional: this - field holds extra command options if - any.' type: object readOnly: - description: 'readOnly is Optional: defaults - to false (read/write). ReadOnly here - will force the ReadOnly setting in VolumeMounts.' type: boolean secretRef: - description: 'secretRef is Optional: secretRef - is reference to the secret object containing - sensitive information to pass to the - plugin scripts. This may be empty if - no secret object is specified. If the - secret object contains more than one - secret, all secrets are passed to the - plugin scripts.' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic @@ -9421,201 +3705,79 @@ spec: - driver type: object flocker: - description: flocker represents a Flocker - volume attached to a kubelet's host machine. - This depends on the Flocker control service - being running properties: datasetName: - description: datasetName is Name of the - dataset stored as metadata -> name on - the dataset for Flocker should be considered - as deprecated type: string datasetUUID: - description: datasetUUID is the UUID of - the dataset. This is unique identifier - of a Flocker dataset type: string type: object gcePersistentDisk: - description: 'gcePersistentDisk represents - a GCE Disk resource that is attached to - a kubelet''s host machine and then exposed - to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' properties: fsType: - description: 'fsType is filesystem type - of the volume that you want to mount. - Tip: Ensure that the filesystem type - is supported by the host operating system. - Examples: "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. - More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the - filesystem from compromising the machine' type: string partition: - description: 'partition is the partition - in the volume that you want to mount. - If omitted, the default is to mount - by volume name. Examples: For volume - /dev/sda1, you specify the partition - as "1". Similarly, the volume partition - for /dev/sda is "0" (or you can leave - the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' format: int32 type: integer pdName: - description: 'pdName is unique name of - the PD resource in GCE. Used to identify - the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: string readOnly: - description: 'readOnly here will force - the ReadOnly setting in VolumeMounts. - Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: boolean required: - pdName type: object glusterfs: - description: 'glusterfs represents a Glusterfs - mount on the host that shares a pod''s lifetime. - More info: https://examples.k8s.io/volumes/glusterfs/README.md' properties: endpoints: - description: 'endpoints is the endpoint - name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string path: - description: 'path is the Glusterfs volume - path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string readOnly: - description: 'readOnly here will force - the Glusterfs volume to be mounted with - read-only permissions. Defaults to false. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: boolean required: - endpoints - path type: object hostPath: - description: 'hostPath represents a pre-existing - file or directory on the host machine that - is directly exposed to the container. This - is generally used for system agents or other - privileged things that are allowed to see - the host machine. Most containers will NOT - need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- TODO(jonesdl) We need to restrict who - can use host directory mounts and who can/can - not mount host directories as read/write.' properties: path: - description: 'path of the directory on - the host. If the path is a symlink, - it will follow the link to the real - path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string type: - description: 'type for HostPath Volume - Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string required: - path type: object iscsi: - description: 'iscsi represents an ISCSI Disk - resource that is attached to a kubelet''s - host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md' properties: chapAuthDiscovery: - description: chapAuthDiscovery defines - whether support iSCSI Discovery CHAP - authentication type: boolean chapAuthSession: - description: chapAuthSession defines whether - support iSCSI Session CHAP authentication type: boolean fsType: - description: 'fsType is the filesystem - type of the volume that you want to - mount. Tip: Ensure that the filesystem - type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the - filesystem from compromising the machine' type: string initiatorName: - description: initiatorName is the custom - iSCSI Initiator Name. If initiatorName - is specified with iscsiInterface simultaneously, - new iSCSI interface : will be created for the connection. type: string iqn: - description: iqn is the target iSCSI Qualified - Name. type: string iscsiInterface: - description: iscsiInterface is the interface - Name that uses an iSCSI transport. Defaults - to 'default' (tcp). type: string lun: - description: lun represents iSCSI Target - Lun number. format: int32 type: integer portals: - description: portals is the iSCSI Target - Portal List. The portal is either an - IP or ip_addr:port if the port is other - than default (typically TCP ports 860 - and 3260). items: type: string type: array x-kubernetes-list-type: atomic readOnly: - description: readOnly here will force - the ReadOnly setting in VolumeMounts. - Defaults to false. type: boolean secretRef: - description: secretRef is the CHAP Secret - for iSCSI target and initiator authentication properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic targetPortal: - description: targetPortal is iSCSI Target - Portal. The Portal is either an IP or - ip_addr:port if the port is other than - default (typically TCP ports 860 and - 3260). type: string required: - iqn @@ -9623,191 +3785,66 @@ spec: - targetPortal type: object nfs: - description: 'nfs represents an NFS mount - on the host that shares a pod''s lifetime - More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' properties: path: - description: 'path that is exported by - the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string readOnly: - description: 'readOnly here will force - the NFS export to be mounted with read-only - permissions. Defaults to false. More - info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: boolean server: - description: 'server is the hostname or - IP address of the NFS server. More info: - https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string required: - path - server type: object persistentVolumeClaim: - description: 'persistentVolumeClaimVolumeSource - represents a reference to a PersistentVolumeClaim - in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: claimName: - description: 'claimName is the name of - a PersistentVolumeClaim in the same - namespace as the pod using this volume. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' type: string readOnly: - description: readOnly Will force the ReadOnly - setting in VolumeMounts. Default false. type: boolean required: - claimName type: object photonPersistentDisk: - description: photonPersistentDisk represents - a PhotonController persistent disk attached - and mounted on kubelets host machine properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string pdID: - description: pdID is the ID that identifies - Photon Controller persistent disk type: string required: - pdID type: object portworxVolume: - description: portworxVolume represents a portworx - volume attached and mounted on kubelets - host machine properties: fsType: - description: fSType represents the filesystem - type to mount Must be a filesystem type - supported by the host operating system. - Ex. "ext4", "xfs". Implicitly inferred - to be "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean volumeID: - description: volumeID uniquely identifies - a Portworx volume type: string required: - volumeID type: object projected: - description: projected items for all in one - resources secrets, configmaps, and downward - API properties: defaultMode: - description: defaultMode are the mode - bits used to set permissions on created - files by default. Must be an octal value - between 0000 and 0777 or a decimal value - between 0 and 511. YAML accepts both - octal and decimal values, JSON requires - decimal values for mode bits. Directories - within the path are not affected by - this setting. This might be in conflict - with other options that affect the file - mode, like fsGroup, and the result can - be other mode bits set. format: int32 type: integer sources: - description: sources is the list of volume - projections items: - description: Projection that may be - projected along with other supported - volume types properties: clusterTrustBundle: - description: "ClusterTrustBundle - allows a pod to access the `.spec.trustBundle` - field of ClusterTrustBundle objects - in an auto-updating file. \n Alpha, - gated by the ClusterTrustBundleProjection - feature gate. \n ClusterTrustBundle - objects can either be selected - by name, or by the combination - of signer name and a label selector. - \n Kubelet performs aggressive - normalization of the PEM contents - written into the pod filesystem. - \ Esoteric PEM features such as - inter-block comments and block - headers are stripped. Certificates - are deduplicated. The ordering - of certificates within the file - is arbitrary, and Kubelet may - change the order over time." properties: labelSelector: - description: Select all ClusterTrustBundles - that match this label selector. Only - has effect if signerName is - set. Mutually-exclusive with - name. If unset, interpreted - as "match nothing". If set - but empty, interpreted as - "match everything". properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key - and values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, Exists - and DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -9821,115 +3858,31 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an element - of matchExpressions, whose - key field is "key", the - operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic name: - description: Select a single - ClusterTrustBundle by object - name. Mutually-exclusive - with signerName and labelSelector. type: string optional: - description: If true, don't - block pod startup if the referenced - ClusterTrustBundle(s) aren't - available. If using name, - then the named ClusterTrustBundle - is allowed not to exist. If - using signerName, then the - combination of signerName - and labelSelector is allowed - to match zero ClusterTrustBundles. type: boolean path: - description: Relative path from - the volume root to write the - bundle. type: string signerName: - description: Select all ClusterTrustBundles - that match this signer name. - Mutually-exclusive with name. The - contents of all selected ClusterTrustBundles - will be unified and deduplicated. type: string required: - path type: object configMap: - description: configMap information - about the configMap data to project properties: items: - description: items if unspecified, - each key-value pair in the - Data field of the referenced - ConfigMap will be projected - into the volume as a file - whose name is the key and - content is the value. If specified, - the listed keys will be projected - into the specified paths, - and unlisted keys will not - be present. If a key is specified - which is not present in the - ConfigMap, the volume setup - will error unless it is marked - optional. Paths must be relative - and may not contain the '..' - path or start with '..'. items: - description: Maps a string - key to a path within a volume. properties: key: - description: key is the - key to project. type: string mode: - description: 'mode is - Optional: mode bits - used to set permissions - on this file. Must be - an octal value between - 0000 and 0777 or a decimal - value between 0 and - 511. YAML accepts both - octal and decimal values, - JSON requires decimal - values for mode bits. - If not specified, the - volume defaultMode will - be used. This might - be in conflict with - other options that affect - the file mode, like - fsGroup, and the result - can be other mode bits - set.' format: int32 type: integer path: - description: path is the - relative path of the - file to map the key - to. May not be an absolute - path. May not contain - the path element '..'. - May not start with the - string '..'. type: string required: - key @@ -9939,128 +3892,42 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify - whether the ConfigMap or its - keys must be defined type: boolean type: object x-kubernetes-map-type: atomic downwardAPI: - description: downwardAPI information - about the downwardAPI data to - project properties: items: - description: Items is a list - of DownwardAPIVolume file items: - description: DownwardAPIVolumeFile - represents information to - create the file containing - the pod field properties: fieldRef: - description: 'Required: - Selects a field of the - pod: only annotations, - labels, name, namespace - and uid are supported.' properties: apiVersion: - description: Version - of the schema the - FieldPath is written - in terms of, defaults - to "v1". type: string fieldPath: - description: Path - of the field to - select in the specified - API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: - mode bits used to set - permissions on this - file, must be an octal - value between 0000 and - 0777 or a decimal value - between 0 and 511. YAML - accepts both octal and - decimal values, JSON - requires decimal values - for mode bits. If not - specified, the volume - defaultMode will be - used. This might be - in conflict with other - options that affect - the file mode, like - fsGroup, and the result - can be other mode bits - set.' format: int32 type: integer path: - description: 'Required: - Path is the relative - path name of the file - to be created. Must - not be absolute or contain - the ''..'' path. Must - be utf-8 encoded. The - first item of the relative - path must not start - with ''..''' type: string resourceFieldRef: - description: 'Selects - a resource of the container: - only resources limits - and requests (limits.cpu, - limits.memory, requests.cpu - and requests.memory) - are currently supported.' properties: containerName: - description: 'Container - name: required for - volumes, optional - for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies - the output format - of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: - resource to select' type: string required: - resource @@ -10073,67 +3940,16 @@ spec: x-kubernetes-list-type: atomic type: object secret: - description: secret information - about the secret data to project properties: items: - description: items if unspecified, - each key-value pair in the - Data field of the referenced - Secret will be projected into - the volume as a file whose - name is the key and content - is the value. If specified, - the listed keys will be projected - into the specified paths, - and unlisted keys will not - be present. If a key is specified - which is not present in the - Secret, the volume setup will - error unless it is marked - optional. Paths must be relative - and may not contain the '..' - path or start with '..'. items: - description: Maps a string - key to a path within a volume. properties: key: - description: key is the - key to project. type: string mode: - description: 'mode is - Optional: mode bits - used to set permissions - on this file. Must be - an octal value between - 0000 and 0777 or a decimal - value between 0 and - 511. YAML accepts both - octal and decimal values, - JSON requires decimal - values for mode bits. - If not specified, the - volume defaultMode will - be used. This might - be in conflict with - other options that affect - the file mode, like - fsGroup, and the result - can be other mode bits - set.' format: int32 type: integer path: - description: path is the - relative path of the - file to map the key - to. May not be an absolute - path. May not contain - the path element '..'. - May not start with the - string '..'. type: string required: - key @@ -10143,66 +3959,19 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional field - specify whether the Secret - or its key must be defined type: boolean type: object x-kubernetes-map-type: atomic serviceAccountToken: - description: serviceAccountToken - is information about the serviceAccountToken - data to project properties: audience: - description: audience is the - intended audience of the token. - A recipient of a token must - identify itself with an identifier - specified in the audience - of the token, and otherwise - should reject the token. The - audience defaults to the identifier - of the apiserver. type: string expirationSeconds: - description: expirationSeconds - is the requested duration - of validity of the service - account token. As the token - approaches expiration, the - kubelet volume plugin will - proactively rotate the service - account token. The kubelet - will start trying to rotate - the token if the token is - older than 80 percent of its - time to live or if the token - is older than 24 hours.Defaults - to 1 hour and must be at least - 10 minutes. format: int64 type: integer path: - description: path is the path - relative to the mount point - of the file to project the - token into. type: string required: - path @@ -10212,188 +3981,79 @@ spec: x-kubernetes-list-type: atomic type: object quobyte: - description: quobyte represents a Quobyte - mount on the host that shares a pod's lifetime properties: group: - description: group to map volume access - to Default is no group type: string readOnly: - description: readOnly here will force - the Quobyte volume to be mounted with - read-only permissions. Defaults to false. type: boolean registry: - description: registry represents a single - or multiple Quobyte Registry services - specified as a string as host:port pair - (multiple entries are separated with - commas) which acts as the central registry - for volumes type: string tenant: - description: tenant owning the given Quobyte - volume in the Backend Used with dynamically - provisioned Quobyte volumes, value is - set by the plugin type: string user: - description: user to map volume access - to Defaults to serivceaccount user type: string volume: - description: volume is a string that references - an already created Quobyte volume by - name. type: string required: - registry - volume type: object rbd: - description: 'rbd represents a Rados Block - Device mount on the host that shares a pod''s - lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md' properties: fsType: - description: 'fsType is the filesystem - type of the volume that you want to - mount. Tip: Ensure that the filesystem - type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the - filesystem from compromising the machine' type: string image: - description: 'image is the rados image - name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string keyring: - description: 'keyring is the path to key - ring for RBDUser. Default is /etc/ceph/keyring. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string monitors: - description: 'monitors is a collection - of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic pool: - description: 'pool is the rados pool name. - Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string readOnly: - description: 'readOnly here will force - the ReadOnly setting in VolumeMounts. - Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: boolean secretRef: - description: 'secretRef is name of the - authentication secret for RBDUser. If - provided overrides keyring. Default - is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is the rados user name. - Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string required: - image - monitors type: object scaleIO: - description: scaleIO represents a ScaleIO - persistent volume attached and mounted on - Kubernetes nodes. properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". Default - is "xfs". type: string gateway: - description: gateway is the host address - of the ScaleIO API Gateway. type: string protectionDomain: - description: protectionDomain is the name - of the ScaleIO Protection Domain for - the configured storage. type: string readOnly: - description: readOnly Defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean secretRef: - description: secretRef references to the - secret for ScaleIO user and other sensitive - information. If this is not provided, - Login operation will fail. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic sslEnabled: - description: sslEnabled Flag enable/disable - SSL communication with Gateway, default - false type: boolean storageMode: - description: storageMode indicates whether - the storage for a volume should be ThickProvisioned - or ThinProvisioned. Default is ThinProvisioned. type: string storagePool: - description: storagePool is the ScaleIO - Storage Pool associated with the protection - domain. type: string system: - description: system is the name of the - storage system as configured in ScaleIO. type: string volumeName: - description: volumeName is the name of - a volume already created in the ScaleIO - system that is associated with this - volume source. type: string required: - gateway @@ -10401,71 +4061,19 @@ spec: - system type: object secret: - description: 'secret represents a secret that - should populate this volume. More info: - https://kubernetes.io/docs/concepts/storage/volumes#secret' properties: defaultMode: - description: 'defaultMode is Optional: - mode bits used to set permissions on - created files by default. Must be an - octal value between 0000 and 0777 or - a decimal value between 0 and 511. YAML - accepts both octal and decimal values, - JSON requires decimal values for mode - bits. Defaults to 0644. Directories - within the path are not affected by - this setting. This might be in conflict - with other options that affect the file - mode, like fsGroup, and the result can - be other mode bits set.' format: int32 type: integer items: - description: items If unspecified, each - key-value pair in the Data field of - the referenced Secret will be projected - into the volume as a file whose name - is the key and content is the value. - If specified, the listed keys will be - projected into the specified paths, - and unlisted keys will not be present. - If a key is specified which is not present - in the Secret, the volume setup will - error unless it is marked optional. - Paths must be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key to a - path within a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an octal - value between 0000 and 0777 or - a decimal value between 0 and - 511. YAML accepts both octal and - decimal values, JSON requires - decimal values for mode bits. - If not specified, the volume defaultMode - will be used. This might be in - conflict with other options that - affect the file mode, like fsGroup, - and the result can be other mode - bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the key - to. May not be an absolute path. - May not contain the path element - '..'. May not start with the string - '..'. type: string required: - key @@ -10474,212 +4082,60 @@ spec: type: array x-kubernetes-list-type: atomic optional: - description: optional field specify whether - the Secret or its keys must be defined type: boolean secretName: - description: 'secretName is the name of - the secret in the pod''s namespace to - use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' type: string type: object storageos: - description: storageOS represents a StorageOS - volume attached and mounted on Kubernetes - nodes. properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean secretRef: - description: secretRef specifies the secret - to use for obtaining the StorageOS API - credentials. If not specified, default - values will be attempted. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeName: - description: volumeName is the human-readable - name of the StorageOS volume. Volume - names are only unique within a namespace. type: string volumeNamespace: - description: volumeNamespace specifies - the scope of the volume within StorageOS. If - no namespace is specified then the Pod's - namespace will be used. This allows - the Kubernetes name scoping to be mirrored - within StorageOS for tighter integration. - Set VolumeName to any name to override - the default behaviour. Set to "default" - if you are not using namespaces within - StorageOS. Namespaces that do not pre-exist - within StorageOS will be created. type: string type: object volumeClaimTemplate: - description: VolumeClaimTemplate specifies - a template for volume to use by the backup/restore - executor properties: metadata: - description: May contain labels and annotations - that will be copied into the PVC when - creating it. No other fields are allowed - and will be rejected during validation. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured - key value map stored with a resource - that may be set by external tools - to store and retrieve arbitrary - metadata. They are not queryable - and should be preserved when modifying - objects. More info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName is an optional - prefix, used by the server, to generate - a unique name ONLY IF the Name field - has not been provided. If this field - is used, the name returned to the - client will be different than the - name passed. This value will also - be combined with a unique suffix. - The provided value has the same - validation rules as the Name field, - and may be truncated by the length - of the suffix required to make the - value unique on the server. \n If - this field is specified and the - generated name exists, the server - will NOT return a 409 - instead, - it will either return 201 Created - or 500 with Reason ServerTimeout - indicating a unique name could not - be found in the time allotted, and - the client should retry (optionally - after the time indicated in the - Retry-After header). \n Applied - only if Name is not specified. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string keys and - values that can be used to organize - and categorize (scope and select) - objects. May match selectors of - replication controllers and services. - More info: http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must be unique - within a namespace. Is required - when creating resources, although - some resources may allow a client - to request the generation of an - appropriate name automatically. - Name is primarily intended for creation - idempotence and configuration definition. - Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace defines the - space within each name must be unique. - An empty namespace is equivalent - to the \"default\" namespace, but - \"default\" is the canonical representation. - Not all objects are required to - be scoped to a namespace - the value - of this field for those objects - will be empty. \n Must be a DNS_LABEL. - Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects depended - by this object. If ALL objects in - the list have been deleted, this - object will be garbage collected. - If this object is managed by a controller, - then an entry in this list will - point to this controller, with the - controller field set to true. There - cannot be more than one managing - controller. items: - description: OwnerReference contains - enough information to let you - identify an owning object. An - owning object must be in the same - namespace as the dependent, or - be cluster-scoped, so there is - no namespace field. properties: apiVersion: - description: API version of - the referent. type: string blockOwnerDeletion: - description: If true, AND if - the owner has the "foregroundDeletion" - finalizer, then the owner - cannot be deleted from the - key-value store until this - reference is removed. See - https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage collector - interacts with this field - and enforces the foreground - deletion. Defaults to false. - To set this field, a user - needs "delete" permission - of the owner, otherwise 422 - (Unprocessable Entity) will - be returned. type: boolean controller: - description: If true, this reference - points to the managing controller. type: boolean kind: - description: 'Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -10691,56 +4147,19 @@ spec: type: array type: object spec: - description: The specification for the - PersistentVolumeClaim. The entire content - is copied unchanged into the PVC that - gets created from this template. The - same fields as in a PersistentVolumeClaim - are also valid here. properties: accessModes: - description: 'accessModes contains - the desired access modes the volume - should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource field can - be used to specify either: * An - existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an external - controller can support the specified - data source, it will create a new - volume based on the contents of - the specified data source. When - the AnyVolumeDataSource feature - gate is enabled, dataSource contents - will be copied to dataSourceRef, - and dataSourceRef contents will - be copied to dataSource when dataSourceRef.namespace - is not specified. If the namespace - is specified, then dataSourceRef - will not be copied to dataSource.' properties: apiGroup: - description: APIGroup is the group - for the resource being referenced. - If APIGroup is not specified, - the specified Kind must be in - the core API group. For any - other third-party types, APIGroup - is required. type: string kind: - description: Kind is the type - of resource being referenced type: string name: - description: Name is the name - of resource being referenced type: string required: - kind @@ -10748,93 +4167,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef specifies - the object from which to populate - the volume with data, if a non-empty - volume is desired. This may be any - object from a non-empty API group - (non core object) or a PersistentVolumeClaim - object. When this field is specified, - volume binding will only succeed - if the type of the specified object - matches some installed volume populator - or dynamic provisioner. This field - will replace the functionality of - the dataSource field and as such - if both fields are non-empty, they - must have the same value. For backwards - compatibility, when namespace isn''t - specified in dataSourceRef, both - fields (dataSource and dataSourceRef) - will be set to the same value automatically - if one of them is empty and the - other is non-empty. When namespace - is specified in dataSourceRef, dataSource - isn''t set to the same value and - must be empty. There are three important - differences between dataSource and - dataSourceRef: * While dataSource - only allows two specific types of - objects, dataSourceRef allows any - non-core object, as well as PersistentVolumeClaim - objects. * While dataSource ignores - disallowed values (dropping them), - dataSourceRef preserves all values, - and generates an error if a disallowed - value is specified. * While dataSource - only allows local objects, dataSourceRef - allows objects in any namespaces. - (Beta) Using this field requires - the AnyVolumeDataSource feature - gate to be enabled. (Alpha) Using - the namespace field of dataSourceRef - requires the CrossNamespaceVolumeDataSource - feature gate to be enabled.' properties: apiGroup: - description: APIGroup is the group - for the resource being referenced. - If APIGroup is not specified, - the specified Kind must be in - the core API group. For any - other third-party types, APIGroup - is required. type: string kind: - description: Kind is the type - of resource being referenced type: string name: - description: Name is the name - of resource being referenced type: string namespace: - description: Namespace is the - namespace of resource being - referenced Note that when a - namespace is specified, a gateway.networking.k8s.io/ReferenceGrant - object is required in the referent - namespace to allow that namespace's - owner to accept the reference. - See the ReferenceGrant documentation - for details. (Alpha) This field - requires the CrossNamespaceVolumeDataSource - feature gate to be enabled. type: string required: - kind - name type: object resources: - description: 'resources represents - the minimum resources the volume - should have. If RecoverVolumeExpansionFailure - feature is enabled users are allowed - to specify resource requirements - that are lower than previous value - but must still be higher than capacity - recorded in the status field of - the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -10843,10 +4189,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes - the maximum amount of compute - resources allowed. More info: - https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -10855,56 +4197,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes - the minimum amount of compute - resources required. If Requests - is omitted for a container, - it defaults to Limits if that - is explicitly specified, otherwise - to an implementation-defined - value. Requests cannot exceed - Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is a label query - over volumes to consider for binding. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a key, - and an operator that relates - the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator represents - a key's relationship to - a set of values. Valid - operators are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values is an - array of string values. - If the operator is In - or NotIn, the values array - must be non-empty. If - the operator is Exists - or DoesNotExist, the values - array must be empty. This - array is replaced during - a strategic merge patch. items: type: string type: array @@ -10918,91 +4222,30 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a - map of {key,value} pairs. A - single {key,value} in the matchLabels - map is equivalent to an element - of matchExpressions, whose key - field is "key", the operator - is "In", and the values array - contains only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName is - the name of the StorageClass required - by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName - may be used to set the VolumeAttributesClass - used by this claim. If specified, - the CSI driver will create or update - the volume with the attributes defined - in the corresponding VolumeAttributesClass. - This has a different purpose than - storageClassName, it can be changed - after the claim is created. An empty - string value means that no VolumeAttributesClass - will be applied to the claim but - it''s not allowed to reset this - field to empty string once it is - set. If unspecified and the PersistentVolumeClaim - is unbound, the default VolumeAttributesClass - will be set by the persistentvolume - controller if it exists. If the - resource referred to by volumeAttributesClass - does not exist, this PersistentVolumeClaim - will be set to a Pending state, - as reflected by the modifyVolumeStatus - field, until such as a resource - exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires - the VolumeAttributesClass feature - gate to be enabled.' type: string volumeMode: - description: volumeMode defines what - type of volume is required by the - claim. Value of Filesystem is implied - when not included in claim spec. type: string volumeName: - description: volumeName is the binding - reference to the PersistentVolume - backing this claim. type: string type: object required: - spec type: object vsphereVolume: - description: vsphereVolume represents a vSphere - volume attached and mounted on kubelets - host machine properties: fsType: - description: fsType is filesystem type - to mount. Must be a filesystem type - supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string storagePolicyID: - description: storagePolicyID is the storage - Policy Based Management (SPBM) profile - ID associated with the StoragePolicyName. type: string storagePolicyName: - description: storagePolicyName is the - storage Policy Based Management (SPBM) - profile name. type: string volumePath: - description: volumePath is the path that - identifies vSphere volume vmdk type: string required: - volumePath @@ -11011,164 +4254,49 @@ spec: type: object type: array name: - description: Name indicates to the name of the task type: string params: - description: Params specifies parameters for the task. - You must provide the parameter in the Addon desired - structure. type: object x-kubernetes-preserve-unknown-fields: true targetVolumes: - description: TargetVolumes specifies which volumes from - the target should be mounted in the backup/restore - job/container. properties: volumeClaimTemplates: - description: VolumeClaimTemplates specifies a template - for the PersistentVolumeClaims that will be created - for each Pod in a StatefulSet. items: - description: PersistentVolumeClaim is a user's - request for and claim to a persistent volume properties: apiVersion: - description: 'APIVersion defines the versioned - schema of this representation of an object. - Servers should convert recognized schemas - to the latest internal value, and may reject - unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'Kind is a string value representing - the REST resource this object represents. - Servers may infer this from the endpoint - the client submits requests to. Cannot be - updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: - description: 'Standard object''s metadata. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata' properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured - key value map stored with a resource - that may be set by external tools to - store and retrieve arbitrary metadata. - They are not queryable and should be - preserved when modifying objects. More - info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName is an optional - prefix, used by the server, to generate - a unique name ONLY IF the Name field - has not been provided. If this field - is used, the name returned to the client - will be different than the name passed. - This value will also be combined with - a unique suffix. The provided value - has the same validation rules as the - Name field, and may be truncated by - the length of the suffix required to - make the value unique on the server. - \n If this field is specified and the - generated name exists, the server will - NOT return a 409 - instead, it will - either return 201 Created or 500 with - Reason ServerTimeout indicating a unique - name could not be found in the time - allotted, and the client should retry - (optionally after the time indicated - in the Retry-After header). \n Applied - only if Name is not specified. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string keys and values - that can be used to organize and categorize - (scope and select) objects. May match - selectors of replication controllers - and services. More info: http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must be unique within - a namespace. Is required when creating - resources, although some resources may - allow a client to request the generation - of an appropriate name automatically. - Name is primarily intended for creation - idempotence and configuration definition. - Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace defines the space - within each name must be unique. An - empty namespace is equivalent to the - \"default\" namespace, but \"default\" - is the canonical representation. Not - all objects are required to be scoped - to a namespace - the value of this field - for those objects will be empty. \n - Must be a DNS_LABEL. Cannot be updated. - More info: http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects depended - by this object. If ALL objects in the - list have been deleted, this object - will be garbage collected. If this object - is managed by a controller, then an - entry in this list will point to this - controller, with the controller field - set to true. There cannot be more than - one managing controller. items: - description: OwnerReference contains - enough information to let you identify - an owning object. An owning object - must be in the same namespace as the - dependent, or be cluster-scoped, so - there is no namespace field. properties: apiVersion: - description: API version of the - referent. type: string blockOwnerDeletion: - description: If true, AND if the - owner has the "foregroundDeletion" - finalizer, then the owner cannot - be deleted from the key-value - store until this reference is - removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage collector - interacts with this field and - enforces the foreground deletion. - Defaults to false. To set this - field, a user needs "delete" permission - of the owner, otherwise 422 (Unprocessable - Entity) will be returned. type: boolean controller: - description: If true, this reference - points to the managing controller. type: boolean kind: - description: 'Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -11180,51 +4308,19 @@ spec: type: array type: object spec: - description: 'Spec defines the desired characteristics - of a volume requested by a pod author. More - info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: accessModes: - description: 'accessModes contains the - desired access modes the volume should - have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource field can be - used to specify either: * An existing - VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an external controller - can support the specified data source, - it will create a new volume based on - the contents of the specified data source. - When the AnyVolumeDataSource feature - gate is enabled, dataSource contents - will be copied to dataSourceRef, and - dataSourceRef contents will be copied - to dataSource when dataSourceRef.namespace - is not specified. If the namespace is - specified, then dataSourceRef will not - be copied to dataSource.' properties: apiGroup: - description: APIGroup is the group - for the resource being referenced. - If APIGroup is not specified, the - specified Kind must be in the core - API group. For any other third-party - types, APIGroup is required. type: string kind: - description: Kind is the type of resource - being referenced type: string name: - description: Name is the name of resource - being referenced type: string required: - kind @@ -11232,88 +4328,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef specifies - the object from which to populate the - volume with data, if a non-empty volume - is desired. This may be any object from - a non-empty API group (non core object) - or a PersistentVolumeClaim object. When - this field is specified, volume binding - will only succeed if the type of the - specified object matches some installed - volume populator or dynamic provisioner. - This field will replace the functionality - of the dataSource field and as such - if both fields are non-empty, they must - have the same value. For backwards compatibility, - when namespace isn''t specified in dataSourceRef, - both fields (dataSource and dataSourceRef) - will be set to the same value automatically - if one of them is empty and the other - is non-empty. When namespace is specified - in dataSourceRef, dataSource isn''t - set to the same value and must be empty. - There are three important differences - between dataSource and dataSourceRef: - * While dataSource only allows two specific - types of objects, dataSourceRef allows - any non-core object, as well as PersistentVolumeClaim - objects. * While dataSource ignores - disallowed values (dropping them), dataSourceRef - preserves all values, and generates - an error if a disallowed value is specified. - * While dataSource only allows local - objects, dataSourceRef allows objects - in any namespaces. (Beta) Using this - field requires the AnyVolumeDataSource - feature gate to be enabled. (Alpha) - Using the namespace field of dataSourceRef - requires the CrossNamespaceVolumeDataSource - feature gate to be enabled.' properties: apiGroup: - description: APIGroup is the group - for the resource being referenced. - If APIGroup is not specified, the - specified Kind must be in the core - API group. For any other third-party - types, APIGroup is required. type: string kind: - description: Kind is the type of resource - being referenced type: string name: - description: Name is the name of resource - being referenced type: string namespace: - description: Namespace is the namespace - of resource being referenced Note - that when a namespace is specified, - a gateway.networking.k8s.io/ReferenceGrant - object is required in the referent - namespace to allow that namespace's - owner to accept the reference. See - the ReferenceGrant documentation - for details. (Alpha) This field - requires the CrossNamespaceVolumeDataSource - feature gate to be enabled. type: string required: - kind - name type: object resources: - description: 'resources represents the - minimum resources the volume should - have. If RecoverVolumeExpansionFailure - feature is enabled users are allowed - to specify resource requirements that - are lower than previous value but must - still be higher than capacity recorded - in the status field of the claim. More - info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -11322,9 +4350,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the - maximum amount of compute resources - allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -11333,52 +4358,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the - minimum amount of compute resources - required. If Requests is omitted - for a container, it defaults to - Limits if that is explicitly specified, - otherwise to an implementation-defined - value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is a label query - over volumes to consider for binding. properties: matchExpressions: - description: matchExpressions is a - list of label selector requirements. - The requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to a - set of values. Valid operators - are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an array - of string values. If the operator - is In or NotIn, the values - array must be non-empty. If - the operator is Exists or - DoesNotExist, the values array - must be empty. This array - is replaced during a strategic - merge patch. items: type: string type: array @@ -11392,132 +4383,28 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map - of {key,value} pairs. A single {key,value} - in the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName is the - name of the StorageClass required by - the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName - may be used to set the VolumeAttributesClass - used by this claim. If specified, the - CSI driver will create or update the - volume with the attributes defined in - the corresponding VolumeAttributesClass. - This has a different purpose than storageClassName, - it can be changed after the claim is - created. An empty string value means - that no VolumeAttributesClass will be - applied to the claim but it''s not allowed - to reset this field to empty string - once it is set. If unspecified and the - PersistentVolumeClaim is unbound, the - default VolumeAttributesClass will be - set by the persistentvolume controller - if it exists. If the resource referred - to by volumeAttributesClass does not - exist, this PersistentVolumeClaim will - be set to a Pending state, as reflected - by the modifyVolumeStatus field, until - such as a resource exists. More info: - https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires the - VolumeAttributesClass feature gate to - be enabled.' type: string volumeMode: - description: volumeMode defines what type - of volume is required by the claim. - Value of Filesystem is implied when - not included in claim spec. type: string volumeName: - description: volumeName is the binding - reference to the PersistentVolume backing - this claim. type: string type: object status: - description: 'Status represents the current - information/status of a persistent volume - claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: accessModes: - description: 'accessModes contains the - actual access modes the volume backing - the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic allocatedResourceStatuses: additionalProperties: - description: When a controller receives - persistentvolume claim update with - ClaimResourceStatus for a resource - that it does not recognizes, then - it should ignore that update and let - other controllers handle it. type: string - description: "allocatedResourceStatuses - stores status of resource being resized - for the given PVC. Key names follow - standard Kubernetes label syntax. Valid - values are either: * Un-prefixed keys: - - storage - the capacity of the volume. - * Custom resources must use implementation-defined - prefixed names such as \"example.com/my-custom-resource\" - Apart from above values - keys that - are unprefixed or have kubernetes.io - prefix are considered reserved and hence - may not be used. \n ClaimResourceStatus - can be in any of following states: - - ControllerResizeInProgress: State set - when resize controller starts resizing - the volume in control-plane. - ControllerResizeFailed: - State set when resize has failed in - resize controller with a terminal error. - - NodeResizePending: State set when - resize controller has finished resizing - the volume but further resizing of volume - is needed on the node. - NodeResizeInProgress: - State set when kubelet starts resizing - the volume. - NodeResizeFailed: State - set when resizing has failed in kubelet - with a terminal error. Transient errors - don't set NodeResizeFailed. For example: - if expanding a PVC for more capacity - - this field can be one of the following - states: - pvc.status.allocatedResourceStatus['storage'] - = \"ControllerResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] - = \"ControllerResizeFailed\" - pvc.status.allocatedResourceStatus['storage'] - = \"NodeResizePending\" - pvc.status.allocatedResourceStatus['storage'] - = \"NodeResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] - = \"NodeResizeFailed\" When this field - is not set, it means that no resize - operation is in progress for the given - PVC. \n A controller that receives PVC - update with previously unknown resourceName - or ClaimResourceStatus should ignore - the update for the purpose it was designed. - For example - a controller that only - is responsible for resizing capacity - of the volume, should ignore PVC updates - that change other valid resources associated - with PVC. \n This is an alpha field - and requires enabling RecoverVolumeExpansionFailure - feature." type: object x-kubernetes-map-type: granular allocatedResources: @@ -11527,40 +4414,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: "allocatedResources tracks - the resources allocated to a PVC including - its capacity. Key names follow standard - Kubernetes label syntax. Valid values - are either: * Un-prefixed keys: - storage - - the capacity of the volume. * Custom - resources must use implementation-defined - prefixed names such as \"example.com/my-custom-resource\" - Apart from above values - keys that - are unprefixed or have kubernetes.io - prefix are considered reserved and hence - may not be used. \n Capacity reported - here may be larger than the actual capacity - when a volume expansion operation is - requested. For storage quota, the larger - value from allocatedResources and PVC.spec.resources - is used. If allocatedResources is not - set, PVC.spec.resources alone is used - for quota calculation. If a volume expansion - capacity request is lowered, allocatedResources - is only lowered if there are no expansion - operations in progress and if the actual - volume capacity is equal or lower than - the requested capacity. \n A controller - that receives PVC update with previously - unknown resourceName should ignore the - update for the purpose it was designed. - For example - a controller that only - is responsible for resizing capacity - of the volume, should ignore PVC updates - that change other valid resources associated - with PVC. \n This is an alpha field - and requires enabling RecoverVolumeExpansionFailure - feature." type: object capacity: additionalProperties: @@ -11569,49 +4422,23 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: capacity represents the actual - resources of the underlying volume. type: object conditions: - description: conditions is the current - Condition of persistent volume claim. - If underlying persistent volume is being - resized then the Condition will be set - to 'Resizing'. items: - description: PersistentVolumeClaimCondition - contains details about state of pvc properties: lastProbeTime: - description: lastProbeTime is the - time we probed the condition. format: date-time type: string lastTransitionTime: - description: lastTransitionTime - is the time the condition transitioned - from one status to another. format: date-time type: string message: - description: message is the human-readable - message indicating details about - last transition. type: string reason: - description: reason is a unique, - this should be a short, machine - understandable string that gives - the reason for condition's last - transition. If it reports "Resizing" - that means the underlying persistent - volume is being resized. type: string status: type: string type: - description: PersistentVolumeClaimConditionType - is a valid value of PersistentVolumeClaimCondition.Type type: string required: - status @@ -11622,121 +4449,37 @@ spec: - type x-kubernetes-list-type: map currentVolumeAttributesClassName: - description: currentVolumeAttributesClassName - is the current name of the VolumeAttributesClass - the PVC is using. When unset, there - is no VolumeAttributeClass applied to - this PersistentVolumeClaim This is an - alpha field and requires enabling VolumeAttributesClass - feature. type: string modifyVolumeStatus: - description: ModifyVolumeStatus represents - the status object of ControllerModifyVolume - operation. When this is unset, there - is no ModifyVolume operation being attempted. - This is an alpha field and requires - enabling VolumeAttributesClass feature. properties: status: - description: 'status is the status - of the ControllerModifyVolume operation. - It can be in any of following states: - - Pending Pending indicates that - the PersistentVolumeClaim cannot - be modified due to unmet requirements, - such as the specified VolumeAttributesClass - not existing. - InProgress InProgress - indicates that the volume is being - modified. - Infeasible Infeasible - indicates that the request has been - rejected as invalid by the CSI driver. - To resolve the error, a valid VolumeAttributesClass - needs to be specified. Note: New - statuses can be added in the future. - Consumers should check for unknown - statuses and fail appropriately.' type: string targetVolumeAttributesClassName: - description: targetVolumeAttributesClassName - is the name of the VolumeAttributesClass - the PVC currently being reconciled type: string required: - status type: object phase: - description: phase represents the current - phase of PersistentVolumeClaim. type: string type: object type: object type: array volumeMounts: - description: VolumeMounts specifies the mount for - the volumes specified in `Volumes` section items: - description: VolumeMount describes a mounting - of a Volume within a container. properties: mountPath: - description: Path within the container at - which the volume should be mounted. Must - not contain ':'. type: string mountPropagation: - description: mountPropagation determines how - mounts are propagated from the host to container - and the other way around. When not set, - MountPropagationNone is used. This field - is beta in 1.10. When RecursiveReadOnly - is set to IfPossible or to Enabled, MountPropagation - must be None or unspecified (which defaults - to None). type: string name: - description: This must match the Name of a - Volume. type: string readOnly: - description: Mounted read-only if true, read-write - otherwise (false or unspecified). Defaults - to false. type: boolean recursiveReadOnly: - description: "RecursiveReadOnly specifies - whether read-only mounts should be handled - recursively. \n If ReadOnly is false, this - field has no meaning and must be unspecified. - \n If ReadOnly is true, and this field is - set to Disabled, the mount is not made recursively - read-only. If this field is set to IfPossible, - the mount is made recursively read-only, - if it is supported by the container runtime. - \ If this field is set to Enabled, the mount - is made recursively read-only if it is supported - by the container runtime, otherwise the - pod will not be started and an error will - be generated to indicate the reason. \n - If this field is set to IfPossible or Enabled, - MountPropagation must be set to None (or - be unspecified, which defaults to None). - \n If this field is not specified, it is - treated as an equivalent of Disabled." type: string subPath: - description: Path within the volume from which - the container's volume should be mounted. - Defaults to "" (volume's root). type: string subPathExpr: - description: Expanded path within the volume - from which the container's volume should - be mounted. Behaves similarly to SubPath - but environment variable references $(VAR_NAME) - are expanded using the container's environment. - Defaults to "" (volume's root). SubPathExpr - and SubPath are mutually exclusive. type: string required: - mountPath @@ -11744,291 +4487,109 @@ spec: type: object type: array volumes: - description: Volumes indicates the list of volumes - of targeted application that should be mounted - on the backup/restore job. items: - description: Volume represents a named volume - in a pod that may be accessed by any container - in the pod. properties: awsElasticBlockStore: - description: 'awsElasticBlockStore represents - an AWS Disk resource that is attached to - a kubelet''s host machine and then exposed - to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' properties: fsType: - description: 'fsType is the filesystem - type of the volume that you want to - mount. Tip: Ensure that the filesystem - type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the - filesystem from compromising the machine' type: string partition: - description: 'partition is the partition - in the volume that you want to mount. - If omitted, the default is to mount - by volume name. Examples: For volume - /dev/sda1, you specify the partition - as "1". Similarly, the volume partition - for /dev/sda is "0" (or you can leave - the property empty).' format: int32 type: integer readOnly: - description: 'readOnly value true will - force the readOnly setting in VolumeMounts. - More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: boolean volumeID: - description: 'volumeID is unique ID of - the persistent disk resource in AWS - (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: string required: - volumeID type: object azureDisk: - description: azureDisk represents an Azure - Data Disk mount on the host and bind mount - to the pod. properties: cachingMode: - description: 'cachingMode is the Host - Caching mode: None, Read Only, Read - Write.' type: string diskName: - description: diskName is the Name of the - data disk in the blob storage type: string diskURI: - description: diskURI is the URI of data - disk in the blob storage type: string fsType: - description: fsType is Filesystem type - to mount. Must be a filesystem type - supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string kind: - description: 'kind expected values are - Shared: multiple blob disks per storage - account Dedicated: single blob disk - per storage account Managed: azure - managed data disk (only in managed availability - set). defaults to shared' type: string readOnly: - description: readOnly Defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean required: - diskName - diskURI type: object azureFile: - description: azureFile represents an Azure - File Service mount on the host and bind - mount to the pod. properties: readOnly: - description: readOnly defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean secretName: - description: secretName is the name of - secret that contains Azure Storage Account - Name and Key type: string shareName: - description: shareName is the azure share - Name type: string required: - secretName - shareName type: object cephfs: - description: cephFS represents a Ceph FS mount - on the host that shares a pod's lifetime properties: monitors: - description: 'monitors is Required: Monitors - is a collection of Ceph monitors More - info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic path: - description: 'path is Optional: Used as - the mounted root, rather than the full - Ceph tree, default is /' type: string readOnly: - description: 'readOnly is Optional: Defaults - to false (read/write). ReadOnly here - will force the ReadOnly setting in VolumeMounts. - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: boolean secretFile: - description: 'secretFile is Optional: - SecretFile is the path to key ring for - User, default is /etc/ceph/user.secret - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string secretRef: - description: 'secretRef is Optional: SecretRef - is reference to the authentication secret - for User, default is empty. More info: - https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is optional: User is - the rados user name, default is admin - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string required: - monitors type: object cinder: - description: 'cinder represents a cinder volume - attached and mounted on kubelets host machine. - More info: https://examples.k8s.io/mysql-cinder-pd/README.md' properties: fsType: - description: 'fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string readOnly: - description: 'readOnly defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. - More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: boolean secretRef: - description: 'secretRef is optional: points - to a secret object containing parameters - used to connect to OpenStack.' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeID: - description: 'volumeID used to identify - the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string required: - volumeID type: object configMap: - description: configMap represents a configMap - that should populate this volume properties: defaultMode: - description: 'defaultMode is optional: - mode bits used to set permissions on - created files by default. Must be an - octal value between 0000 and 0777 or - a decimal value between 0 and 511. YAML - accepts both octal and decimal values, - JSON requires decimal values for mode - bits. Defaults to 0644. Directories - within the path are not affected by - this setting. This might be in conflict - with other options that affect the file - mode, like fsGroup, and the result can - be other mode bits set.' format: int32 type: integer items: - description: items if unspecified, each - key-value pair in the Data field of - the referenced ConfigMap will be projected - into the volume as a file whose name - is the key and content is the value. - If specified, the listed keys will be - projected into the specified paths, - and unlisted keys will not be present. - If a key is specified which is not present - in the ConfigMap, the volume setup will - error unless it is marked optional. - Paths must be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key to a - path within a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an octal - value between 0000 and 0777 or - a decimal value between 0 and - 511. YAML accepts both octal and - decimal values, JSON requires - decimal values for mode bits. - If not specified, the volume defaultMode - will be used. This might be in - conflict with other options that - affect the file mode, like fsGroup, - and the result can be other mode - bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the key - to. May not be an absolute path. - May not contain the path element - '..'. May not start with the string - '..'. type: string required: - key @@ -12038,185 +4599,67 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether - the ConfigMap or its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic csi: - description: csi (Container Storage Interface) - represents ephemeral storage that is handled - by certain external CSI drivers (Beta feature). properties: driver: - description: driver is the name of the - CSI driver that handles this volume. - Consult with your admin for the correct - name as registered in the cluster. type: string fsType: - description: fsType to mount. Ex. "ext4", - "xfs", "ntfs". If not provided, the - empty value is passed to the associated - CSI driver which will determine the - default filesystem to apply. type: string nodePublishSecretRef: - description: nodePublishSecretRef is a - reference to the secret object containing - sensitive information to pass to the - CSI driver to complete the CSI NodePublishVolume - and NodeUnpublishVolume calls. This - field is optional, and may be empty - if no secret is required. If the secret - object contains more than one secret, - all secret references are passed. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic readOnly: - description: readOnly specifies a read-only - configuration for the volume. Defaults - to false (read/write). type: boolean volumeAttributes: additionalProperties: type: string - description: volumeAttributes stores driver-specific - properties that are passed to the CSI - driver. Consult your driver's documentation - for supported values. type: object required: - driver type: object downwardAPI: - description: downwardAPI represents downward - API about the pod that should populate this - volume properties: defaultMode: - description: 'Optional: mode bits to use - on created files by default. Must be - a Optional: mode bits used to set permissions - on created files by default. Must be - an octal value between 0000 and 0777 - or a decimal value between 0 and 511. - YAML accepts both octal and decimal - values, JSON requires decimal values - for mode bits. Defaults to 0644. Directories - within the path are not affected by - this setting. This might be in conflict - with other options that affect the file - mode, like fsGroup, and the result can - be other mode bits set.' format: int32 type: integer items: - description: Items is a list of downward - API volume file items: - description: DownwardAPIVolumeFile represents - information to create the file containing - the pod field properties: fieldRef: - description: 'Required: Selects - a field of the pod: only annotations, - labels, name, namespace and uid - are supported.' properties: apiVersion: - description: Version of the - schema the FieldPath is written - in terms of, defaults to "v1". type: string fieldPath: - description: Path of the field - to select in the specified - API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode bits - used to set permissions on this - file, must be an octal value between - 0000 and 0777 or a decimal value - between 0 and 511. YAML accepts - both octal and decimal values, - JSON requires decimal values for - mode bits. If not specified, the - volume defaultMode will be used. - This might be in conflict with - other options that affect the - file mode, like fsGroup, and the - result can be other mode bits - set.' format: int32 type: integer path: - description: 'Required: Path is the - relative path name of the file - to be created. Must not be absolute - or contain the ''..'' path. Must - be utf-8 encoded. The first item - of the relative path must not - start with ''..''' type: string resourceFieldRef: - description: 'Selects a resource - of the container: only resources - limits and requests (limits.cpu, - limits.memory, requests.cpu and - requests.memory) are currently - supported.' properties: containerName: - description: 'Container name: - required for volumes, optional - for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource - to select' type: string required: - resource @@ -12229,232 +4672,50 @@ spec: x-kubernetes-list-type: atomic type: object emptyDir: - description: 'emptyDir represents a temporary - directory that shares a pod''s lifetime. - More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' properties: medium: - description: 'medium represents what type - of storage medium should back this directory. - The default is "" which means to use - the node''s default medium. Must be - an empty string (default) or Memory. - More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' type: string sizeLimit: anyOf: - type: integer - type: string - description: 'sizeLimit is the total amount - of local storage required for this EmptyDir - volume. The size limit is also applicable - for memory medium. The maximum usage - on memory medium EmptyDir would be the - minimum value between the SizeLimit - specified here and the sum of memory - limits of all containers in a pod. The - default is nil which means that the - limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object ephemeral: - description: "ephemeral represents a volume - that is handled by a cluster storage driver. - The volume's lifecycle is tied to the pod - that defines it - it will be created before - the pod starts, and deleted when the pod - is removed. \n Use this if: a) the volume - is only needed while the pod runs, b) features - of normal volumes like restoring from snapshot - or capacity tracking are needed, c) the - storage driver is specified through a storage - class, and d) the storage driver supports - dynamic volume provisioning through a PersistentVolumeClaim - (see EphemeralVolumeSource for more information - on the connection between this volume type - and PersistentVolumeClaim). \n Use PersistentVolumeClaim - or one of the vendor-specific APIs for volumes - that persist for longer than the lifecycle - of an individual pod. \n Use CSI for light-weight - local ephemeral volumes if the CSI driver - is meant to be used that way - see the documentation - of the driver for more information. \n A - pod can use both types of ephemeral volumes - and persistent volumes at the same time." properties: volumeClaimTemplate: - description: "Will be used to create a - stand-alone PVC to provision the volume. - The pod in which this EphemeralVolumeSource - is embedded will be the owner of the - PVC, i.e. the PVC will be deleted together - with the pod. The name of the PVC will - be `-` where - `` is the name from the - `PodSpec.Volumes` array entry. Pod validation - will reject the pod if the concatenated - name is not valid for a PVC (for example, - too long). \n An existing PVC with that - name that is not owned by the pod will - *not* be used for the pod to avoid using - an unrelated volume by mistake. Starting - the pod is then blocked until the unrelated - PVC is removed. If such a pre-created - PVC is meant to be used by the pod, - the PVC has to updated with an owner - reference to the pod once the pod exists. - Normally this should not be necessary, - but it may be useful when manually reconstructing - a broken cluster. \n This field is read-only - and no changes will be made by Kubernetes - to the PVC after it has been created. - \n Required, must not be nil." properties: metadata: - description: May contain labels and - annotations that will be copied - into the PVC when creating it. No - other fields are allowed and will - be rejected during validation. properties: annotations: additionalProperties: type: string - description: 'Annotations is an - unstructured key value map stored - with a resource that may be - set by external tools to store - and retrieve arbitrary metadata. - They are not queryable and should - be preserved when modifying - objects. More info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName is - an optional prefix, used by - the server, to generate a unique - name ONLY IF the Name field - has not been provided. If this - field is used, the name returned - to the client will be different - than the name passed. This value - will also be combined with a - unique suffix. The provided - value has the same validation - rules as the Name field, and - may be truncated by the length - of the suffix required to make - the value unique on the server. - \n If this field is specified - and the generated name exists, - the server will NOT return a - 409 - instead, it will either - return 201 Created or 500 with - Reason ServerTimeout indicating - a unique name could not be found - in the time allotted, and the - client should retry (optionally - after the time indicated in - the Retry-After header). \n - Applied only if Name is not - specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string keys - and values that can be used - to organize and categorize (scope - and select) objects. May match - selectors of replication controllers - and services. More info: http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must be unique - within a namespace. Is required - when creating resources, although - some resources may allow a client - to request the generation of - an appropriate name automatically. - Name is primarily intended for - creation idempotence and configuration - definition. Cannot be updated. - More info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace defines - the space within each name must - be unique. An empty namespace - is equivalent to the \"default\" - namespace, but \"default\" is - the canonical representation. - Not all objects are required - to be scoped to a namespace - - the value of this field for - those objects will be empty. - \n Must be a DNS_LABEL. Cannot - be updated. More info: http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects depended - by this object. If ALL objects - in the list have been deleted, - this object will be garbage - collected. If this object is - managed by a controller, then - an entry in this list will point - to this controller, with the - controller field set to true. - There cannot be more than one - managing controller. items: - description: OwnerReference - contains enough information - to let you identify an owning - object. An owning object must - be in the same namespace as - the dependent, or be cluster-scoped, - so there is no namespace field. properties: apiVersion: - description: API version - of the referent. type: string blockOwnerDeletion: - description: If true, AND - if the owner has the "foregroundDeletion" - finalizer, then the owner - cannot be deleted from - the key-value store until - this reference is removed. - See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage collector - interacts with this field - and enforces the foreground - deletion. Defaults to - false. To set this field, - a user needs "delete" - permission of the owner, - otherwise 422 (Unprocessable - Entity) will be returned. type: boolean controller: - description: If true, this - reference points to the - managing controller. type: boolean kind: - description: 'Kind of the - referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of the - referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the - referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -12466,61 +4727,19 @@ spec: type: array type: object spec: - description: The specification for - the PersistentVolumeClaim. The entire - content is copied unchanged into - the PVC that gets created from this - template. The same fields as in - a PersistentVolumeClaim are also - valid here. properties: accessModes: - description: 'accessModes contains - the desired access modes the - volume should have. More info: - https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource field - can be used to specify either: - * An existing VolumeSnapshot - object (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an external - controller can support the specified - data source, it will create - a new volume based on the contents - of the specified data source. - When the AnyVolumeDataSource - feature gate is enabled, dataSource - contents will be copied to dataSourceRef, - and dataSourceRef contents will - be copied to dataSource when - dataSourceRef.namespace is not - specified. If the namespace - is specified, then dataSourceRef - will not be copied to dataSource.' properties: apiGroup: - description: APIGroup is the - group for the resource being - referenced. If APIGroup - is not specified, the specified - Kind must be in the core - API group. For any other - third-party types, APIGroup - is required. type: string kind: - description: Kind is the type - of resource being referenced type: string name: - description: Name is the name - of resource being referenced type: string required: - kind @@ -12528,103 +4747,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef specifies - the object from which to populate - the volume with data, if a non-empty - volume is desired. This may - be any object from a non-empty - API group (non core object) - or a PersistentVolumeClaim object. - When this field is specified, - volume binding will only succeed - if the type of the specified - object matches some installed - volume populator or dynamic - provisioner. This field will - replace the functionality of - the dataSource field and as - such if both fields are non-empty, - they must have the same value. - For backwards compatibility, - when namespace isn''t specified - in dataSourceRef, both fields - (dataSource and dataSourceRef) - will be set to the same value - automatically if one of them - is empty and the other is non-empty. - When namespace is specified - in dataSourceRef, dataSource - isn''t set to the same value - and must be empty. There are - three important differences - between dataSource and dataSourceRef: - * While dataSource only allows - two specific types of objects, - dataSourceRef allows any non-core - object, as well as PersistentVolumeClaim - objects. * While dataSource - ignores disallowed values (dropping - them), dataSourceRef preserves - all values, and generates an - error if a disallowed value - is specified. * While dataSource - only allows local objects, dataSourceRef - allows objects in any namespaces. - (Beta) Using this field requires - the AnyVolumeDataSource feature - gate to be enabled. (Alpha) - Using the namespace field of - dataSourceRef requires the CrossNamespaceVolumeDataSource - feature gate to be enabled.' properties: apiGroup: - description: APIGroup is the - group for the resource being - referenced. If APIGroup - is not specified, the specified - Kind must be in the core - API group. For any other - third-party types, APIGroup - is required. type: string kind: - description: Kind is the type - of resource being referenced type: string name: - description: Name is the name - of resource being referenced type: string namespace: - description: Namespace is - the namespace of resource - being referenced Note that - when a namespace is specified, - a gateway.networking.k8s.io/ReferenceGrant - object is required in the - referent namespace to allow - that namespace's owner to - accept the reference. See - the ReferenceGrant documentation - for details. (Alpha) This - field requires the CrossNamespaceVolumeDataSource - feature gate to be enabled. type: string required: - kind - name type: object resources: - description: 'resources represents - the minimum resources the volume - should have. If RecoverVolumeExpansionFailure - feature is enabled users are - allowed to specify resource - requirements that are lower - than previous value but must - still be higher than capacity - recorded in the status field - of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -12633,10 +4769,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes - the maximum amount of compute - resources allowed. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -12645,64 +4777,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes - the minimum amount of compute - resources required. If Requests - is omitted for a container, - it defaults to Limits if - that is explicitly specified, - otherwise to an implementation-defined - value. Requests cannot exceed - Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is a label - query over volumes to consider - for binding. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to a - set of values. Valid - operators are In, - NotIn, Exists and - DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, the - values array must - be non-empty. If the - operator is Exists - or DoesNotExist, the - values array must - be empty. This array - is replaced during - a strategic merge - patch. items: type: string type: array @@ -12716,68 +4802,16 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in - the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName - is the name of the StorageClass - required by the claim. More - info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName - may be used to set the VolumeAttributesClass - used by this claim. If specified, - the CSI driver will create or - update the volume with the attributes - defined in the corresponding - VolumeAttributesClass. This - has a different purpose than - storageClassName, it can be - changed after the claim is created. - An empty string value means - that no VolumeAttributesClass - will be applied to the claim - but it''s not allowed to reset - this field to empty string once - it is set. If unspecified and - the PersistentVolumeClaim is - unbound, the default VolumeAttributesClass - will be set by the persistentvolume - controller if it exists. If - the resource referred to by - volumeAttributesClass does not - exist, this PersistentVolumeClaim - will be set to a Pending state, - as reflected by the modifyVolumeStatus - field, until such as a resource - exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires - the VolumeAttributesClass feature - gate to be enabled.' type: string volumeMode: - description: volumeMode defines - what type of volume is required - by the claim. Value of Filesystem - is implied when not included - in claim spec. type: string volumeName: - description: volumeName is the - binding reference to the PersistentVolume - backing this claim. type: string type: object required: @@ -12785,98 +4819,41 @@ spec: type: object type: object fc: - description: fc represents a Fibre Channel - resource that is attached to a kubelet's - host machine and then exposed to the pod. properties: fsType: - description: 'fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. - TODO: how do we prevent errors in the - filesystem from compromising the machine' type: string lun: - description: 'lun is Optional: FC target - lun number' format: int32 type: integer readOnly: - description: 'readOnly is Optional: Defaults - to false (read/write). ReadOnly here - will force the ReadOnly setting in VolumeMounts.' type: boolean targetWWNs: - description: 'targetWWNs is Optional: - FC target worldwide names (WWNs)' items: type: string type: array x-kubernetes-list-type: atomic wwids: - description: 'wwids Optional: FC volume - world wide identifiers (wwids) Either - wwids or combination of targetWWNs and - lun must be set, but not both simultaneously.' items: type: string type: array x-kubernetes-list-type: atomic type: object flexVolume: - description: flexVolume represents a generic - volume resource that is provisioned/attached - using an exec based plugin. properties: driver: - description: driver is the name of the - driver to use for this volume. type: string fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". The - default filesystem depends on FlexVolume - script. type: string options: additionalProperties: type: string - description: 'options is Optional: this - field holds extra command options if - any.' type: object readOnly: - description: 'readOnly is Optional: defaults - to false (read/write). ReadOnly here - will force the ReadOnly setting in VolumeMounts.' type: boolean secretRef: - description: 'secretRef is Optional: secretRef - is reference to the secret object containing - sensitive information to pass to the - plugin scripts. This may be empty if - no secret object is specified. If the - secret object contains more than one - secret, all secrets are passed to the - plugin scripts.' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic @@ -12884,201 +4861,79 @@ spec: - driver type: object flocker: - description: flocker represents a Flocker - volume attached to a kubelet's host machine. - This depends on the Flocker control service - being running properties: datasetName: - description: datasetName is Name of the - dataset stored as metadata -> name on - the dataset for Flocker should be considered - as deprecated type: string datasetUUID: - description: datasetUUID is the UUID of - the dataset. This is unique identifier - of a Flocker dataset type: string type: object gcePersistentDisk: - description: 'gcePersistentDisk represents - a GCE Disk resource that is attached to - a kubelet''s host machine and then exposed - to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' properties: fsType: - description: 'fsType is filesystem type - of the volume that you want to mount. - Tip: Ensure that the filesystem type - is supported by the host operating system. - Examples: "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. - More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the - filesystem from compromising the machine' type: string partition: - description: 'partition is the partition - in the volume that you want to mount. - If omitted, the default is to mount - by volume name. Examples: For volume - /dev/sda1, you specify the partition - as "1". Similarly, the volume partition - for /dev/sda is "0" (or you can leave - the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' format: int32 type: integer pdName: - description: 'pdName is unique name of - the PD resource in GCE. Used to identify - the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: string readOnly: - description: 'readOnly here will force - the ReadOnly setting in VolumeMounts. - Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: boolean required: - pdName type: object glusterfs: - description: 'glusterfs represents a Glusterfs - mount on the host that shares a pod''s lifetime. - More info: https://examples.k8s.io/volumes/glusterfs/README.md' properties: endpoints: - description: 'endpoints is the endpoint - name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string path: - description: 'path is the Glusterfs volume - path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string readOnly: - description: 'readOnly here will force - the Glusterfs volume to be mounted with - read-only permissions. Defaults to false. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: boolean required: - endpoints - path type: object hostPath: - description: 'hostPath represents a pre-existing - file or directory on the host machine that - is directly exposed to the container. This - is generally used for system agents or other - privileged things that are allowed to see - the host machine. Most containers will NOT - need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- TODO(jonesdl) We need to restrict who - can use host directory mounts and who can/can - not mount host directories as read/write.' properties: path: - description: 'path of the directory on - the host. If the path is a symlink, - it will follow the link to the real - path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string type: - description: 'type for HostPath Volume - Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string required: - path type: object iscsi: - description: 'iscsi represents an ISCSI Disk - resource that is attached to a kubelet''s - host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md' properties: chapAuthDiscovery: - description: chapAuthDiscovery defines - whether support iSCSI Discovery CHAP - authentication type: boolean chapAuthSession: - description: chapAuthSession defines whether - support iSCSI Session CHAP authentication type: boolean fsType: - description: 'fsType is the filesystem - type of the volume that you want to - mount. Tip: Ensure that the filesystem - type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the - filesystem from compromising the machine' type: string initiatorName: - description: initiatorName is the custom - iSCSI Initiator Name. If initiatorName - is specified with iscsiInterface simultaneously, - new iSCSI interface : will be created for the connection. type: string iqn: - description: iqn is the target iSCSI Qualified - Name. type: string iscsiInterface: - description: iscsiInterface is the interface - Name that uses an iSCSI transport. Defaults - to 'default' (tcp). type: string lun: - description: lun represents iSCSI Target - Lun number. format: int32 type: integer portals: - description: portals is the iSCSI Target - Portal List. The portal is either an - IP or ip_addr:port if the port is other - than default (typically TCP ports 860 - and 3260). items: type: string type: array x-kubernetes-list-type: atomic readOnly: - description: readOnly here will force - the ReadOnly setting in VolumeMounts. - Defaults to false. type: boolean secretRef: - description: secretRef is the CHAP Secret - for iSCSI target and initiator authentication properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic targetPortal: - description: targetPortal is iSCSI Target - Portal. The Portal is either an IP or - ip_addr:port if the port is other than - default (typically TCP ports 860 and - 3260). type: string required: - iqn @@ -13086,196 +4941,68 @@ spec: - targetPortal type: object name: - description: 'name of the volume. Must be - a DNS_LABEL and unique within the pod. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string nfs: - description: 'nfs represents an NFS mount - on the host that shares a pod''s lifetime - More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' properties: path: - description: 'path that is exported by - the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string readOnly: - description: 'readOnly here will force - the NFS export to be mounted with read-only - permissions. Defaults to false. More - info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: boolean server: - description: 'server is the hostname or - IP address of the NFS server. More info: - https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string required: - path - server type: object persistentVolumeClaim: - description: 'persistentVolumeClaimVolumeSource - represents a reference to a PersistentVolumeClaim - in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: claimName: - description: 'claimName is the name of - a PersistentVolumeClaim in the same - namespace as the pod using this volume. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' type: string readOnly: - description: readOnly Will force the ReadOnly - setting in VolumeMounts. Default false. type: boolean required: - claimName type: object photonPersistentDisk: - description: photonPersistentDisk represents - a PhotonController persistent disk attached - and mounted on kubelets host machine properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string pdID: - description: pdID is the ID that identifies - Photon Controller persistent disk type: string required: - pdID type: object portworxVolume: - description: portworxVolume represents a portworx - volume attached and mounted on kubelets - host machine properties: fsType: - description: fSType represents the filesystem - type to mount Must be a filesystem type - supported by the host operating system. - Ex. "ext4", "xfs". Implicitly inferred - to be "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean volumeID: - description: volumeID uniquely identifies - a Portworx volume type: string required: - volumeID type: object projected: - description: projected items for all in one - resources secrets, configmaps, and downward - API properties: defaultMode: - description: defaultMode are the mode - bits used to set permissions on created - files by default. Must be an octal value - between 0000 and 0777 or a decimal value - between 0 and 511. YAML accepts both - octal and decimal values, JSON requires - decimal values for mode bits. Directories - within the path are not affected by - this setting. This might be in conflict - with other options that affect the file - mode, like fsGroup, and the result can - be other mode bits set. format: int32 type: integer sources: - description: sources is the list of volume - projections items: - description: Projection that may be - projected along with other supported - volume types properties: clusterTrustBundle: - description: "ClusterTrustBundle - allows a pod to access the `.spec.trustBundle` - field of ClusterTrustBundle objects - in an auto-updating file. \n Alpha, - gated by the ClusterTrustBundleProjection - feature gate. \n ClusterTrustBundle - objects can either be selected - by name, or by the combination - of signer name and a label selector. - \n Kubelet performs aggressive - normalization of the PEM contents - written into the pod filesystem. - \ Esoteric PEM features such as - inter-block comments and block - headers are stripped. Certificates - are deduplicated. The ordering - of certificates within the file - is arbitrary, and Kubelet may - change the order over time." properties: labelSelector: - description: Select all ClusterTrustBundles - that match this label selector. Only - has effect if signerName is - set. Mutually-exclusive with - name. If unset, interpreted - as "match nothing". If set - but empty, interpreted as - "match everything". properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key - and values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, Exists - and DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -13289,115 +5016,31 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an element - of matchExpressions, whose - key field is "key", the - operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic name: - description: Select a single - ClusterTrustBundle by object - name. Mutually-exclusive - with signerName and labelSelector. type: string optional: - description: If true, don't - block pod startup if the referenced - ClusterTrustBundle(s) aren't - available. If using name, - then the named ClusterTrustBundle - is allowed not to exist. If - using signerName, then the - combination of signerName - and labelSelector is allowed - to match zero ClusterTrustBundles. type: boolean path: - description: Relative path from - the volume root to write the - bundle. type: string signerName: - description: Select all ClusterTrustBundles - that match this signer name. - Mutually-exclusive with name. The - contents of all selected ClusterTrustBundles - will be unified and deduplicated. type: string required: - path type: object configMap: - description: configMap information - about the configMap data to project properties: items: - description: items if unspecified, - each key-value pair in the - Data field of the referenced - ConfigMap will be projected - into the volume as a file - whose name is the key and - content is the value. If specified, - the listed keys will be projected - into the specified paths, - and unlisted keys will not - be present. If a key is specified - which is not present in the - ConfigMap, the volume setup - will error unless it is marked - optional. Paths must be relative - and may not contain the '..' - path or start with '..'. items: - description: Maps a string - key to a path within a volume. properties: key: - description: key is the - key to project. type: string mode: - description: 'mode is - Optional: mode bits - used to set permissions - on this file. Must be - an octal value between - 0000 and 0777 or a decimal - value between 0 and - 511. YAML accepts both - octal and decimal values, - JSON requires decimal - values for mode bits. - If not specified, the - volume defaultMode will - be used. This might - be in conflict with - other options that affect - the file mode, like - fsGroup, and the result - can be other mode bits - set.' format: int32 type: integer path: - description: path is the - relative path of the - file to map the key - to. May not be an absolute - path. May not contain - the path element '..'. - May not start with the - string '..'. type: string required: - key @@ -13407,128 +5050,42 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify - whether the ConfigMap or its - keys must be defined type: boolean type: object x-kubernetes-map-type: atomic downwardAPI: - description: downwardAPI information - about the downwardAPI data to - project properties: items: - description: Items is a list - of DownwardAPIVolume file items: - description: DownwardAPIVolumeFile - represents information to - create the file containing - the pod field properties: fieldRef: - description: 'Required: - Selects a field of the - pod: only annotations, - labels, name, namespace - and uid are supported.' properties: apiVersion: - description: Version - of the schema the - FieldPath is written - in terms of, defaults - to "v1". type: string fieldPath: - description: Path - of the field to - select in the specified - API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: - mode bits used to set - permissions on this - file, must be an octal - value between 0000 and - 0777 or a decimal value - between 0 and 511. YAML - accepts both octal and - decimal values, JSON - requires decimal values - for mode bits. If not - specified, the volume - defaultMode will be - used. This might be - in conflict with other - options that affect - the file mode, like - fsGroup, and the result - can be other mode bits - set.' format: int32 type: integer path: - description: 'Required: - Path is the relative - path name of the file - to be created. Must - not be absolute or contain - the ''..'' path. Must - be utf-8 encoded. The - first item of the relative - path must not start - with ''..''' type: string resourceFieldRef: - description: 'Selects - a resource of the container: - only resources limits - and requests (limits.cpu, - limits.memory, requests.cpu - and requests.memory) - are currently supported.' properties: containerName: - description: 'Container - name: required for - volumes, optional - for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies - the output format - of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: - resource to select' type: string required: - resource @@ -13541,67 +5098,16 @@ spec: x-kubernetes-list-type: atomic type: object secret: - description: secret information - about the secret data to project properties: items: - description: items if unspecified, - each key-value pair in the - Data field of the referenced - Secret will be projected into - the volume as a file whose - name is the key and content - is the value. If specified, - the listed keys will be projected - into the specified paths, - and unlisted keys will not - be present. If a key is specified - which is not present in the - Secret, the volume setup will - error unless it is marked - optional. Paths must be relative - and may not contain the '..' - path or start with '..'. items: - description: Maps a string - key to a path within a volume. properties: key: - description: key is the - key to project. type: string mode: - description: 'mode is - Optional: mode bits - used to set permissions - on this file. Must be - an octal value between - 0000 and 0777 or a decimal - value between 0 and - 511. YAML accepts both - octal and decimal values, - JSON requires decimal - values for mode bits. - If not specified, the - volume defaultMode will - be used. This might - be in conflict with - other options that affect - the file mode, like - fsGroup, and the result - can be other mode bits - set.' format: int32 type: integer path: - description: path is the - relative path of the - file to map the key - to. May not be an absolute - path. May not contain - the path element '..'. - May not start with the - string '..'. type: string required: - key @@ -13611,66 +5117,19 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. - This field is effectively - required, but due to backwards - compatibility is allowed to - be empty. Instances of this - type with an empty value here - are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional field - specify whether the Secret - or its key must be defined type: boolean type: object x-kubernetes-map-type: atomic serviceAccountToken: - description: serviceAccountToken - is information about the serviceAccountToken - data to project properties: audience: - description: audience is the - intended audience of the token. - A recipient of a token must - identify itself with an identifier - specified in the audience - of the token, and otherwise - should reject the token. The - audience defaults to the identifier - of the apiserver. type: string expirationSeconds: - description: expirationSeconds - is the requested duration - of validity of the service - account token. As the token - approaches expiration, the - kubelet volume plugin will - proactively rotate the service - account token. The kubelet - will start trying to rotate - the token if the token is - older than 80 percent of its - time to live or if the token - is older than 24 hours.Defaults - to 1 hour and must be at least - 10 minutes. format: int64 type: integer path: - description: path is the path - relative to the mount point - of the file to project the - token into. type: string required: - path @@ -13680,188 +5139,79 @@ spec: x-kubernetes-list-type: atomic type: object quobyte: - description: quobyte represents a Quobyte - mount on the host that shares a pod's lifetime properties: group: - description: group to map volume access - to Default is no group type: string readOnly: - description: readOnly here will force - the Quobyte volume to be mounted with - read-only permissions. Defaults to false. type: boolean registry: - description: registry represents a single - or multiple Quobyte Registry services - specified as a string as host:port pair - (multiple entries are separated with - commas) which acts as the central registry - for volumes type: string tenant: - description: tenant owning the given Quobyte - volume in the Backend Used with dynamically - provisioned Quobyte volumes, value is - set by the plugin type: string user: - description: user to map volume access - to Defaults to serivceaccount user type: string volume: - description: volume is a string that references - an already created Quobyte volume by - name. type: string required: - registry - volume type: object rbd: - description: 'rbd represents a Rados Block - Device mount on the host that shares a pod''s - lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md' properties: fsType: - description: 'fsType is the filesystem - type of the volume that you want to - mount. Tip: Ensure that the filesystem - type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the - filesystem from compromising the machine' type: string image: - description: 'image is the rados image - name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string keyring: - description: 'keyring is the path to key - ring for RBDUser. Default is /etc/ceph/keyring. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string monitors: - description: 'monitors is a collection - of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic pool: - description: 'pool is the rados pool name. - Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string readOnly: - description: 'readOnly here will force - the ReadOnly setting in VolumeMounts. - Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: boolean secretRef: - description: 'secretRef is name of the - authentication secret for RBDUser. If - provided overrides keyring. Default - is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is the rados user name. - Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string required: - image - monitors type: object scaleIO: - description: scaleIO represents a ScaleIO - persistent volume attached and mounted on - Kubernetes nodes. properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". Default - is "xfs". type: string gateway: - description: gateway is the host address - of the ScaleIO API Gateway. type: string protectionDomain: - description: protectionDomain is the name - of the ScaleIO Protection Domain for - the configured storage. type: string readOnly: - description: readOnly Defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean secretRef: - description: secretRef references to the - secret for ScaleIO user and other sensitive - information. If this is not provided, - Login operation will fail. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic sslEnabled: - description: sslEnabled Flag enable/disable - SSL communication with Gateway, default - false type: boolean storageMode: - description: storageMode indicates whether - the storage for a volume should be ThickProvisioned - or ThinProvisioned. Default is ThinProvisioned. type: string storagePool: - description: storagePool is the ScaleIO - Storage Pool associated with the protection - domain. type: string system: - description: system is the name of the - storage system as configured in ScaleIO. type: string volumeName: - description: volumeName is the name of - a volume already created in the ScaleIO - system that is associated with this - volume source. type: string required: - gateway @@ -13869,71 +5219,19 @@ spec: - system type: object secret: - description: 'secret represents a secret that - should populate this volume. More info: - https://kubernetes.io/docs/concepts/storage/volumes#secret' properties: defaultMode: - description: 'defaultMode is Optional: - mode bits used to set permissions on - created files by default. Must be an - octal value between 0000 and 0777 or - a decimal value between 0 and 511. YAML - accepts both octal and decimal values, - JSON requires decimal values for mode - bits. Defaults to 0644. Directories - within the path are not affected by - this setting. This might be in conflict - with other options that affect the file - mode, like fsGroup, and the result can - be other mode bits set.' format: int32 type: integer items: - description: items If unspecified, each - key-value pair in the Data field of - the referenced Secret will be projected - into the volume as a file whose name - is the key and content is the value. - If specified, the listed keys will be - projected into the specified paths, - and unlisted keys will not be present. - If a key is specified which is not present - in the Secret, the volume setup will - error unless it is marked optional. - Paths must be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key to a - path within a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an octal - value between 0000 and 0777 or - a decimal value between 0 and - 511. YAML accepts both octal and - decimal values, JSON requires - decimal values for mode bits. - If not specified, the volume defaultMode - will be used. This might be in - conflict with other options that - affect the file mode, like fsGroup, - and the result can be other mode - bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the key - to. May not be an absolute path. - May not contain the path element - '..'. May not start with the string - '..'. type: string required: - key @@ -13942,98 +5240,37 @@ spec: type: array x-kubernetes-list-type: atomic optional: - description: optional field specify whether - the Secret or its keys must be defined type: boolean secretName: - description: 'secretName is the name of - the secret in the pod''s namespace to - use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' type: string type: object storageos: - description: storageOS represents a StorageOS - volume attached and mounted on Kubernetes - nodes. properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean secretRef: - description: secretRef specifies the secret - to use for obtaining the StorageOS API - credentials. If not specified, default - values will be attempted. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeName: - description: volumeName is the human-readable - name of the StorageOS volume. Volume - names are only unique within a namespace. type: string volumeNamespace: - description: volumeNamespace specifies - the scope of the volume within StorageOS. If - no namespace is specified then the Pod's - namespace will be used. This allows - the Kubernetes name scoping to be mirrored - within StorageOS for tighter integration. - Set VolumeName to any name to override - the default behaviour. Set to "default" - if you are not using namespaces within - StorageOS. Namespaces that do not pre-exist - within StorageOS will be created. type: string type: object vsphereVolume: - description: vsphereVolume represents a vSphere - volume attached and mounted on kubelets - host machine properties: fsType: - description: fsType is filesystem type - to mount. Must be a filesystem type - supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string storagePolicyID: - description: storagePolicyID is the storage - Policy Based Management (SPBM) profile - ID associated with the StoragePolicyName. type: string storagePolicyName: - description: storagePolicyName is the - storage Policy Based Management (SPBM) - profile name. type: string volumePath: - description: volumePath is the path that - identifies vSphere volume vmdk type: string required: - volumePath @@ -14044,133 +5281,61 @@ spec: type: array type: object variables: - description: Variables specifies a list of variables - and their sources that will be used to resolve the - task. items: - description: EnvVar represents an environment variable - present in a Container. properties: name: - description: Name of the environment variable. - Must be a C_IDENTIFIER. type: string value: - description: 'Variable references $(VAR_NAME) - are expanded using the previously defined environment - variables in the container and any service environment - variables. If a variable cannot be resolved, - the reference in the input string will be unchanged. - Double $$ are reduced to a single $, which allows - for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" - will produce the string literal "$(VAR_NAME)". - Escaped references will never be expanded, regardless - of whether the variable exists or not. Defaults - to "".' type: string valueFrom: - description: Source for the environment variable's - value. Cannot be used if value is not empty. properties: configMapKeyRef: - description: Selects a key of a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap - or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field of the pod: - supports metadata.name, metadata.namespace, - `metadata.labels['''']`, `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, - status.hostIP, status.podIP, status.podIPs.' properties: apiVersion: - description: Version of the schema the - FieldPath is written in terms of, defaults - to "v1". type: string fieldPath: - description: Path of the field to select - in the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource of the container: - only resources limits and requests (limits.cpu, - limits.memory, limits.ephemeral-storage, - requests.cpu, requests.memory and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: required - for volumes, optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output format - of the exposed resources, defaults to - "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource to select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret in - the pod's namespace properties: key: - description: The key of the secret to - select from. Must be a valid secret - key. type: string name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret - or its key must be defined type: boolean required: - key @@ -14185,216 +5350,97 @@ spec: type: array type: object backupTimeout: - description: BackupTimeout specifies the maximum duration of backup. - Backup will be considered Failed if backup tasks do not complete - within this time limit. By default, KubeStash don't set any - timeout for backup. type: string hooks: - description: Hooks specifies the backup hooks that should be executed - before and/or after the backup. properties: postBackup: - description: PostBackup specifies a list of hooks that will - be executed after backup items: - description: HookInfo specifies the information about the - backup/restore hooks properties: executionPolicy: default: Always - description: 'ExecutionPolicy specifies when to execute - the hook. Valid values are: - "Always": KubeStash - will execute this hook no matter the backup/restore - failed. This is the default execution policy. - "OnSuccess": - KubeStash will execute this hook only if the backup/restore - has succeeded. - "OnFailure": KubeStash will execute - this hook only if the backup/restore has failed.' enum: - Always - OnSuccess - OnFailure type: string hookTemplate: - description: HookTemplate points to a HookTemplate CR - that will be used to execute the hook. You can refer - to a HookTemplate from other namespaces as long as - your current namespace is allowed by the `usagePolicy` - in the respective HookTemplate. properties: name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: - description: 'Namespace of the referent. More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string required: - name type: object maxRetry: - description: MaxRetry specifies how many times KubeStash - should retry the hook execution in case of failure. - The default value of this field is 0 which means no - retry. format: int32 minimum: 0 type: integer name: - description: Name specifies a name for the hook type: string params: - description: Params specifies parameters for the hook. - You must provide the parameter in the HookTemplates - desired structure. type: object x-kubernetes-preserve-unknown-fields: true runtimeSettings: - description: RuntimeSettings specifies runtime configurations - for the hook executor Job. Use this field only for - `Function` type hook executor. properties: container: properties: env: - description: List of environment variables to - set in the container. Cannot be updated. items: - description: EnvVar represents an environment - variable present in a Container. properties: name: - description: Name of the environment variable. - Must be a C_IDENTIFIER. type: string value: - description: 'Variable references $(VAR_NAME) - are expanded using the previously defined - environment variables in the container - and any service environment variables. - If a variable cannot be resolved, the - reference in the input string will be - unchanged. Double $$ are reduced to - a single $, which allows for escaping - the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" - will produce the string literal "$(VAR_NAME)". - Escaped references will never be expanded, - regardless of whether the variable exists - or not. Defaults to "".' type: string valueFrom: - description: Source for the environment - variable's value. Cannot be used if - value is not empty. properties: configMapKeyRef: - description: Selects a key of a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the - ConfigMap or its key must be - defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field of the - pod: supports metadata.name, metadata.namespace, - `metadata.labels['''']`, `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, - status.hostIP, status.podIP, status.podIPs.' properties: apiVersion: - description: Version of the schema - the FieldPath is written in - terms of, defaults to "v1". type: string fieldPath: - description: Path of the field - to select in the specified API - version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource of - the container: only resources limits - and requests (limits.cpu, limits.memory, - limits.ephemeral-storage, requests.cpu, - requests.memory and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: - required for volumes, optional - for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource - to select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret - in the pod's namespace properties: key: - description: The key of the secret - to select from. Must be a valid - secret key. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the - Secret or its key must be defined type: boolean required: - key @@ -14406,76 +5452,31 @@ spec: type: object type: array envFrom: - description: List of sources to populate environment - variables in the container. The keys defined - within a source must be a C_IDENTIFIER. All - invalid keys will be reported as an event - when the container is starting. When a key - exists in multiple sources, the value associated - with the last source will take precedence. - Values defined by an Env with a duplicate - key will take precedence. Cannot be updated. items: - description: EnvFromSource represents the - source of a set of ConfigMaps properties: configMapRef: - description: The ConfigMap to select from properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap - must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: - description: An optional identifier to - prepend to each key in the ConfigMap. - Must be a C_IDENTIFIER. type: string secretRef: - description: The Secret to select from properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret - must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array ionice: - description: 'Settings to configure `ionice` - to throttle the load on disk. More info: http://kennystechtalk.blogspot.com/2015/04/throttling-cpu-usage-with-linux-cgroups.html - More info: https://oakbytes.wordpress.com/2012/06/06/linux-scheduler-cfs-and-nice/' properties: class: format: int32 @@ -14485,70 +5486,27 @@ spec: type: integer type: object lifecycle: - description: Actions that the management system - should take in response to container lifecycle - events. Cannot be updated. properties: postStart: - description: 'PostStart is called immediately - after a container is created. If the handler - fails, the container is terminated and - restarted according to its restart policy. - Other management of the container blocks - until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the - command is root ('/') in the - container's filesystem. The command - is simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, you - need to explicitly call out to - that shell. Exit status of 0 is - treated as live/healthy and non-zero - is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in - httpHeaders instead. type: string httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood - as the same header. type: string value: - description: The header field - value type: string required: - name @@ -14557,134 +5515,58 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the - HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration - that the container should sleep before - being terminated. properties: seconds: - description: Seconds is the number - of seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is - NOT supported as a LifecycleHandler - and kept for the backward compatibility. - There are no validation of this field - and lifecycle hooks will fail in runtime - when tcp handler is specified. properties: host: - description: 'Optional: Host name - to connect to, defaults to the - pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object type: object preStop: - description: 'PreStop is called immediately - before a container is terminated due to - an API request or management event such - as liveness/startup probe failure, preemption, - resource contention, etc. The handler - is not called if the container crashes - or exits. The Pod''s termination grace - period countdown begins before the PreStop - hook is executed. Regardless of the outcome - of the handler, the container will eventually - terminate within the Pod''s termination - grace period (unless delayed by finalizers). - Other management of the container blocks - until the hook completes or until the - termination grace period is reached. More - info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the - command is root ('/') in the - container's filesystem. The command - is simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, you - need to explicitly call out to - that shell. Exit status of 0 is - treated as live/healthy and non-zero - is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in - httpHeaders instead. type: string httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood - as the same header. type: string value: - description: The header field - value type: string required: - name @@ -14693,59 +5575,33 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the - HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration - that the container should sleep before - being terminated. properties: seconds: - description: Seconds is the number - of seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is - NOT supported as a LifecycleHandler - and kept for the backward compatibility. - There are no validation of this field - and lifecycle hooks will fail in runtime - when tcp handler is specified. properties: host: - description: 'Optional: Host name - to connect to, defaults to the - pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port @@ -14753,87 +5609,38 @@ spec: type: object type: object livenessProbe: - description: 'Periodic probe of container liveness. - Container will be restarted if the probe fails. - Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to - take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it is - not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to - explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults to 3. - Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving - a GRPC port. properties: port: - description: Port number of the gRPC - service. Number must be in the range - 1 to 65535. format: int32 type: integer service: - description: "Service is the name of - the service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default - behavior is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect to, - defaults to the pod IP. You probably - want to set "Host" in httpHeaders - instead. type: string httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in HTTP - probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood as - the same header. type: string value: - description: The header field - value type: string required: - name @@ -14842,186 +5649,84 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP - server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port - to access on the container. Number - must be in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the - container has started before liveness - probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform - the probe. Default to 10 seconds. Minimum - value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. Must - be 1 for liveness and startup. Minimum - value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action - involving a TCP port. properties: host: - description: 'Optional: Host name to - connect to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port - to access on the container. Number - must be in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully - upon probe failure. The grace period is - the duration in seconds after the processes - running in the pod are sent a termination - signal and the time when the processes - are forcibly halted with a kill signal. - Set this value longer than the expected - cleanup time for your process. If this - value is nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value overrides - the value provided by the pod spec. Value - must be non-negative integer. The value - zero indicates stop immediately via the - kill signal (no opportunity to shut down). - This is a beta field and requires enabling - ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which - the probe times out. Defaults to 1 second. - Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object nice: - description: 'Settings to configure `nice` to - throttle the load on cpu. More info: http://kennystechtalk.blogspot.com/2015/04/throttling-cpu-usage-with-linux-cgroups.html - More info: https://oakbytes.wordpress.com/2012/06/06/linux-scheduler-cfs-and-nice/' properties: adjustment: format: int32 type: integer type: object readinessProbe: - description: 'Periodic probe of container service - readiness. Container will be removed from - service endpoints if the probe fails. Cannot - be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to - take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it is - not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to - explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults to 3. - Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving - a GRPC port. properties: port: - description: Port number of the gRPC - service. Number must be in the range - 1 to 65535. format: int32 type: integer service: - description: "Service is the name of - the service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default - behavior is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect to, - defaults to the pod IP. You probably - want to set "Host" in httpHeaders - instead. type: string httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in HTTP - probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood as - the same header. type: string value: - description: The header field - value type: string required: - name @@ -15030,116 +5735,51 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP - server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port - to access on the container. Number - must be in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the - container has started before liveness - probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform - the probe. Default to 10 seconds. Minimum - value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. Must - be 1 for liveness and startup. Minimum - value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action - involving a TCP port. properties: host: - description: 'Optional: Host name to - connect to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port - to access on the container. Number - must be in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully - upon probe failure. The grace period is - the duration in seconds after the processes - running in the pod are sent a termination - signal and the time when the processes - are forcibly halted with a kill signal. - Set this value longer than the expected - cleanup time for your process. If this - value is nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value overrides - the value provided by the pod spec. Value - must be non-negative integer. The value - zero indicates stop immediately via the - kill signal (no opportunity to shut down). - This is a beta field and requires enabling - ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which - the probe times out. Defaults to 1 second. - Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object resources: - description: 'Compute Resources required by - container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' properties: claims: - description: "Claims lists the names of - resources, defined in spec.resourceClaims, - that are used by this container. \n This - is an alpha field and requires enabling - the DynamicResourceAllocation feature - gate. \n This field is immutable. It can - only be set for containers." items: - description: ResourceClaim references - one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name - of one entry in pod.spec.resourceClaims - of the Pod where this field is used. - It makes that resource available - inside a container. type: string required: - name @@ -15155,9 +5795,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum - amount of compute resources allowed. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -15166,245 +5803,77 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum - amount of compute resources required. - If Requests is omitted for a container, - it defaults to Limits if that is explicitly - specified, otherwise to an implementation-defined - value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object securityContext: - description: 'Security options the pod should - run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: allowPrivilegeEscalation: - description: 'AllowPrivilegeEscalation controls - whether a process can gain more privileges - than its parent process. This bool directly - controls if the no_new_privs flag will - be set on the container process. AllowPrivilegeEscalation - is true always when the container is: - 1) run as Privileged 2) has CAP_SYS_ADMIN - Note that this field cannot be set when - spec.os.name is windows.' type: boolean appArmorProfile: - description: appArmorProfile is the AppArmor - options to use by this container. If set, - this profile overrides the pod's appArmorProfile. - Note that this field cannot be set when - spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile loaded on the node that - should be used. The profile must be - preconfigured on the node to work. - Must match the loaded name of the - profile. Must be set if and only if - type is "Localhost". type: string type: - description: 'type indicates which kind - of AppArmor profile will be applied. - Valid options are: Localhost - a profile - pre-loaded on the node. RuntimeDefault - - the container runtime''s default - profile. Unconfined - no AppArmor - enforcement.' type: string required: - type type: object capabilities: - description: The capabilities to add/drop - when running containers. Defaults to the - default set of capabilities granted by - the container runtime. Note that this - field cannot be set when spec.os.name - is windows. properties: add: - description: Added capabilities items: - description: Capability represent - POSIX capabilities type type: string type: array x-kubernetes-list-type: atomic drop: - description: Removed capabilities items: - description: Capability represent - POSIX capabilities type type: string type: array x-kubernetes-list-type: atomic type: object privileged: - description: Run container in privileged - mode. Processes in privileged containers - are essentially equivalent to root on - the host. Defaults to false. Note that - this field cannot be set when spec.os.name - is windows. type: boolean procMount: - description: procMount denotes the type - of proc mount to use for the containers. - The default is DefaultProcMount which - uses the container runtime defaults for - readonly paths and masked paths. This - requires the ProcMountType feature flag - to be enabled. Note that this field cannot - be set when spec.os.name is windows. type: string readOnlyRootFilesystem: - description: Whether this container has - a read-only root filesystem. Default is - false. Note that this field cannot be - set when spec.os.name is windows. type: boolean runAsGroup: - description: The GID to run the entrypoint - of the container process. Uses runtime - default if unset. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container - must run as a non-root user. If true, - the Kubelet will validate the image at - runtime to ensure that it does not run - as UID 0 (root) and fail to start the - container if it does. If unset or false, - no such validation will be performed. - May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: boolean runAsUser: - description: The UID to run the entrypoint - of the container process. Defaults to - user specified in image metadata if unspecified. - May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be applied - to the container. If unspecified, the - container runtime will allocate a random - SELinux context for each container. May - also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is windows. properties: level: - description: Level is SELinux level - label that applies to the container. type: string role: - description: Role is a SELinux role - label that applies to the container. type: string type: - description: Type is a SELinux type - label that applies to the container. type: string user: - description: User is a SELinux user - label that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to use - by this container. If seccomp options - are provided at both the pod & container - level, the container options override - the pod options. Note that this field - cannot be set when spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile defined in a file on the - node should be used. The profile must - be preconfigured on the node to work. - Must be a descending path, relative - to the kubelet's configured seccomp - profile location. Must be set if type - is "Localhost". Must NOT be set for - any other type. type: string type: - description: "type indicates which kind - of seccomp profile will be applied. - Valid options are: \n Localhost - - a profile defined in a file on the - node should be used. RuntimeDefault - - the container runtime default profile - should be used. Unconfined - no profile - should be applied." type: string required: - type type: object windowsOptions: - description: The Windows specific settings - applied to all containers. If unspecified, - the options from the PodSecurityContext - will be used. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. Note - that this field cannot be set when spec.os.name - is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is where - the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA credential - spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName - is the name of the GMSA credential - spec to use. type: string hostProcess: - description: HostProcess determines - if a container should be run as a - 'Host Process' container. All of a - Pod's containers must have the same - effective HostProcess value (it is - not allowed to have a mix of HostProcess - containers and non-HostProcess containers). - In addition, if HostProcess is true - then HostNetwork must also be set - to true. type: boolean runAsUserName: - description: The UserName in Windows - to run the entrypoint of the container - process. Defaults to the user specified - in image metadata if unspecified. - May also be set in PodSecurityContext. - If set in both SecurityContext and - PodSecurityContext, the value specified - in SecurityContext takes precedence. type: string type: object type: object @@ -15412,87 +5881,22 @@ spec: pod: properties: affinity: - description: If specified, the pod's scheduling - constraints properties: nodeAffinity: - description: Describes node affinity scheduling - rules for the pod. properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer - to schedule pods to nodes that satisfy - the affinity expressions specified - by this field, but it may choose a - node that violates one or more of - the expressions. The node that is - most preferred is the one with the - greatest sum of weights, i.e. for - each node that meets all of the scheduling - requirements (resource request, requiredDuringScheduling - affinity expressions, etc.), compute - a sum by iterating through the elements - of this field and adding "weight" - to the sum if the node matches the - corresponding matchExpressions; the - node(s) with the highest sum are the - most preferred. items: - description: An empty preferred scheduling - term matches all objects with implicit - weight 0 (i.e. it's a no-op). A - null preferred scheduling term matches - no objects (i.e. is also a no-op). properties: preference: - description: A node selector term, - associated with the corresponding - weight. properties: matchExpressions: - description: A list of node - selector requirements by - node's labels. items: - description: A node selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists, - DoesNotExist. Gt, - and Lt. type: string values: - description: An array - of string values. - If the operator is - In or NotIn, the values - array must be non-empty. - If the operator is - Exists or DoesNotExist, - the values array must - be empty. If the operator - is Gt or Lt, the values - array must have a - single element, which - will be interpreted - as an integer. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -15504,49 +5908,13 @@ spec: type: array x-kubernetes-list-type: atomic matchFields: - description: A list of node - selector requirements by - node's fields. items: - description: A node selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists, - DoesNotExist. Gt, - and Lt. type: string values: - description: An array - of string values. - If the operator is - In or NotIn, the values - array must be non-empty. - If the operator is - Exists or DoesNotExist, - the values array must - be empty. If the operator - is Gt or Lt, the values - array must have a - single element, which - will be interpreted - as an integer. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -15560,10 +5928,6 @@ spec: type: object x-kubernetes-map-type: atomic weight: - description: Weight associated - with matching the corresponding - nodeSelectorTerm, in the range - 1-100. format: int32 type: integer required: @@ -15573,73 +5937,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements - specified by this field are not met - at scheduling time, the pod will not - be scheduled onto the node. If the - affinity requirements specified by - this field cease to be met at some - point during pod execution (e.g. due - to an update), the system may or may - not try to eventually evict the pod - from its node. properties: nodeSelectorTerms: - description: Required. A list of - node selector terms. The terms - are ORed. items: - description: A null or empty node - selector term matches no objects. - The requirements of them are - ANDed. The TopologySelectorTerm - type implements a subset of - the NodeSelectorTerm. properties: matchExpressions: - description: A list of node - selector requirements by - node's labels. items: - description: A node selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists, - DoesNotExist. Gt, - and Lt. type: string values: - description: An array - of string values. - If the operator is - In or NotIn, the values - array must be non-empty. - If the operator is - Exists or DoesNotExist, - the values array must - be empty. If the operator - is Gt or Lt, the values - array must have a - single element, which - will be interpreted - as an integer. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -15651,49 +5960,13 @@ spec: type: array x-kubernetes-list-type: atomic matchFields: - description: A list of node - selector requirements by - node's fields. items: - description: A node selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists, - DoesNotExist. Gt, - and Lt. type: string values: - description: An array - of string values. - If the operator is - In or NotIn, the values - array must be non-empty. - If the operator is - Exists or DoesNotExist, - the values array must - be empty. If the operator - is Gt or Lt, the values - array must have a - single element, which - will be interpreted - as an integer. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -15714,91 +5987,22 @@ spec: x-kubernetes-map-type: atomic type: object podAffinity: - description: Describes pod affinity scheduling - rules (e.g. co-locate this pod in the - same node, zone, etc. as some other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer - to schedule pods to nodes that satisfy - the affinity expressions specified - by this field, but it may choose a - node that violates one or more of - the expressions. The node that is - most preferred is the one with the - greatest sum of weights, i.e. for - each node that meets all of the scheduling - requirements (resource request, requiredDuringScheduling - affinity expressions, etc.), compute - a sum by iterating through the elements - of this field and adding "weight" - to the sum if the node has pods which - matches the corresponding podAffinityTerm; - the node(s) with the highest sum are - the most preferred. items: - description: The weights of all of - the matched WeightedPodAffinityTerm - fields are added per-node to find - the most preferred node(s) properties: podAffinityTerm: - description: Required. A pod affinity - term, associated with the corresponding - weight. properties: labelSelector: - description: A label query - over a set of resources, - in this case pods. If it's - null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: key - is the label key - that the selector - applies to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values - is an array of - string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -15812,141 +6016,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an - element of matchExpressions, - whose key field is "key", - the operator is "In", - and the values array - contains only "value". - The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming - pod labels, those key-value - labels are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods - which pods will be taken - into consideration for the - incoming pod's pod (anti) - affinity. Keys that don't - exist in the incoming pod - labels will be ignored. - The default value is empty. - The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, - matchLabelKeys cannot be - set when labelSelector isn't - set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming - pod labels, those key-value - labels are merged with `labelSelector` - as `key notin (value)` to - select the group of existing - pods which pods will be - taken into consideration - for the incoming pod's pod - (anti) affinity. Keys that - don't exist in the incoming - pod labels will be ignored. - The default value is empty. - The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, - mismatchLabelKeys cannot - be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query - over the set of namespaces - that the term applies to. - The term is applied to the - union of the namespaces - selected by this field and - the ones listed in the namespaces - field. null selector and - null or empty namespaces - list means "this pod's namespace". - An empty selector ({}) matches - all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: key - is the label key - that the selector - applies to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values - is an array of - string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -15960,59 +6052,20 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an - element of matchExpressions, - whose key field is "key", - the operator is "In", - and the values array - contains only "value". - The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace - names that the term applies - to. The term is applied - to the union of the namespaces - listed in this field and - the ones selected by namespaceSelector. - null or empty namespaces - list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should - be co-located (affinity) - or not co-located (anti-affinity) - with the pods matching the - labelSelector in the specified - namespaces, where co-located - is defined as running on - a node whose value of the - label with key topologyKey - matches that of any node - on which any of the selected - pods is running. Empty topologyKey - is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated - with matching the corresponding - podAffinityTerm, in the range - 1-100. format: int32 type: integer required: @@ -16022,81 +6075,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements - specified by this field are not met - at scheduling time, the pod will not - be scheduled onto the node. If the - affinity requirements specified by - this field cease to be met at some - point during pod execution (e.g. due - to a pod label update), the system - may or may not try to eventually evict - the pod from its node. When there - are multiple elements, the lists of - nodes corresponding to each podAffinityTerm - are intersected, i.e. all terms must - be satisfied. items: - description: Defines a set of pods - (namely those matching the labelSelector - relative to the given namespace(s)) - that this pod should be co-located - (affinity) or not co-located (anti-affinity) - with, where co-located is defined - as running on a node whose value - of the label with key - matches that of any node on which - a pod of the set of pods is running properties: labelSelector: - description: A label query over - a set of resources, in this - case pods. If it's null, this - PodAffinityTerm matches with - no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to a - set of values. Valid - operators are In, - NotIn, Exists and - DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, the - values array must - be non-empty. If the - operator is Exists - or DoesNotExist, the - values array must - be empty. This array - is replaced during - a strategic merge - patch. items: type: string type: array @@ -16110,129 +6100,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in - the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is - a set of pod label keys to select - which pods will be taken into - consideration. The keys are - used to lookup values from the - incoming pod labels, those key-value - labels are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, matchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label keys to - select which pods will be taken - into consideration. The keys - are used to lookup values from - the incoming pod labels, those - key-value labels are merged - with `labelSelector` as `key - notin (value)` to select the - group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over - the set of namespaces that the - term applies to. The term is - applied to the union of the - namespaces selected by this - field and the ones listed in - the namespaces field. null selector - and null or empty namespaces - list means "this pod's namespace". - An empty selector ({}) matches - all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to a - set of values. Valid - operators are In, - NotIn, Exists and - DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, the - values array must - be non-empty. If the - operator is Exists - or DoesNotExist, the - values array must - be empty. This array - is replaced during - a strategic merge - patch. items: type: string type: array @@ -16246,47 +6136,15 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in - the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace names - that the term applies to. The - term is applied to the union - of the namespaces listed in - this field and the ones selected - by namespaceSelector. null or - empty namespaces list and null - namespaceSelector means "this - pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be - co-located (affinity) or not - co-located (anti-affinity) with - the pods matching the labelSelector - in the specified namespaces, - where co-located is defined - as running on a node whose value - of the label with key topologyKey - matches that of any node on - which any of the selected pods - is running. Empty topologyKey - is not allowed. type: string required: - topologyKey @@ -16295,92 +6153,22 @@ spec: x-kubernetes-list-type: atomic type: object podAntiAffinity: - description: Describes pod anti-affinity - scheduling rules (e.g. avoid putting this - pod in the same node, zone, etc. as some - other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer - to schedule pods to nodes that satisfy - the anti-affinity expressions specified - by this field, but it may choose a - node that violates one or more of - the expressions. The node that is - most preferred is the one with the - greatest sum of weights, i.e. for - each node that meets all of the scheduling - requirements (resource request, requiredDuringScheduling - anti-affinity expressions, etc.), - compute a sum by iterating through - the elements of this field and adding - "weight" to the sum if the node has - pods which matches the corresponding - podAffinityTerm; the node(s) with - the highest sum are the most preferred. items: - description: The weights of all of - the matched WeightedPodAffinityTerm - fields are added per-node to find - the most preferred node(s) properties: podAffinityTerm: - description: Required. A pod affinity - term, associated with the corresponding - weight. properties: labelSelector: - description: A label query - over a set of resources, - in this case pods. If it's - null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: key - is the label key - that the selector - applies to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values - is an array of - string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -16394,141 +6182,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an - element of matchExpressions, - whose key field is "key", - the operator is "In", - and the values array - contains only "value". - The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming - pod labels, those key-value - labels are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods - which pods will be taken - into consideration for the - incoming pod's pod (anti) - affinity. Keys that don't - exist in the incoming pod - labels will be ignored. - The default value is empty. - The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, - matchLabelKeys cannot be - set when labelSelector isn't - set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming - pod labels, those key-value - labels are merged with `labelSelector` - as `key notin (value)` to - select the group of existing - pods which pods will be - taken into consideration - for the incoming pod's pod - (anti) affinity. Keys that - don't exist in the incoming - pod labels will be ignored. - The default value is empty. - The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, - mismatchLabelKeys cannot - be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query - over the set of namespaces - that the term applies to. - The term is applied to the - union of the namespaces - selected by this field and - the ones listed in the namespaces - field. null selector and - null or empty namespaces - list means "this pod's namespace". - An empty selector ({}) matches - all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: key - is the label key - that the selector - applies to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values - is an array of - string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -16542,59 +6218,20 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an - element of matchExpressions, - whose key field is "key", - the operator is "In", - and the values array - contains only "value". - The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace - names that the term applies - to. The term is applied - to the union of the namespaces - listed in this field and - the ones selected by namespaceSelector. - null or empty namespaces - list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should - be co-located (affinity) - or not co-located (anti-affinity) - with the pods matching the - labelSelector in the specified - namespaces, where co-located - is defined as running on - a node whose value of the - label with key topologyKey - matches that of any node - on which any of the selected - pods is running. Empty topologyKey - is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated - with matching the corresponding - podAffinityTerm, in the range - 1-100. format: int32 type: integer required: @@ -16604,81 +6241,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the anti-affinity requirements - specified by this field are not met - at scheduling time, the pod will not - be scheduled onto the node. If the - anti-affinity requirements specified - by this field cease to be met at some - point during pod execution (e.g. due - to a pod label update), the system - may or may not try to eventually evict - the pod from its node. When there - are multiple elements, the lists of - nodes corresponding to each podAffinityTerm - are intersected, i.e. all terms must - be satisfied. items: - description: Defines a set of pods - (namely those matching the labelSelector - relative to the given namespace(s)) - that this pod should be co-located - (affinity) or not co-located (anti-affinity) - with, where co-located is defined - as running on a node whose value - of the label with key - matches that of any node on which - a pod of the set of pods is running properties: labelSelector: - description: A label query over - a set of resources, in this - case pods. If it's null, this - PodAffinityTerm matches with - no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to a - set of values. Valid - operators are In, - NotIn, Exists and - DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, the - values array must - be non-empty. If the - operator is Exists - or DoesNotExist, the - values array must - be empty. This array - is replaced during - a strategic merge - patch. items: type: string type: array @@ -16692,129 +6266,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in - the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is - a set of pod label keys to select - which pods will be taken into - consideration. The keys are - used to lookup values from the - incoming pod labels, those key-value - labels are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, matchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label keys to - select which pods will be taken - into consideration. The keys - are used to lookup values from - the incoming pod labels, those - key-value labels are merged - with `labelSelector` as `key - notin (value)` to select the - group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over - the set of namespaces that the - term applies to. The term is - applied to the union of the - namespaces selected by this - field and the ones listed in - the namespaces field. null selector - and null or empty namespaces - list means "this pod's namespace". - An empty selector ({}) matches - all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to a - set of values. Valid - operators are In, - NotIn, Exists and - DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, the - values array must - be non-empty. If the - operator is Exists - or DoesNotExist, the - values array must - be empty. This array - is replaced during - a strategic merge - patch. items: type: string type: array @@ -16828,47 +6302,15 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in - the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace names - that the term applies to. The - term is applied to the union - of the namespaces listed in - this field and the ones selected - by namespaceSelector. null or - empty namespaces list and null - namespaceSelector means "this - pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be - co-located (affinity) or not - co-located (anti-affinity) with - the pods matching the labelSelector - in the specified namespaces, - where co-located is defined - as running on a node whose value - of the label with key topologyKey - matches that of any node on - which any of the selected pods - is running. Empty topologyKey - is not allowed. type: string required: - topologyKey @@ -16878,327 +6320,106 @@ spec: type: object type: object automountServiceAccountToken: - description: AutomountServiceAccountToken indicates - whether a service account token should be - automatically mounted. type: boolean enableServiceLinks: - description: 'EnableServiceLinks indicates whether - information about services should be injected - into pod''s environment variables, matching - the syntax of Docker links. Optional: Defaults - to true.' type: boolean imagePullSecrets: - description: 'ImagePullSecrets is an optional - list of references to secrets in the same - namespace to use for pulling any of the images - used by this PodRuntimeSettings. If specified, - these secrets will be passed to individual - puller implementations for them to use. For - example, in the case of docker, only DockerConfig - type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod' items: - description: LocalObjectReference contains - enough information to let you locate the - referenced object inside the same namespace. properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic type: array nodeName: - description: NodeName is a request to schedule - this pod onto a specific node. If it is non-empty, - the scheduler simply schedules this pod onto - that node, assuming that it fits resource - requirements. type: string nodeSelector: additionalProperties: type: string - description: 'NodeSelector is a selector which - must be true for the pod to fit on a node. - Selector which must match a node''s labels - for the pod to be scheduled on that node. - More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/' type: object podAnnotations: additionalProperties: type: string - description: PodAnnotations are the annotations - that will be attached with the respective - Pod type: object podLabels: additionalProperties: type: string - description: PodLabels are the labels that will - be attached with the respective Pod type: object priority: - description: The priority value. Various system - components use this field to find the priority - of the pod. When Priority Admission Controller - is enabled, it prevents users from setting - this field. The admission controller populates - this field from PriorityClassName. The higher - the value, the higher the priority. format: int32 type: integer priorityClassName: - description: If specified, indicates the pod's - priority. "system-node-critical" and "system-cluster-critical" - are two special keywords which indicate the - highest priorities with the former being the - highest priority. Any other name must be defined - by creating a PriorityClass object with that - name. If not specified, the pod priority will - be default or zero if there is no default. type: string readinessGates: - description: 'If specified, all readiness gates - will be evaluated for pod readiness. A pod - is ready when all its containers are ready - AND all conditions specified in the readiness - gates have status equal to "True" More info: - https://git.k8s.io/enhancements/keps/sig-network/0007-pod-ready%2B%2B.md' items: - description: PodReadinessGate contains the - reference to a pod condition properties: conditionType: - description: ConditionType refers to a - condition in the pod's condition list - with matching type. type: string required: - conditionType type: object type: array runtimeClassName: - description: 'RuntimeClassName refers to a RuntimeClass - object in the node.k8s.io group, which should - be used to run this pod. If no RuntimeClass - resource matches the named class, the pod - will not be run. If unset or empty, the "legacy" - RuntimeClass will be used, which is an implicit - class with an empty definition that uses the - default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md - This is an alpha feature and may change in - the future.' type: string schedulerName: - description: If specified, the pod will be dispatched - by specified scheduler. If not specified, - the pod will be dispatched by default scheduler. type: string securityContext: - description: 'Security options the pod should - run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: appArmorProfile: - description: appArmorProfile is the AppArmor - options to use by the containers in this - pod. Note that this field cannot be set - when spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile loaded on the node that - should be used. The profile must be - preconfigured on the node to work. - Must match the loaded name of the - profile. Must be set if and only if - type is "Localhost". type: string type: - description: 'type indicates which kind - of AppArmor profile will be applied. - Valid options are: Localhost - a profile - pre-loaded on the node. RuntimeDefault - - the container runtime''s default - profile. Unconfined - no AppArmor - enforcement.' type: string required: - type type: object fsGroup: - description: "A special supplemental group - that applies to all containers in a pod. - Some volume types allow the Kubelet to - change the ownership of that volume to - be owned by the pod: \n 1. The owning - GID will be the FSGroup 2. The setgid - bit is set (new files created in the volume - will be owned by FSGroup) 3. The permission - bits are OR'd with rw-rw---- \n If unset, - the Kubelet will not modify the ownership - and permissions of any volume. Note that - this field cannot be set when spec.os.name - is windows." format: int64 type: integer fsGroupChangePolicy: - description: 'fsGroupChangePolicy defines - behavior of changing ownership and permission - of the volume before being exposed inside - Pod. This field will only apply to volume - types which support fsGroup based ownership(and - permissions). It will have no effect on - ephemeral volume types such as: secret, - configmaps and emptydir. Valid values - are "OnRootMismatch" and "Always". If - not specified, "Always" is used. Note - that this field cannot be set when spec.os.name - is windows.' type: string runAsGroup: - description: The GID to run the entrypoint - of the container process. Uses runtime - default if unset. May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence for that container. Note - that this field cannot be set when spec.os.name - is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container - must run as a non-root user. If true, - the Kubelet will validate the image at - runtime to ensure that it does not run - as UID 0 (root) and fail to start the - container if it does. If unset or false, - no such validation will be performed. - May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: boolean runAsUser: - description: The UID to run the entrypoint - of the container process. Defaults to - user specified in image metadata if unspecified. - May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence for that container. Note - that this field cannot be set when spec.os.name - is windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be applied - to all containers. If unspecified, the - container runtime will allocate a random - SELinux context for each container. May - also be set in SecurityContext. If set - in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence for that container. Note - that this field cannot be set when spec.os.name - is windows. properties: level: - description: Level is SELinux level - label that applies to the container. type: string role: - description: Role is a SELinux role - label that applies to the container. type: string type: - description: Type is a SELinux type - label that applies to the container. type: string user: - description: User is a SELinux user - label that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to use - by the containers in this pod. Note that - this field cannot be set when spec.os.name - is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile defined in a file on the - node should be used. The profile must - be preconfigured on the node to work. - Must be a descending path, relative - to the kubelet's configured seccomp - profile location. Must be set if type - is "Localhost". Must NOT be set for - any other type. type: string type: - description: "type indicates which kind - of seccomp profile will be applied. - Valid options are: \n Localhost - - a profile defined in a file on the - node should be used. RuntimeDefault - - the container runtime default profile - should be used. Unconfined - no profile - should be applied." type: string required: - type type: object supplementalGroups: - description: A list of groups applied to - the first process run in each container, - in addition to the container's primary - GID, the fsGroup (if specified), and group - memberships defined in the container image - for the uid of the container process. - If unspecified, no additional groups are - added to any container. Note that group - memberships defined in the container image - for the uid of the container process are - still effective, even if they are not - included in this list. Note that this - field cannot be set when spec.os.name - is windows. items: format: int64 type: integer type: array x-kubernetes-list-type: atomic sysctls: - description: Sysctls hold a list of namespaced - sysctls used for the pod. Pods with unsupported - sysctls (by the container runtime) might - fail to launch. Note that this field cannot - be set when spec.os.name is windows. items: - description: Sysctl defines a kernel parameter - to be set properties: name: - description: Name of a property to - set type: string value: - description: Value of a property to - set type: string required: - name @@ -17207,164 +6428,52 @@ spec: type: array x-kubernetes-list-type: atomic windowsOptions: - description: The Windows specific settings - applied to all containers. If unspecified, - the options within a container's SecurityContext - will be used. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. Note - that this field cannot be set when spec.os.name - is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is where - the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA credential - spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName - is the name of the GMSA credential - spec to use. type: string hostProcess: - description: HostProcess determines - if a container should be run as a - 'Host Process' container. All of a - Pod's containers must have the same - effective HostProcess value (it is - not allowed to have a mix of HostProcess - containers and non-HostProcess containers). - In addition, if HostProcess is true - then HostNetwork must also be set - to true. type: boolean runAsUserName: - description: The UserName in Windows - to run the entrypoint of the container - process. Defaults to the user specified - in image metadata if unspecified. - May also be set in PodSecurityContext. - If set in both SecurityContext and - PodSecurityContext, the value specified - in SecurityContext takes precedence. type: string type: object type: object serviceAccountAnnotations: additionalProperties: type: string - description: ServiceAccountAnnotations are the - annotations that will be attached with the - respective ServiceAccount type: object serviceAccountName: - description: 'ServiceAccountName is the name - of the ServiceAccount to use to run this pod. - More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/' type: string tolerations: - description: If specified, the pod's tolerations. items: - description: The pod this Toleration is attached - to tolerates any taint that matches the - triple using the matching - operator . properties: effect: - description: Effect indicates the taint - effect to match. Empty means match all - taint effects. When specified, allowed - values are NoSchedule, PreferNoSchedule - and NoExecute. type: string key: - description: Key is the taint key that - the toleration applies to. Empty means - match all taint keys. If the key is - empty, operator must be Exists; this - combination means to match all values - and all keys. type: string operator: - description: Operator represents a key's - relationship to the value. Valid operators - are Exists and Equal. Defaults to Equal. - Exists is equivalent to wildcard for - value, so that a pod can tolerate all - taints of a particular category. type: string tolerationSeconds: - description: TolerationSeconds represents - the period of time the toleration (which - must be of effect NoExecute, otherwise - this field is ignored) tolerates the - taint. By default, it is not set, which - means tolerate the taint forever (do - not evict). Zero and negative values - will be treated as 0 (evict immediately) - by the system. format: int64 type: integer value: - description: Value is the taint value - the toleration matches to. If the operator - is Exists, the value should be empty, - otherwise just a regular string. type: string type: object type: array topologySpreadConstraints: - description: TopologySpreadConstraints describes - how a group of pods ought to spread across - topology domains. Scheduler will schedule - pods in a way which abides by the constraints. - All topologySpreadConstraints are ANDed. items: - description: TopologySpreadConstraint specifies - how to spread matching pods among the given - topology. properties: labelSelector: - description: LabelSelector is used to - find matching pods. Pods that match - this label selector are counted to determine - the number of pods in their corresponding - topology domain. properties: matchExpressions: - description: matchExpressions is a - list of label selector requirements. - The requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to a - set of values. Valid operators - are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an array - of string values. If the operator - is In or NotIn, the values - array must be non-empty. If - the operator is Exists or - DoesNotExist, the values array - must be empty. This array - is replaced during a strategic - merge patch. items: type: string type: array @@ -17378,176 +6487,27 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map - of {key,value} pairs. A single {key,value} - in the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: "MatchLabelKeys is a set - of pod label keys to select the pods - over which spreading will be calculated. - The keys are used to lookup values from - the incoming pod labels, those key-value - labels are ANDed with labelSelector - to select the group of existing pods - over which spreading will be calculated - for the incoming pod. The same key is - forbidden to exist in both MatchLabelKeys - and LabelSelector. MatchLabelKeys cannot - be set when LabelSelector isn't set. - Keys that don't exist in the incoming - pod labels will be ignored. A null or - empty list means only match against - labelSelector. \n This is a beta field - and requires the MatchLabelKeysInPodTopologySpread - feature gate to be enabled (enabled - by default)." items: type: string type: array x-kubernetes-list-type: atomic maxSkew: - description: 'MaxSkew describes the degree - to which pods may be unevenly distributed. - When `whenUnsatisfiable=DoNotSchedule`, - it is the maximum permitted difference - between the number of matching pods - in the target topology and the global - minimum. The global minimum is the minimum - number of matching pods in an eligible - domain or zero if the number of eligible - domains is less than MinDomains. For - example, in a 3-zone cluster, MaxSkew - is set to 1, and pods with the same - labelSelector spread as 2/2/1: In this - case, the global minimum is 1. | zone1 - | zone2 | zone3 | | P P | P P | P | - - if MaxSkew is 1, incoming pod can - only be scheduled to zone3 to become - 2/2/2; scheduling it onto zone1(zone2) - would make the ActualSkew(3-1) on zone1(zone2) - violate MaxSkew(1). - if MaxSkew is - 2, incoming pod can be scheduled onto - any zone. When `whenUnsatisfiable=ScheduleAnyway`, - it is used to give higher precedence - to topologies that satisfy it. It''s - a required field. Default value is 1 - and 0 is not allowed.' format: int32 type: integer minDomains: - description: "MinDomains indicates a minimum - number of eligible domains. When the - number of eligible domains with matching - topology keys is less than minDomains, - Pod Topology Spread treats \"global - minimum\" as 0, and then the calculation - of Skew is performed. And when the number - of eligible domains with matching topology - keys equals or greater than minDomains, - this value has no effect on scheduling. - As a result, when the number of eligible - domains is less than minDomains, scheduler - won't schedule more than maxSkew Pods - to those domains. If value is nil, the - constraint behaves as if MinDomains - is equal to 1. Valid values are integers - greater than 0. When value is not nil, - WhenUnsatisfiable must be DoNotSchedule. - \n For example, in a 3-zone cluster, - MaxSkew is set to 2, MinDomains is set - to 5 and pods with the same labelSelector - spread as 2/2/2: | zone1 | zone2 | zone3 - | | P P | P P | P P | The number - of domains is less than 5(MinDomains), - so \"global minimum\" is treated as - 0. In this situation, new pod with the - same labelSelector cannot be scheduled, - because computed skew will be 3(3 - - 0) if new Pod is scheduled to any of - the three zones, it will violate MaxSkew." format: int32 type: integer nodeAffinityPolicy: - description: "NodeAffinityPolicy indicates - how we will treat Pod's nodeAffinity/nodeSelector - when calculating pod topology spread - skew. Options are: - Honor: only nodes - matching nodeAffinity/nodeSelector are - included in the calculations. - Ignore: - nodeAffinity/nodeSelector are ignored. - All nodes are included in the calculations. - \n If this value is nil, the behavior - is equivalent to the Honor policy. This - is a beta-level feature default enabled - by the NodeInclusionPolicyInPodTopologySpread - feature flag." type: string nodeTaintsPolicy: - description: "NodeTaintsPolicy indicates - how we will treat node taints when calculating - pod topology spread skew. Options are: - - Honor: nodes without taints, along - with tainted nodes for which the incoming - pod has a toleration, are included. - - Ignore: node taints are ignored. All - nodes are included. \n If this value - is nil, the behavior is equivalent to - the Ignore policy. This is a beta-level - feature default enabled by the NodeInclusionPolicyInPodTopologySpread - feature flag." type: string topologyKey: - description: TopologyKey is the key of - node labels. Nodes that have a label - with this key and identical values are - considered to be in the same topology. - We consider each as a "bucket", - and try to put balanced number of pods - into each bucket. We define a domain - as a particular instance of a topology. - Also, we define an eligible domain as - a domain whose nodes meet the requirements - of nodeAffinityPolicy and nodeTaintsPolicy. - e.g. If TopologyKey is "kubernetes.io/hostname", - each Node is a domain of that topology. - And, if TopologyKey is "topology.kubernetes.io/zone", - each zone is a domain of that topology. - It's a required field. type: string whenUnsatisfiable: - description: 'WhenUnsatisfiable indicates - how to deal with a pod if it doesn''t - satisfy the spread constraint. - DoNotSchedule - (default) tells the scheduler not to - schedule it. - ScheduleAnyway tells - the scheduler to schedule the pod in - any location, but giving higher precedence - to topologies that would help reduce - the skew. A constraint is considered - "Unsatisfiable" for an incoming pod - if and only if every possible node assignment - for that pod would violate "MaxSkew" - on some topology. For example, in a - 3-zone cluster, MaxSkew is set to 1, - and pods with the same labelSelector - spread as 3/1/1: | zone1 | zone2 | zone3 - | | P P P | P | P | If WhenUnsatisfiable - is set to DoNotSchedule, incoming pod - can only be scheduled to zone2(zone3) - to become 3/2/1(3/1/2) as ActualSkew(2-1) - on zone2(zone3) satisfies MaxSkew(1). - In other words, the cluster can still - be imbalanced, but scheduler won''t - make it *more* imbalanced. It''s a required - field.' type: string required: - maxSkew @@ -17562,141 +6522,63 @@ spec: type: object type: object timeout: - description: Timeout specifies a duration in seconds - that KubeStash should wait for the hook execution - to be completed. If the hook execution does not finish - within this time period, KubeStash will consider this - hook execution as failure. Then, it will be re-tried - according to MaxRetry policy. type: string variables: - description: Variables specifies a list of variables - and their sources that will be used to resolve the - HookTemplate. items: - description: EnvVar represents an environment variable - present in a Container. properties: name: - description: Name of the environment variable. - Must be a C_IDENTIFIER. type: string value: - description: 'Variable references $(VAR_NAME) - are expanded using the previously defined environment - variables in the container and any service environment - variables. If a variable cannot be resolved, - the reference in the input string will be unchanged. - Double $$ are reduced to a single $, which allows - for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" - will produce the string literal "$(VAR_NAME)". - Escaped references will never be expanded, regardless - of whether the variable exists or not. Defaults - to "".' type: string valueFrom: - description: Source for the environment variable's - value. Cannot be used if value is not empty. properties: configMapKeyRef: - description: Selects a key of a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap - or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field of the pod: - supports metadata.name, metadata.namespace, - `metadata.labels['''']`, `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, - status.hostIP, status.podIP, status.podIPs.' properties: apiVersion: - description: Version of the schema the - FieldPath is written in terms of, defaults - to "v1". type: string fieldPath: - description: Path of the field to select - in the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource of the container: - only resources limits and requests (limits.cpu, - limits.memory, limits.ephemeral-storage, - requests.cpu, requests.memory and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: required - for volumes, optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output format - of the exposed resources, defaults to - "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource to select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret in - the pod's namespace properties: key: - description: The key of the secret to - select from. Must be a valid secret - key. type: string name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret - or its key must be defined type: boolean required: - key @@ -17708,68 +6590,21 @@ spec: type: object type: array volumeMounts: - description: VolumeMounts specifies the mount for the - volumes specified in `Volumes` section Use this field - only for `Function` type hook executor. items: - description: VolumeMount describes a mounting of a - Volume within a container. properties: mountPath: - description: Path within the container at which - the volume should be mounted. Must not contain - ':'. type: string mountPropagation: - description: mountPropagation determines how mounts - are propagated from the host to container and - the other way around. When not set, MountPropagationNone - is used. This field is beta in 1.10. When RecursiveReadOnly - is set to IfPossible or to Enabled, MountPropagation - must be None or unspecified (which defaults - to None). type: string name: - description: This must match the Name of a Volume. type: string readOnly: - description: Mounted read-only if true, read-write - otherwise (false or unspecified). Defaults to - false. type: boolean recursiveReadOnly: - description: "RecursiveReadOnly specifies whether - read-only mounts should be handled recursively. - \n If ReadOnly is false, this field has no meaning - and must be unspecified. \n If ReadOnly is true, - and this field is set to Disabled, the mount - is not made recursively read-only. If this - field is set to IfPossible, the mount is made - recursively read-only, if it is supported by - the container runtime. If this field is set - to Enabled, the mount is made recursively read-only - if it is supported by the container runtime, - otherwise the pod will not be started and an - error will be generated to indicate the reason. - \n If this field is set to IfPossible or Enabled, - MountPropagation must be set to None (or be - unspecified, which defaults to None). \n If - this field is not specified, it is treated as - an equivalent of Disabled." type: string subPath: - description: Path within the volume from which - the container's volume should be mounted. Defaults - to "" (volume's root). type: string subPathExpr: - description: Expanded path within the volume from - which the container's volume should be mounted. - Behaves similarly to SubPath but environment - variable references $(VAR_NAME) are expanded - using the container's environment. Defaults - to "" (volume's root). SubPathExpr and SubPath - are mutually exclusive. type: string required: - mountPath @@ -17777,279 +6612,109 @@ spec: type: object type: array volumes: - description: Volumes indicates the list of volumes of - targeted application that should be mounted on the - hook executor. Use this field only for `Function` - type hook executor. items: - description: Volume represents a named volume in a - pod that may be accessed by any container in the - pod. properties: awsElasticBlockStore: - description: 'awsElasticBlockStore represents - an AWS Disk resource that is attached to a kubelet''s - host machine and then exposed to the pod. More - info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' properties: fsType: - description: 'fsType is the filesystem type - of the volume that you want to mount. Tip: - Ensure that the filesystem type is supported - by the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly inferred - to be "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string partition: - description: 'partition is the partition in - the volume that you want to mount. If omitted, - the default is to mount by volume name. - Examples: For volume /dev/sda1, you specify - the partition as "1". Similarly, the volume - partition for /dev/sda is "0" (or you can - leave the property empty).' format: int32 type: integer readOnly: - description: 'readOnly value true will force - the readOnly setting in VolumeMounts. More - info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: boolean volumeID: - description: 'volumeID is unique ID of the - persistent disk resource in AWS (Amazon - EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: string required: - volumeID type: object azureDisk: - description: azureDisk represents an Azure Data - Disk mount on the host and bind mount to the - pod. properties: cachingMode: - description: 'cachingMode is the Host Caching - mode: None, Read Only, Read Write.' type: string diskName: - description: diskName is the Name of the data - disk in the blob storage type: string diskURI: - description: diskURI is the URI of data disk - in the blob storage type: string fsType: - description: fsType is Filesystem type to - mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Implicitly inferred to be - "ext4" if unspecified. type: string kind: - description: 'kind expected values are Shared: - multiple blob disks per storage account Dedicated: - single blob disk per storage account Managed: - azure managed data disk (only in managed - availability set). defaults to shared' type: string readOnly: - description: readOnly Defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean required: - diskName - diskURI type: object azureFile: - description: azureFile represents an Azure File - Service mount on the host and bind mount to - the pod. properties: readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean secretName: - description: secretName is the name of secret - that contains Azure Storage Account Name - and Key type: string shareName: - description: shareName is the azure share - Name type: string required: - secretName - shareName type: object cephfs: - description: cephFS represents a Ceph FS mount - on the host that shares a pod's lifetime properties: monitors: - description: 'monitors is Required: Monitors - is a collection of Ceph monitors More info: - https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic path: - description: 'path is Optional: Used as the - mounted root, rather than the full Ceph - tree, default is /' type: string readOnly: - description: 'readOnly is Optional: Defaults - to false (read/write). ReadOnly here will - force the ReadOnly setting in VolumeMounts. - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: boolean secretFile: - description: 'secretFile is Optional: SecretFile - is the path to key ring for User, default - is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string secretRef: - description: 'secretRef is Optional: SecretRef - is reference to the authentication secret - for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is optional: User is the - rados user name, default is admin More info: - https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string required: - monitors type: object cinder: - description: 'cinder represents a cinder volume - attached and mounted on kubelets host machine. - More info: https://examples.k8s.io/mysql-cinder-pd/README.md' properties: fsType: - description: 'fsType is the filesystem type - to mount. Must be a filesystem type supported - by the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly inferred - to be "ext4" if unspecified. More info: - https://examples.k8s.io/mysql-cinder-pd/README.md' type: string readOnly: - description: 'readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: boolean secretRef: - description: 'secretRef is optional: points - to a secret object containing parameters - used to connect to OpenStack.' properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeID: - description: 'volumeID used to identify the - volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string required: - volumeID type: object configMap: - description: configMap represents a configMap - that should populate this volume properties: defaultMode: - description: 'defaultMode is optional: mode - bits used to set permissions on created - files by default. Must be an octal value - between 0000 and 0777 or a decimal value - between 0 and 511. YAML accepts both octal - and decimal values, JSON requires decimal - values for mode bits. Defaults to 0644. - Directories within the path are not affected - by this setting. This might be in conflict - with other options that affect the file - mode, like fsGroup, and the result can be - other mode bits set.' format: int32 type: integer items: - description: items if unspecified, each key-value - pair in the Data field of the referenced - ConfigMap will be projected into the volume - as a file whose name is the key and content - is the value. If specified, the listed keys - will be projected into the specified paths, - and unlisted keys will not be present. If - a key is specified which is not present - in the ConfigMap, the volume setup will - error unless it is marked optional. Paths - must be relative and may not contain the - '..' path or start with '..'. items: - description: Maps a string key to a path - within a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: mode - bits used to set permissions on this - file. Must be an octal value between - 0000 and 0777 or a decimal value between - 0 and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. If not - specified, the volume defaultMode - will be used. This might be in conflict - with other options that affect the - file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative path - of the file to map the key to. May - not be an absolute path. May not contain - the path element '..'. May not start - with the string '..'. type: string required: - key @@ -18059,174 +6724,67 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other - useful fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether the - ConfigMap or its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic csi: - description: csi (Container Storage Interface) - represents ephemeral storage that is handled - by certain external CSI drivers (Beta feature). properties: driver: - description: driver is the name of the CSI - driver that handles this volume. Consult - with your admin for the correct name as - registered in the cluster. type: string fsType: - description: fsType to mount. Ex. "ext4", - "xfs", "ntfs". If not provided, the empty - value is passed to the associated CSI driver - which will determine the default filesystem - to apply. type: string nodePublishSecretRef: - description: nodePublishSecretRef is a reference - to the secret object containing sensitive - information to pass to the CSI driver to - complete the CSI NodePublishVolume and NodeUnpublishVolume - calls. This field is optional, and may - be empty if no secret is required. If the - secret object contains more than one secret, - all secret references are passed. properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic readOnly: - description: readOnly specifies a read-only - configuration for the volume. Defaults to - false (read/write). type: boolean volumeAttributes: additionalProperties: type: string - description: volumeAttributes stores driver-specific - properties that are passed to the CSI driver. - Consult your driver's documentation for - supported values. type: object required: - driver type: object downwardAPI: - description: downwardAPI represents downward API - about the pod that should populate this volume properties: defaultMode: - description: 'Optional: mode bits to use on - created files by default. Must be a Optional: - mode bits used to set permissions on created - files by default. Must be an octal value - between 0000 and 0777 or a decimal value - between 0 and 511. YAML accepts both octal - and decimal values, JSON requires decimal - values for mode bits. Defaults to 0644. - Directories within the path are not affected - by this setting. This might be in conflict - with other options that affect the file - mode, like fsGroup, and the result can be - other mode bits set.' format: int32 type: integer items: - description: Items is a list of downward API - volume file items: - description: DownwardAPIVolumeFile represents - information to create the file containing - the pod field properties: fieldRef: - description: 'Required: Selects a field - of the pod: only annotations, labels, - name, namespace and uid are supported.' properties: apiVersion: - description: Version of the schema - the FieldPath is written in terms - of, defaults to "v1". type: string fieldPath: - description: Path of the field to - select in the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode bits used - to set permissions on this file, must - be an octal value between 0000 and - 0777 or a decimal value between 0 - and 511. YAML accepts both octal and - decimal values, JSON requires decimal - values for mode bits. If not specified, - the volume defaultMode will be used. - This might be in conflict with other - options that affect the file mode, - like fsGroup, and the result can be - other mode bits set.' format: int32 type: integer path: - description: 'Required: Path is the - relative path name of the file to - be created. Must not be absolute or - contain the ''..'' path. Must be utf-8 - encoded. The first item of the relative - path must not start with ''..''' type: string resourceFieldRef: - description: 'Selects a resource of - the container: only resources limits - and requests (limits.cpu, limits.memory, - requests.cpu and requests.memory) - are currently supported.' properties: containerName: - description: 'Container name: required - for volumes, optional for env - vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource - to select' type: string required: - resource @@ -18239,220 +6797,50 @@ spec: x-kubernetes-list-type: atomic type: object emptyDir: - description: 'emptyDir represents a temporary - directory that shares a pod''s lifetime. More - info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' properties: medium: - description: 'medium represents what type - of storage medium should back this directory. - The default is "" which means to use the - node''s default medium. Must be an empty - string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' type: string sizeLimit: anyOf: - type: integer - type: string - description: 'sizeLimit is the total amount - of local storage required for this EmptyDir - volume. The size limit is also applicable - for memory medium. The maximum usage on - memory medium EmptyDir would be the minimum - value between the SizeLimit specified here - and the sum of memory limits of all containers - in a pod. The default is nil which means - that the limit is undefined. More info: - https://kubernetes.io/docs/concepts/storage/volumes#emptydir' pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object ephemeral: - description: "ephemeral represents a volume that - is handled by a cluster storage driver. The - volume's lifecycle is tied to the pod that defines - it - it will be created before the pod starts, - and deleted when the pod is removed. \n Use - this if: a) the volume is only needed while - the pod runs, b) features of normal volumes - like restoring from snapshot or capacity tracking - are needed, c) the storage driver is specified - through a storage class, and d) the storage - driver supports dynamic volume provisioning - through a PersistentVolumeClaim (see EphemeralVolumeSource - for more information on the connection between - this volume type and PersistentVolumeClaim). - \n Use PersistentVolumeClaim or one of the vendor-specific - APIs for volumes that persist for longer than - the lifecycle of an individual pod. \n Use CSI - for light-weight local ephemeral volumes if - the CSI driver is meant to be used that way - - see the documentation of the driver for more - information. \n A pod can use both types of - ephemeral volumes and persistent volumes at - the same time." properties: volumeClaimTemplate: - description: "Will be used to create a stand-alone - PVC to provision the volume. The pod in - which this EphemeralVolumeSource is embedded - will be the owner of the PVC, i.e. the PVC - will be deleted together with the pod. The - name of the PVC will be `-` where `` is the name - from the `PodSpec.Volumes` array entry. - Pod validation will reject the pod if the - concatenated name is not valid for a PVC - (for example, too long). \n An existing - PVC with that name that is not owned by - the pod will *not* be used for the pod to - avoid using an unrelated volume by mistake. - Starting the pod is then blocked until the - unrelated PVC is removed. If such a pre-created - PVC is meant to be used by the pod, the - PVC has to updated with an owner reference - to the pod once the pod exists. Normally - this should not be necessary, but it may - be useful when manually reconstructing a - broken cluster. \n This field is read-only - and no changes will be made by Kubernetes - to the PVC after it has been created. \n - Required, must not be nil." properties: metadata: - description: May contain labels and annotations - that will be copied into the PVC when - creating it. No other fields are allowed - and will be rejected during validation. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured - key value map stored with a resource - that may be set by external tools - to store and retrieve arbitrary - metadata. They are not queryable - and should be preserved when modifying - objects. More info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName is an optional - prefix, used by the server, to generate - a unique name ONLY IF the Name field - has not been provided. If this field - is used, the name returned to the - client will be different than the - name passed. This value will also - be combined with a unique suffix. - The provided value has the same - validation rules as the Name field, - and may be truncated by the length - of the suffix required to make the - value unique on the server. \n If - this field is specified and the - generated name exists, the server - will NOT return a 409 - instead, - it will either return 201 Created - or 500 with Reason ServerTimeout - indicating a unique name could not - be found in the time allotted, and - the client should retry (optionally - after the time indicated in the - Retry-After header). \n Applied - only if Name is not specified. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string keys and - values that can be used to organize - and categorize (scope and select) - objects. May match selectors of - replication controllers and services. - More info: http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must be unique - within a namespace. Is required - when creating resources, although - some resources may allow a client - to request the generation of an - appropriate name automatically. - Name is primarily intended for creation - idempotence and configuration definition. - Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace defines the - space within each name must be unique. - An empty namespace is equivalent - to the \"default\" namespace, but - \"default\" is the canonical representation. - Not all objects are required to - be scoped to a namespace - the value - of this field for those objects - will be empty. \n Must be a DNS_LABEL. - Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects depended - by this object. If ALL objects in - the list have been deleted, this - object will be garbage collected. - If this object is managed by a controller, - then an entry in this list will - point to this controller, with the - controller field set to true. There - cannot be more than one managing - controller. items: - description: OwnerReference contains - enough information to let you - identify an owning object. An - owning object must be in the same - namespace as the dependent, or - be cluster-scoped, so there is - no namespace field. properties: apiVersion: - description: API version of - the referent. type: string blockOwnerDeletion: - description: If true, AND if - the owner has the "foregroundDeletion" - finalizer, then the owner - cannot be deleted from the - key-value store until this - reference is removed. See - https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage collector - interacts with this field - and enforces the foreground - deletion. Defaults to false. - To set this field, a user - needs "delete" permission - of the owner, otherwise 422 - (Unprocessable Entity) will - be returned. type: boolean controller: - description: If true, this reference - points to the managing controller. type: boolean kind: - description: 'Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -18464,56 +6852,19 @@ spec: type: array type: object spec: - description: The specification for the - PersistentVolumeClaim. The entire content - is copied unchanged into the PVC that - gets created from this template. The - same fields as in a PersistentVolumeClaim - are also valid here. properties: accessModes: - description: 'accessModes contains - the desired access modes the volume - should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource field can - be used to specify either: * An - existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an external - controller can support the specified - data source, it will create a new - volume based on the contents of - the specified data source. When - the AnyVolumeDataSource feature - gate is enabled, dataSource contents - will be copied to dataSourceRef, - and dataSourceRef contents will - be copied to dataSource when dataSourceRef.namespace - is not specified. If the namespace - is specified, then dataSourceRef - will not be copied to dataSource.' properties: apiGroup: - description: APIGroup is the group - for the resource being referenced. - If APIGroup is not specified, - the specified Kind must be in - the core API group. For any - other third-party types, APIGroup - is required. type: string kind: - description: Kind is the type - of resource being referenced type: string name: - description: Name is the name - of resource being referenced type: string required: - kind @@ -18521,93 +6872,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef specifies - the object from which to populate - the volume with data, if a non-empty - volume is desired. This may be any - object from a non-empty API group - (non core object) or a PersistentVolumeClaim - object. When this field is specified, - volume binding will only succeed - if the type of the specified object - matches some installed volume populator - or dynamic provisioner. This field - will replace the functionality of - the dataSource field and as such - if both fields are non-empty, they - must have the same value. For backwards - compatibility, when namespace isn''t - specified in dataSourceRef, both - fields (dataSource and dataSourceRef) - will be set to the same value automatically - if one of them is empty and the - other is non-empty. When namespace - is specified in dataSourceRef, dataSource - isn''t set to the same value and - must be empty. There are three important - differences between dataSource and - dataSourceRef: * While dataSource - only allows two specific types of - objects, dataSourceRef allows any - non-core object, as well as PersistentVolumeClaim - objects. * While dataSource ignores - disallowed values (dropping them), - dataSourceRef preserves all values, - and generates an error if a disallowed - value is specified. * While dataSource - only allows local objects, dataSourceRef - allows objects in any namespaces. - (Beta) Using this field requires - the AnyVolumeDataSource feature - gate to be enabled. (Alpha) Using - the namespace field of dataSourceRef - requires the CrossNamespaceVolumeDataSource - feature gate to be enabled.' properties: apiGroup: - description: APIGroup is the group - for the resource being referenced. - If APIGroup is not specified, - the specified Kind must be in - the core API group. For any - other third-party types, APIGroup - is required. type: string kind: - description: Kind is the type - of resource being referenced type: string name: - description: Name is the name - of resource being referenced type: string namespace: - description: Namespace is the - namespace of resource being - referenced Note that when a - namespace is specified, a gateway.networking.k8s.io/ReferenceGrant - object is required in the referent - namespace to allow that namespace's - owner to accept the reference. - See the ReferenceGrant documentation - for details. (Alpha) This field - requires the CrossNamespaceVolumeDataSource - feature gate to be enabled. type: string required: - kind - name type: object resources: - description: 'resources represents - the minimum resources the volume - should have. If RecoverVolumeExpansionFailure - feature is enabled users are allowed - to specify resource requirements - that are lower than previous value - but must still be higher than capacity - recorded in the status field of - the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -18616,10 +6894,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes - the maximum amount of compute - resources allowed. More info: - https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -18628,56 +6902,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes - the minimum amount of compute - resources required. If Requests - is omitted for a container, - it defaults to Limits if that - is explicitly specified, otherwise - to an implementation-defined - value. Requests cannot exceed - Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is a label query - over volumes to consider for binding. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a key, - and an operator that relates - the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator represents - a key's relationship to - a set of values. Valid - operators are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values is an - array of string values. - If the operator is In - or NotIn, the values array - must be non-empty. If - the operator is Exists - or DoesNotExist, the values - array must be empty. This - array is replaced during - a strategic merge patch. items: type: string type: array @@ -18691,61 +6927,16 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a - map of {key,value} pairs. A - single {key,value} in the matchLabels - map is equivalent to an element - of matchExpressions, whose key - field is "key", the operator - is "In", and the values array - contains only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName is - the name of the StorageClass required - by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName - may be used to set the VolumeAttributesClass - used by this claim. If specified, - the CSI driver will create or update - the volume with the attributes defined - in the corresponding VolumeAttributesClass. - This has a different purpose than - storageClassName, it can be changed - after the claim is created. An empty - string value means that no VolumeAttributesClass - will be applied to the claim but - it''s not allowed to reset this - field to empty string once it is - set. If unspecified and the PersistentVolumeClaim - is unbound, the default VolumeAttributesClass - will be set by the persistentvolume - controller if it exists. If the - resource referred to by volumeAttributesClass - does not exist, this PersistentVolumeClaim - will be set to a Pending state, - as reflected by the modifyVolumeStatus - field, until such as a resource - exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires - the VolumeAttributesClass feature - gate to be enabled.' type: string volumeMode: - description: volumeMode defines what - type of volume is required by the - claim. Value of Filesystem is implied - when not included in claim spec. type: string volumeName: - description: volumeName is the binding - reference to the PersistentVolume - backing this claim. type: string type: object required: @@ -18753,94 +6944,41 @@ spec: type: object type: object fc: - description: fc represents a Fibre Channel resource - that is attached to a kubelet's host machine - and then exposed to the pod. properties: fsType: - description: 'fsType is the filesystem type - to mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Implicitly inferred to be - "ext4" if unspecified. TODO: how do we prevent - errors in the filesystem from compromising - the machine' type: string lun: - description: 'lun is Optional: FC target lun - number' format: int32 type: integer readOnly: - description: 'readOnly is Optional: Defaults - to false (read/write). ReadOnly here will - force the ReadOnly setting in VolumeMounts.' type: boolean targetWWNs: - description: 'targetWWNs is Optional: FC target - worldwide names (WWNs)' items: type: string type: array x-kubernetes-list-type: atomic wwids: - description: 'wwids Optional: FC volume world - wide identifiers (wwids) Either wwids or - combination of targetWWNs and lun must be - set, but not both simultaneously.' items: type: string type: array x-kubernetes-list-type: atomic type: object flexVolume: - description: flexVolume represents a generic volume - resource that is provisioned/attached using - an exec based plugin. properties: driver: - description: driver is the name of the driver - to use for this volume. type: string fsType: - description: fsType is the filesystem type - to mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". The default filesystem depends - on FlexVolume script. type: string options: additionalProperties: type: string - description: 'options is Optional: this field - holds extra command options if any.' type: object readOnly: - description: 'readOnly is Optional: defaults - to false (read/write). ReadOnly here will - force the ReadOnly setting in VolumeMounts.' type: boolean secretRef: - description: 'secretRef is Optional: secretRef - is reference to the secret object containing - sensitive information to pass to the plugin - scripts. This may be empty if no secret - object is specified. If the secret object - contains more than one secret, all secrets - are passed to the plugin scripts.' properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic @@ -18848,192 +6986,79 @@ spec: - driver type: object flocker: - description: flocker represents a Flocker volume - attached to a kubelet's host machine. This depends - on the Flocker control service being running properties: datasetName: - description: datasetName is Name of the dataset - stored as metadata -> name on the dataset - for Flocker should be considered as deprecated type: string datasetUUID: - description: datasetUUID is the UUID of the - dataset. This is unique identifier of a - Flocker dataset type: string type: object gcePersistentDisk: - description: 'gcePersistentDisk represents a GCE - Disk resource that is attached to a kubelet''s - host machine and then exposed to the pod. More - info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' properties: fsType: - description: 'fsType is filesystem type of - the volume that you want to mount. Tip: - Ensure that the filesystem type is supported - by the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly inferred - to be "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string partition: - description: 'partition is the partition in - the volume that you want to mount. If omitted, - the default is to mount by volume name. - Examples: For volume /dev/sda1, you specify - the partition as "1". Similarly, the volume - partition for /dev/sda is "0" (or you can - leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' format: int32 type: integer pdName: - description: 'pdName is unique name of the - PD resource in GCE. Used to identify the - disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: string readOnly: - description: 'readOnly here will force the - ReadOnly setting in VolumeMounts. Defaults - to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: boolean required: - pdName type: object glusterfs: - description: 'glusterfs represents a Glusterfs - mount on the host that shares a pod''s lifetime. - More info: https://examples.k8s.io/volumes/glusterfs/README.md' properties: endpoints: - description: 'endpoints is the endpoint name - that details Glusterfs topology. More info: - https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string path: - description: 'path is the Glusterfs volume - path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string readOnly: - description: 'readOnly here will force the - Glusterfs volume to be mounted with read-only - permissions. Defaults to false. More info: - https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: boolean required: - endpoints - path type: object hostPath: - description: 'hostPath represents a pre-existing - file or directory on the host machine that is - directly exposed to the container. This is generally - used for system agents or other privileged things - that are allowed to see the host machine. Most - containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- TODO(jonesdl) We need to restrict who can - use host directory mounts and who can/can not - mount host directories as read/write.' properties: path: - description: 'path of the directory on the - host. If the path is a symlink, it will - follow the link to the real path. More info: - https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string type: - description: 'type for HostPath Volume Defaults - to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string required: - path type: object iscsi: - description: 'iscsi represents an ISCSI Disk resource - that is attached to a kubelet''s host machine - and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md' properties: chapAuthDiscovery: - description: chapAuthDiscovery defines whether - support iSCSI Discovery CHAP authentication type: boolean chapAuthSession: - description: chapAuthSession defines whether - support iSCSI Session CHAP authentication type: boolean fsType: - description: 'fsType is the filesystem type - of the volume that you want to mount. Tip: - Ensure that the filesystem type is supported - by the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly inferred - to be "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string initiatorName: - description: initiatorName is the custom iSCSI - Initiator Name. If initiatorName is specified - with iscsiInterface simultaneously, new - iSCSI interface : will be created for the connection. type: string iqn: - description: iqn is the target iSCSI Qualified - Name. type: string iscsiInterface: - description: iscsiInterface is the interface - Name that uses an iSCSI transport. Defaults - to 'default' (tcp). type: string lun: - description: lun represents iSCSI Target Lun - number. format: int32 type: integer portals: - description: portals is the iSCSI Target Portal - List. The portal is either an IP or ip_addr:port - if the port is other than default (typically - TCP ports 860 and 3260). items: type: string type: array x-kubernetes-list-type: atomic readOnly: - description: readOnly here will force the - ReadOnly setting in VolumeMounts. Defaults - to false. type: boolean secretRef: - description: secretRef is the CHAP Secret - for iSCSI target and initiator authentication properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic targetPortal: - description: targetPortal is iSCSI Target - Portal. The Portal is either an IP or ip_addr:port - if the port is other than default (typically - TCP ports 860 and 3260). type: string required: - iqn @@ -19041,182 +7066,68 @@ spec: - targetPortal type: object name: - description: 'name of the volume. Must be a DNS_LABEL - and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string nfs: - description: 'nfs represents an NFS mount on the - host that shares a pod''s lifetime More info: - https://kubernetes.io/docs/concepts/storage/volumes#nfs' properties: path: - description: 'path that is exported by the - NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string readOnly: - description: 'readOnly here will force the - NFS export to be mounted with read-only - permissions. Defaults to false. More info: - https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: boolean server: - description: 'server is the hostname or IP - address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string required: - path - server type: object persistentVolumeClaim: - description: 'persistentVolumeClaimVolumeSource - represents a reference to a PersistentVolumeClaim - in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: claimName: - description: 'claimName is the name of a PersistentVolumeClaim - in the same namespace as the pod using this - volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' type: string readOnly: - description: readOnly Will force the ReadOnly - setting in VolumeMounts. Default false. type: boolean required: - claimName type: object photonPersistentDisk: - description: photonPersistentDisk represents a - PhotonController persistent disk attached and - mounted on kubelets host machine properties: fsType: - description: fsType is the filesystem type - to mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Implicitly inferred to be - "ext4" if unspecified. type: string pdID: - description: pdID is the ID that identifies - Photon Controller persistent disk type: string required: - pdID type: object portworxVolume: - description: portworxVolume represents a portworx - volume attached and mounted on kubelets host - machine properties: fsType: - description: fSType represents the filesystem - type to mount Must be a filesystem type - supported by the host operating system. - Ex. "ext4", "xfs". Implicitly inferred to - be "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean volumeID: - description: volumeID uniquely identifies - a Portworx volume type: string required: - volumeID type: object projected: - description: projected items for all in one resources - secrets, configmaps, and downward API properties: defaultMode: - description: defaultMode are the mode bits - used to set permissions on created files - by default. Must be an octal value between - 0000 and 0777 or a decimal value between - 0 and 511. YAML accepts both octal and decimal - values, JSON requires decimal values for - mode bits. Directories within the path are - not affected by this setting. This might - be in conflict with other options that affect - the file mode, like fsGroup, and the result - can be other mode bits set. format: int32 type: integer sources: - description: sources is the list of volume - projections items: - description: Projection that may be projected - along with other supported volume types properties: clusterTrustBundle: - description: "ClusterTrustBundle allows - a pod to access the `.spec.trustBundle` - field of ClusterTrustBundle objects - in an auto-updating file. \n Alpha, - gated by the ClusterTrustBundleProjection - feature gate. \n ClusterTrustBundle - objects can either be selected by - name, or by the combination of signer - name and a label selector. \n Kubelet - performs aggressive normalization - of the PEM contents written into the - pod filesystem. Esoteric PEM features - such as inter-block comments and block - headers are stripped. Certificates - are deduplicated. The ordering of - certificates within the file is arbitrary, - and Kubelet may change the order over - time." properties: labelSelector: - description: Select all ClusterTrustBundles - that match this label selector. Only - has effect if signerName is set. Mutually-exclusive - with name. If unset, interpreted - as "match nothing". If set but - empty, interpreted as "match everything". properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator - represents a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is - an array of string values. - If the operator is In - or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the - values array must be - empty. This array is - replaced during a strategic - merge patch. items: type: string type: array @@ -19230,103 +7141,31 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in the - matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic name: - description: Select a single ClusterTrustBundle - by object name. Mutually-exclusive - with signerName and labelSelector. type: string optional: - description: If true, don't block - pod startup if the referenced - ClusterTrustBundle(s) aren't available. If - using name, then the named ClusterTrustBundle - is allowed not to exist. If using - signerName, then the combination - of signerName and labelSelector - is allowed to match zero ClusterTrustBundles. type: boolean path: - description: Relative path from - the volume root to write the bundle. type: string signerName: - description: Select all ClusterTrustBundles - that match this signer name. Mutually-exclusive - with name. The contents of all - selected ClusterTrustBundles will - be unified and deduplicated. type: string required: - path type: object configMap: - description: configMap information about - the configMap data to project properties: items: - description: items if unspecified, - each key-value pair in the Data - field of the referenced ConfigMap - will be projected into the volume - as a file whose name is the key - and content is the value. If specified, - the listed keys will be projected - into the specified paths, and - unlisted keys will not be present. - If a key is specified which is - not present in the ConfigMap, - the volume setup will error unless - it is marked optional. Paths must - be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key - to a path within a volume. properties: key: - description: key is the key - to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an - octal value between 0000 - and 0777 or a decimal value - between 0 and 511. YAML - accepts both octal and decimal - values, JSON requires decimal - values for mode bits. If - not specified, the volume - defaultMode will be used. - This might be in conflict - with other options that - affect the file mode, like - fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map - the key to. May not be an - absolute path. May not contain - the path element '..'. May - not start with the string - '..'. type: string required: - key @@ -19336,116 +7175,42 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether - the ConfigMap or its keys must - be defined type: boolean type: object x-kubernetes-map-type: atomic downwardAPI: - description: downwardAPI information - about the downwardAPI data to project properties: items: - description: Items is a list of - DownwardAPIVolume file items: - description: DownwardAPIVolumeFile - represents information to create - the file containing the pod - field properties: fieldRef: - description: 'Required: Selects - a field of the pod: only - annotations, labels, name, - namespace and uid are supported.' properties: apiVersion: - description: Version of - the schema the FieldPath - is written in terms - of, defaults to "v1". type: string fieldPath: - description: Path of the - field to select in the - specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode - bits used to set permissions - on this file, must be an - octal value between 0000 - and 0777 or a decimal value - between 0 and 511. YAML - accepts both octal and decimal - values, JSON requires decimal - values for mode bits. If - not specified, the volume - defaultMode will be used. - This might be in conflict - with other options that - affect the file mode, like - fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: 'Required: Path - is the relative path name - of the file to be created. - Must not be absolute or - contain the ''..'' path. - Must be utf-8 encoded. The - first item of the relative - path must not start with - ''..''' type: string resourceFieldRef: - description: 'Selects a resource - of the container: only resources - limits and requests (limits.cpu, - limits.memory, requests.cpu - and requests.memory) are - currently supported.' properties: containerName: - description: 'Container - name: required for volumes, - optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies - the output format of - the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: - resource to select' type: string required: - resource @@ -19458,60 +7223,16 @@ spec: x-kubernetes-list-type: atomic type: object secret: - description: secret information about - the secret data to project properties: items: - description: items if unspecified, - each key-value pair in the Data - field of the referenced Secret - will be projected into the volume - as a file whose name is the key - and content is the value. If specified, - the listed keys will be projected - into the specified paths, and - unlisted keys will not be present. - If a key is specified which is - not present in the Secret, the - volume setup will error unless - it is marked optional. Paths must - be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key - to a path within a volume. properties: key: - description: key is the key - to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an - octal value between 0000 - and 0777 or a decimal value - between 0 and 511. YAML - accepts both octal and decimal - values, JSON requires decimal - values for mode bits. If - not specified, the volume - defaultMode will be used. - This might be in conflict - with other options that - affect the file mode, like - fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map - the key to. May not be an - absolute path. May not contain - the path element '..'. May - not start with the string - '..'. type: string required: - key @@ -19521,61 +7242,19 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional field specify - whether the Secret or its key - must be defined type: boolean type: object x-kubernetes-map-type: atomic serviceAccountToken: - description: serviceAccountToken is - information about the serviceAccountToken - data to project properties: audience: - description: audience is the intended - audience of the token. A recipient - of a token must identify itself - with an identifier specified in - the audience of the token, and - otherwise should reject the token. - The audience defaults to the identifier - of the apiserver. type: string expirationSeconds: - description: expirationSeconds is - the requested duration of validity - of the service account token. - As the token approaches expiration, - the kubelet volume plugin will - proactively rotate the service - account token. The kubelet will - start trying to rotate the token - if the token is older than 80 - percent of its time to live or - if the token is older than 24 - hours.Defaults to 1 hour and must - be at least 10 minutes. format: int64 type: integer path: - description: path is the path relative - to the mount point of the file - to project the token into. type: string required: - path @@ -19585,179 +7264,79 @@ spec: x-kubernetes-list-type: atomic type: object quobyte: - description: quobyte represents a Quobyte mount - on the host that shares a pod's lifetime properties: group: - description: group to map volume access to - Default is no group type: string readOnly: - description: readOnly here will force the - Quobyte volume to be mounted with read-only - permissions. Defaults to false. type: boolean registry: - description: registry represents a single - or multiple Quobyte Registry services specified - as a string as host:port pair (multiple - entries are separated with commas) which - acts as the central registry for volumes type: string tenant: - description: tenant owning the given Quobyte - volume in the Backend Used with dynamically - provisioned Quobyte volumes, value is set - by the plugin type: string user: - description: user to map volume access to - Defaults to serivceaccount user type: string volume: - description: volume is a string that references - an already created Quobyte volume by name. type: string required: - registry - volume type: object rbd: - description: 'rbd represents a Rados Block Device - mount on the host that shares a pod''s lifetime. - More info: https://examples.k8s.io/volumes/rbd/README.md' properties: fsType: - description: 'fsType is the filesystem type - of the volume that you want to mount. Tip: - Ensure that the filesystem type is supported - by the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly inferred - to be "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string image: - description: 'image is the rados image name. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string keyring: - description: 'keyring is the path to key ring - for RBDUser. Default is /etc/ceph/keyring. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string monitors: - description: 'monitors is a collection of - Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic pool: - description: 'pool is the rados pool name. - Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string readOnly: - description: 'readOnly here will force the - ReadOnly setting in VolumeMounts. Defaults - to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: boolean secretRef: - description: 'secretRef is name of the authentication - secret for RBDUser. If provided overrides - keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is the rados user name. - Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string required: - image - monitors type: object scaleIO: - description: scaleIO represents a ScaleIO persistent - volume attached and mounted on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem type - to mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Default is "xfs". type: string gateway: - description: gateway is the host address of - the ScaleIO API Gateway. type: string protectionDomain: - description: protectionDomain is the name - of the ScaleIO Protection Domain for the - configured storage. type: string readOnly: - description: readOnly Defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean secretRef: - description: secretRef references to the secret - for ScaleIO user and other sensitive information. - If this is not provided, Login operation - will fail. properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic sslEnabled: - description: sslEnabled Flag enable/disable - SSL communication with Gateway, default - false type: boolean storageMode: - description: storageMode indicates whether - the storage for a volume should be ThickProvisioned - or ThinProvisioned. Default is ThinProvisioned. type: string storagePool: - description: storagePool is the ScaleIO Storage - Pool associated with the protection domain. type: string system: - description: system is the name of the storage - system as configured in ScaleIO. type: string volumeName: - description: volumeName is the name of a volume - already created in the ScaleIO system that - is associated with this volume source. type: string required: - gateway @@ -19765,65 +7344,19 @@ spec: - system type: object secret: - description: 'secret represents a secret that - should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' properties: defaultMode: - description: 'defaultMode is Optional: mode - bits used to set permissions on created - files by default. Must be an octal value - between 0000 and 0777 or a decimal value - between 0 and 511. YAML accepts both octal - and decimal values, JSON requires decimal - values for mode bits. Defaults to 0644. - Directories within the path are not affected - by this setting. This might be in conflict - with other options that affect the file - mode, like fsGroup, and the result can be - other mode bits set.' format: int32 type: integer items: - description: items If unspecified, each key-value - pair in the Data field of the referenced - Secret will be projected into the volume - as a file whose name is the key and content - is the value. If specified, the listed keys - will be projected into the specified paths, - and unlisted keys will not be present. If - a key is specified which is not present - in the Secret, the volume setup will error - unless it is marked optional. Paths must - be relative and may not contain the '..' - path or start with '..'. items: - description: Maps a string key to a path - within a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: mode - bits used to set permissions on this - file. Must be an octal value between - 0000 and 0777 or a decimal value between - 0 and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. If not - specified, the volume defaultMode - will be used. This might be in conflict - with other options that affect the - file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative path - of the file to map the key to. May - not be an absolute path. May not contain - the path element '..'. May not start - with the string '..'. type: string required: - key @@ -19832,93 +7365,37 @@ spec: type: array x-kubernetes-list-type: atomic optional: - description: optional field specify whether - the Secret or its keys must be defined type: boolean secretName: - description: 'secretName is the name of the - secret in the pod''s namespace to use. More - info: https://kubernetes.io/docs/concepts/storage/volumes#secret' type: string type: object storageos: - description: storageOS represents a StorageOS - volume attached and mounted on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem type - to mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Implicitly inferred to be - "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean secretRef: - description: secretRef specifies the secret - to use for obtaining the StorageOS API credentials. If - not specified, default values will be attempted. properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeName: - description: volumeName is the human-readable - name of the StorageOS volume. Volume names - are only unique within a namespace. type: string volumeNamespace: - description: volumeNamespace specifies the - scope of the volume within StorageOS. If - no namespace is specified then the Pod's - namespace will be used. This allows the - Kubernetes name scoping to be mirrored within - StorageOS for tighter integration. Set VolumeName - to any name to override the default behaviour. - Set to "default" if you are not using namespaces - within StorageOS. Namespaces that do not - pre-exist within StorageOS will be created. type: string type: object vsphereVolume: - description: vsphereVolume represents a vSphere - volume attached and mounted on kubelets host - machine properties: fsType: - description: fsType is filesystem type to - mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Implicitly inferred to be - "ext4" if unspecified. type: string storagePolicyID: - description: storagePolicyID is the storage - Policy Based Management (SPBM) profile ID - associated with the StoragePolicyName. type: string storagePolicyName: - description: storagePolicyName is the storage - Policy Based Management (SPBM) profile name. type: string volumePath: - description: volumePath is the path that identifies - vSphere volume vmdk type: string required: - volumePath @@ -19930,206 +7407,93 @@ spec: type: object type: array preBackup: - description: PreBackup specifies a list of hooks that will - be executed before backup items: - description: HookInfo specifies the information about the - backup/restore hooks properties: executionPolicy: default: Always - description: 'ExecutionPolicy specifies when to execute - the hook. Valid values are: - "Always": KubeStash - will execute this hook no matter the backup/restore - failed. This is the default execution policy. - "OnSuccess": - KubeStash will execute this hook only if the backup/restore - has succeeded. - "OnFailure": KubeStash will execute - this hook only if the backup/restore has failed.' enum: - Always - OnSuccess - OnFailure type: string hookTemplate: - description: HookTemplate points to a HookTemplate CR - that will be used to execute the hook. You can refer - to a HookTemplate from other namespaces as long as - your current namespace is allowed by the `usagePolicy` - in the respective HookTemplate. properties: name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: - description: 'Namespace of the referent. More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string required: - name type: object maxRetry: - description: MaxRetry specifies how many times KubeStash - should retry the hook execution in case of failure. - The default value of this field is 0 which means no - retry. format: int32 minimum: 0 type: integer name: - description: Name specifies a name for the hook type: string params: - description: Params specifies parameters for the hook. - You must provide the parameter in the HookTemplates - desired structure. type: object x-kubernetes-preserve-unknown-fields: true runtimeSettings: - description: RuntimeSettings specifies runtime configurations - for the hook executor Job. Use this field only for - `Function` type hook executor. properties: container: properties: env: - description: List of environment variables to - set in the container. Cannot be updated. items: - description: EnvVar represents an environment - variable present in a Container. properties: name: - description: Name of the environment variable. - Must be a C_IDENTIFIER. type: string value: - description: 'Variable references $(VAR_NAME) - are expanded using the previously defined - environment variables in the container - and any service environment variables. - If a variable cannot be resolved, the - reference in the input string will be - unchanged. Double $$ are reduced to - a single $, which allows for escaping - the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" - will produce the string literal "$(VAR_NAME)". - Escaped references will never be expanded, - regardless of whether the variable exists - or not. Defaults to "".' type: string valueFrom: - description: Source for the environment - variable's value. Cannot be used if - value is not empty. properties: configMapKeyRef: - description: Selects a key of a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the - ConfigMap or its key must be - defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field of the - pod: supports metadata.name, metadata.namespace, - `metadata.labels['''']`, `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, - status.hostIP, status.podIP, status.podIPs.' properties: apiVersion: - description: Version of the schema - the FieldPath is written in - terms of, defaults to "v1". type: string fieldPath: - description: Path of the field - to select in the specified API - version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource of - the container: only resources limits - and requests (limits.cpu, limits.memory, - limits.ephemeral-storage, requests.cpu, - requests.memory and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: - required for volumes, optional - for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource - to select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret - in the pod's namespace properties: key: - description: The key of the secret - to select from. Must be a valid - secret key. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the - Secret or its key must be defined type: boolean required: - key @@ -20141,76 +7505,31 @@ spec: type: object type: array envFrom: - description: List of sources to populate environment - variables in the container. The keys defined - within a source must be a C_IDENTIFIER. All - invalid keys will be reported as an event - when the container is starting. When a key - exists in multiple sources, the value associated - with the last source will take precedence. - Values defined by an Env with a duplicate - key will take precedence. Cannot be updated. items: - description: EnvFromSource represents the - source of a set of ConfigMaps properties: configMapRef: - description: The ConfigMap to select from properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap - must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: - description: An optional identifier to - prepend to each key in the ConfigMap. - Must be a C_IDENTIFIER. type: string secretRef: - description: The Secret to select from properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret - must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array ionice: - description: 'Settings to configure `ionice` - to throttle the load on disk. More info: http://kennystechtalk.blogspot.com/2015/04/throttling-cpu-usage-with-linux-cgroups.html - More info: https://oakbytes.wordpress.com/2012/06/06/linux-scheduler-cfs-and-nice/' properties: class: format: int32 @@ -20220,70 +7539,27 @@ spec: type: integer type: object lifecycle: - description: Actions that the management system - should take in response to container lifecycle - events. Cannot be updated. properties: postStart: - description: 'PostStart is called immediately - after a container is created. If the handler - fails, the container is terminated and - restarted according to its restart policy. - Other management of the container blocks - until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the - command is root ('/') in the - container's filesystem. The command - is simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, you - need to explicitly call out to - that shell. Exit status of 0 is - treated as live/healthy and non-zero - is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in - httpHeaders instead. type: string httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood - as the same header. type: string value: - description: The header field - value type: string required: - name @@ -20292,134 +7568,58 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the - HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration - that the container should sleep before - being terminated. properties: seconds: - description: Seconds is the number - of seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is - NOT supported as a LifecycleHandler - and kept for the backward compatibility. - There are no validation of this field - and lifecycle hooks will fail in runtime - when tcp handler is specified. properties: host: - description: 'Optional: Host name - to connect to, defaults to the - pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object type: object preStop: - description: 'PreStop is called immediately - before a container is terminated due to - an API request or management event such - as liveness/startup probe failure, preemption, - resource contention, etc. The handler - is not called if the container crashes - or exits. The Pod''s termination grace - period countdown begins before the PreStop - hook is executed. Regardless of the outcome - of the handler, the container will eventually - terminate within the Pod''s termination - grace period (unless delayed by finalizers). - Other management of the container blocks - until the hook completes or until the - termination grace period is reached. More - info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the - command is root ('/') in the - container's filesystem. The command - is simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, you - need to explicitly call out to - that shell. Exit status of 0 is - treated as live/healthy and non-zero - is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in - httpHeaders instead. type: string httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood - as the same header. type: string value: - description: The header field - value type: string required: - name @@ -20428,59 +7628,33 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the - HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration - that the container should sleep before - being terminated. properties: seconds: - description: Seconds is the number - of seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is - NOT supported as a LifecycleHandler - and kept for the backward compatibility. - There are no validation of this field - and lifecycle hooks will fail in runtime - when tcp handler is specified. properties: host: - description: 'Optional: Host name - to connect to, defaults to the - pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port @@ -20488,87 +7662,38 @@ spec: type: object type: object livenessProbe: - description: 'Periodic probe of container liveness. - Container will be restarted if the probe fails. - Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to - take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it is - not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to - explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults to 3. - Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving - a GRPC port. properties: port: - description: Port number of the gRPC - service. Number must be in the range - 1 to 65535. format: int32 type: integer service: - description: "Service is the name of - the service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default - behavior is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect to, - defaults to the pod IP. You probably - want to set "Host" in httpHeaders - instead. type: string httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in HTTP - probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood as - the same header. type: string value: - description: The header field - value type: string required: - name @@ -20577,186 +7702,84 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP - server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port - to access on the container. Number - must be in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the - container has started before liveness - probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform - the probe. Default to 10 seconds. Minimum - value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. Must - be 1 for liveness and startup. Minimum - value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action - involving a TCP port. properties: host: - description: 'Optional: Host name to - connect to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port - to access on the container. Number - must be in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully - upon probe failure. The grace period is - the duration in seconds after the processes - running in the pod are sent a termination - signal and the time when the processes - are forcibly halted with a kill signal. - Set this value longer than the expected - cleanup time for your process. If this - value is nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value overrides - the value provided by the pod spec. Value - must be non-negative integer. The value - zero indicates stop immediately via the - kill signal (no opportunity to shut down). - This is a beta field and requires enabling - ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which - the probe times out. Defaults to 1 second. - Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object nice: - description: 'Settings to configure `nice` to - throttle the load on cpu. More info: http://kennystechtalk.blogspot.com/2015/04/throttling-cpu-usage-with-linux-cgroups.html - More info: https://oakbytes.wordpress.com/2012/06/06/linux-scheduler-cfs-and-nice/' properties: adjustment: format: int32 type: integer type: object readinessProbe: - description: 'Periodic probe of container service - readiness. Container will be removed from - service endpoints if the probe fails. Cannot - be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to - take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it is - not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to - explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults to 3. - Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving - a GRPC port. properties: port: - description: Port number of the gRPC - service. Number must be in the range - 1 to 65535. format: int32 type: integer service: - description: "Service is the name of - the service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default - behavior is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect to, - defaults to the pod IP. You probably - want to set "Host" in httpHeaders - instead. type: string httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in HTTP - probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood as - the same header. type: string value: - description: The header field - value type: string required: - name @@ -20765,116 +7788,51 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP - server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port - to access on the container. Number - must be in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the - container has started before liveness - probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform - the probe. Default to 10 seconds. Minimum - value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. Must - be 1 for liveness and startup. Minimum - value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action - involving a TCP port. properties: host: - description: 'Optional: Host name to - connect to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port - to access on the container. Number - must be in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully - upon probe failure. The grace period is - the duration in seconds after the processes - running in the pod are sent a termination - signal and the time when the processes - are forcibly halted with a kill signal. - Set this value longer than the expected - cleanup time for your process. If this - value is nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value overrides - the value provided by the pod spec. Value - must be non-negative integer. The value - zero indicates stop immediately via the - kill signal (no opportunity to shut down). - This is a beta field and requires enabling - ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which - the probe times out. Defaults to 1 second. - Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object resources: - description: 'Compute Resources required by - container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' properties: claims: - description: "Claims lists the names of - resources, defined in spec.resourceClaims, - that are used by this container. \n This - is an alpha field and requires enabling - the DynamicResourceAllocation feature - gate. \n This field is immutable. It can - only be set for containers." items: - description: ResourceClaim references - one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name - of one entry in pod.spec.resourceClaims - of the Pod where this field is used. - It makes that resource available - inside a container. type: string required: - name @@ -20890,9 +7848,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum - amount of compute resources allowed. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -20901,245 +7856,77 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum - amount of compute resources required. - If Requests is omitted for a container, - it defaults to Limits if that is explicitly - specified, otherwise to an implementation-defined - value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object securityContext: - description: 'Security options the pod should - run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: allowPrivilegeEscalation: - description: 'AllowPrivilegeEscalation controls - whether a process can gain more privileges - than its parent process. This bool directly - controls if the no_new_privs flag will - be set on the container process. AllowPrivilegeEscalation - is true always when the container is: - 1) run as Privileged 2) has CAP_SYS_ADMIN - Note that this field cannot be set when - spec.os.name is windows.' type: boolean appArmorProfile: - description: appArmorProfile is the AppArmor - options to use by this container. If set, - this profile overrides the pod's appArmorProfile. - Note that this field cannot be set when - spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile loaded on the node that - should be used. The profile must be - preconfigured on the node to work. - Must match the loaded name of the - profile. Must be set if and only if - type is "Localhost". type: string type: - description: 'type indicates which kind - of AppArmor profile will be applied. - Valid options are: Localhost - a profile - pre-loaded on the node. RuntimeDefault - - the container runtime''s default - profile. Unconfined - no AppArmor - enforcement.' type: string required: - type type: object capabilities: - description: The capabilities to add/drop - when running containers. Defaults to the - default set of capabilities granted by - the container runtime. Note that this - field cannot be set when spec.os.name - is windows. properties: add: - description: Added capabilities items: - description: Capability represent - POSIX capabilities type type: string type: array x-kubernetes-list-type: atomic drop: - description: Removed capabilities items: - description: Capability represent - POSIX capabilities type type: string type: array x-kubernetes-list-type: atomic type: object privileged: - description: Run container in privileged - mode. Processes in privileged containers - are essentially equivalent to root on - the host. Defaults to false. Note that - this field cannot be set when spec.os.name - is windows. type: boolean procMount: - description: procMount denotes the type - of proc mount to use for the containers. - The default is DefaultProcMount which - uses the container runtime defaults for - readonly paths and masked paths. This - requires the ProcMountType feature flag - to be enabled. Note that this field cannot - be set when spec.os.name is windows. type: string readOnlyRootFilesystem: - description: Whether this container has - a read-only root filesystem. Default is - false. Note that this field cannot be - set when spec.os.name is windows. type: boolean runAsGroup: - description: The GID to run the entrypoint - of the container process. Uses runtime - default if unset. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container - must run as a non-root user. If true, - the Kubelet will validate the image at - runtime to ensure that it does not run - as UID 0 (root) and fail to start the - container if it does. If unset or false, - no such validation will be performed. - May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: boolean runAsUser: - description: The UID to run the entrypoint - of the container process. Defaults to - user specified in image metadata if unspecified. - May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be applied - to the container. If unspecified, the - container runtime will allocate a random - SELinux context for each container. May - also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is windows. properties: level: - description: Level is SELinux level - label that applies to the container. type: string role: - description: Role is a SELinux role - label that applies to the container. type: string type: - description: Type is a SELinux type - label that applies to the container. type: string user: - description: User is a SELinux user - label that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to use - by this container. If seccomp options - are provided at both the pod & container - level, the container options override - the pod options. Note that this field - cannot be set when spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile defined in a file on the - node should be used. The profile must - be preconfigured on the node to work. - Must be a descending path, relative - to the kubelet's configured seccomp - profile location. Must be set if type - is "Localhost". Must NOT be set for - any other type. type: string type: - description: "type indicates which kind - of seccomp profile will be applied. - Valid options are: \n Localhost - - a profile defined in a file on the - node should be used. RuntimeDefault - - the container runtime default profile - should be used. Unconfined - no profile - should be applied." type: string required: - type type: object windowsOptions: - description: The Windows specific settings - applied to all containers. If unspecified, - the options from the PodSecurityContext - will be used. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. Note - that this field cannot be set when spec.os.name - is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is where - the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA credential - spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName - is the name of the GMSA credential - spec to use. type: string hostProcess: - description: HostProcess determines - if a container should be run as a - 'Host Process' container. All of a - Pod's containers must have the same - effective HostProcess value (it is - not allowed to have a mix of HostProcess - containers and non-HostProcess containers). - In addition, if HostProcess is true - then HostNetwork must also be set - to true. type: boolean runAsUserName: - description: The UserName in Windows - to run the entrypoint of the container - process. Defaults to the user specified - in image metadata if unspecified. - May also be set in PodSecurityContext. - If set in both SecurityContext and - PodSecurityContext, the value specified - in SecurityContext takes precedence. type: string type: object type: object @@ -21147,87 +7934,22 @@ spec: pod: properties: affinity: - description: If specified, the pod's scheduling - constraints properties: nodeAffinity: - description: Describes node affinity scheduling - rules for the pod. properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer - to schedule pods to nodes that satisfy - the affinity expressions specified - by this field, but it may choose a - node that violates one or more of - the expressions. The node that is - most preferred is the one with the - greatest sum of weights, i.e. for - each node that meets all of the scheduling - requirements (resource request, requiredDuringScheduling - affinity expressions, etc.), compute - a sum by iterating through the elements - of this field and adding "weight" - to the sum if the node matches the - corresponding matchExpressions; the - node(s) with the highest sum are the - most preferred. items: - description: An empty preferred scheduling - term matches all objects with implicit - weight 0 (i.e. it's a no-op). A - null preferred scheduling term matches - no objects (i.e. is also a no-op). properties: preference: - description: A node selector term, - associated with the corresponding - weight. properties: matchExpressions: - description: A list of node - selector requirements by - node's labels. items: - description: A node selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists, - DoesNotExist. Gt, - and Lt. type: string values: - description: An array - of string values. - If the operator is - In or NotIn, the values - array must be non-empty. - If the operator is - Exists or DoesNotExist, - the values array must - be empty. If the operator - is Gt or Lt, the values - array must have a - single element, which - will be interpreted - as an integer. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -21239,49 +7961,13 @@ spec: type: array x-kubernetes-list-type: atomic matchFields: - description: A list of node - selector requirements by - node's fields. items: - description: A node selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists, - DoesNotExist. Gt, - and Lt. type: string values: - description: An array - of string values. - If the operator is - In or NotIn, the values - array must be non-empty. - If the operator is - Exists or DoesNotExist, - the values array must - be empty. If the operator - is Gt or Lt, the values - array must have a - single element, which - will be interpreted - as an integer. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -21295,10 +7981,6 @@ spec: type: object x-kubernetes-map-type: atomic weight: - description: Weight associated - with matching the corresponding - nodeSelectorTerm, in the range - 1-100. format: int32 type: integer required: @@ -21308,73 +7990,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements - specified by this field are not met - at scheduling time, the pod will not - be scheduled onto the node. If the - affinity requirements specified by - this field cease to be met at some - point during pod execution (e.g. due - to an update), the system may or may - not try to eventually evict the pod - from its node. properties: nodeSelectorTerms: - description: Required. A list of - node selector terms. The terms - are ORed. items: - description: A null or empty node - selector term matches no objects. - The requirements of them are - ANDed. The TopologySelectorTerm - type implements a subset of - the NodeSelectorTerm. properties: matchExpressions: - description: A list of node - selector requirements by - node's labels. items: - description: A node selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists, - DoesNotExist. Gt, - and Lt. type: string values: - description: An array - of string values. - If the operator is - In or NotIn, the values - array must be non-empty. - If the operator is - Exists or DoesNotExist, - the values array must - be empty. If the operator - is Gt or Lt, the values - array must have a - single element, which - will be interpreted - as an integer. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -21386,49 +8013,13 @@ spec: type: array x-kubernetes-list-type: atomic matchFields: - description: A list of node - selector requirements by - node's fields. items: - description: A node selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists, - DoesNotExist. Gt, - and Lt. type: string values: - description: An array - of string values. - If the operator is - In or NotIn, the values - array must be non-empty. - If the operator is - Exists or DoesNotExist, - the values array must - be empty. If the operator - is Gt or Lt, the values - array must have a - single element, which - will be interpreted - as an integer. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -21449,91 +8040,22 @@ spec: x-kubernetes-map-type: atomic type: object podAffinity: - description: Describes pod affinity scheduling - rules (e.g. co-locate this pod in the - same node, zone, etc. as some other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer - to schedule pods to nodes that satisfy - the affinity expressions specified - by this field, but it may choose a - node that violates one or more of - the expressions. The node that is - most preferred is the one with the - greatest sum of weights, i.e. for - each node that meets all of the scheduling - requirements (resource request, requiredDuringScheduling - affinity expressions, etc.), compute - a sum by iterating through the elements - of this field and adding "weight" - to the sum if the node has pods which - matches the corresponding podAffinityTerm; - the node(s) with the highest sum are - the most preferred. items: - description: The weights of all of - the matched WeightedPodAffinityTerm - fields are added per-node to find - the most preferred node(s) properties: podAffinityTerm: - description: Required. A pod affinity - term, associated with the corresponding - weight. properties: labelSelector: - description: A label query - over a set of resources, - in this case pods. If it's - null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: key - is the label key - that the selector - applies to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values - is an array of - string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -21547,141 +8069,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an - element of matchExpressions, - whose key field is "key", - the operator is "In", - and the values array - contains only "value". - The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming - pod labels, those key-value - labels are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods - which pods will be taken - into consideration for the - incoming pod's pod (anti) - affinity. Keys that don't - exist in the incoming pod - labels will be ignored. - The default value is empty. - The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, - matchLabelKeys cannot be - set when labelSelector isn't - set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming - pod labels, those key-value - labels are merged with `labelSelector` - as `key notin (value)` to - select the group of existing - pods which pods will be - taken into consideration - for the incoming pod's pod - (anti) affinity. Keys that - don't exist in the incoming - pod labels will be ignored. - The default value is empty. - The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, - mismatchLabelKeys cannot - be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query - over the set of namespaces - that the term applies to. - The term is applied to the - union of the namespaces - selected by this field and - the ones listed in the namespaces - field. null selector and - null or empty namespaces - list means "this pod's namespace". - An empty selector ({}) matches - all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: key - is the label key - that the selector - applies to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values - is an array of - string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -21695,59 +8105,20 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an - element of matchExpressions, - whose key field is "key", - the operator is "In", - and the values array - contains only "value". - The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace - names that the term applies - to. The term is applied - to the union of the namespaces - listed in this field and - the ones selected by namespaceSelector. - null or empty namespaces - list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should - be co-located (affinity) - or not co-located (anti-affinity) - with the pods matching the - labelSelector in the specified - namespaces, where co-located - is defined as running on - a node whose value of the - label with key topologyKey - matches that of any node - on which any of the selected - pods is running. Empty topologyKey - is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated - with matching the corresponding - podAffinityTerm, in the range - 1-100. format: int32 type: integer required: @@ -21757,81 +8128,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements - specified by this field are not met - at scheduling time, the pod will not - be scheduled onto the node. If the - affinity requirements specified by - this field cease to be met at some - point during pod execution (e.g. due - to a pod label update), the system - may or may not try to eventually evict - the pod from its node. When there - are multiple elements, the lists of - nodes corresponding to each podAffinityTerm - are intersected, i.e. all terms must - be satisfied. items: - description: Defines a set of pods - (namely those matching the labelSelector - relative to the given namespace(s)) - that this pod should be co-located - (affinity) or not co-located (anti-affinity) - with, where co-located is defined - as running on a node whose value - of the label with key - matches that of any node on which - a pod of the set of pods is running properties: labelSelector: - description: A label query over - a set of resources, in this - case pods. If it's null, this - PodAffinityTerm matches with - no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to a - set of values. Valid - operators are In, - NotIn, Exists and - DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, the - values array must - be non-empty. If the - operator is Exists - or DoesNotExist, the - values array must - be empty. This array - is replaced during - a strategic merge - patch. items: type: string type: array @@ -21845,129 +8153,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in - the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is - a set of pod label keys to select - which pods will be taken into - consideration. The keys are - used to lookup values from the - incoming pod labels, those key-value - labels are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, matchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label keys to - select which pods will be taken - into consideration. The keys - are used to lookup values from - the incoming pod labels, those - key-value labels are merged - with `labelSelector` as `key - notin (value)` to select the - group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over - the set of namespaces that the - term applies to. The term is - applied to the union of the - namespaces selected by this - field and the ones listed in - the namespaces field. null selector - and null or empty namespaces - list means "this pod's namespace". - An empty selector ({}) matches - all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to a - set of values. Valid - operators are In, - NotIn, Exists and - DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, the - values array must - be non-empty. If the - operator is Exists - or DoesNotExist, the - values array must - be empty. This array - is replaced during - a strategic merge - patch. items: type: string type: array @@ -21981,47 +8189,15 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in - the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace names - that the term applies to. The - term is applied to the union - of the namespaces listed in - this field and the ones selected - by namespaceSelector. null or - empty namespaces list and null - namespaceSelector means "this - pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be - co-located (affinity) or not - co-located (anti-affinity) with - the pods matching the labelSelector - in the specified namespaces, - where co-located is defined - as running on a node whose value - of the label with key topologyKey - matches that of any node on - which any of the selected pods - is running. Empty topologyKey - is not allowed. type: string required: - topologyKey @@ -22030,92 +8206,22 @@ spec: x-kubernetes-list-type: atomic type: object podAntiAffinity: - description: Describes pod anti-affinity - scheduling rules (e.g. avoid putting this - pod in the same node, zone, etc. as some - other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer - to schedule pods to nodes that satisfy - the anti-affinity expressions specified - by this field, but it may choose a - node that violates one or more of - the expressions. The node that is - most preferred is the one with the - greatest sum of weights, i.e. for - each node that meets all of the scheduling - requirements (resource request, requiredDuringScheduling - anti-affinity expressions, etc.), - compute a sum by iterating through - the elements of this field and adding - "weight" to the sum if the node has - pods which matches the corresponding - podAffinityTerm; the node(s) with - the highest sum are the most preferred. items: - description: The weights of all of - the matched WeightedPodAffinityTerm - fields are added per-node to find - the most preferred node(s) properties: podAffinityTerm: - description: Required. A pod affinity - term, associated with the corresponding - weight. properties: labelSelector: - description: A label query - over a set of resources, - in this case pods. If it's - null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: key - is the label key - that the selector - applies to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values - is an array of - string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -22129,141 +8235,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an - element of matchExpressions, - whose key field is "key", - the operator is "In", - and the values array - contains only "value". - The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming - pod labels, those key-value - labels are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods - which pods will be taken - into consideration for the - incoming pod's pod (anti) - affinity. Keys that don't - exist in the incoming pod - labels will be ignored. - The default value is empty. - The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, - matchLabelKeys cannot be - set when labelSelector isn't - set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming - pod labels, those key-value - labels are merged with `labelSelector` - as `key notin (value)` to - select the group of existing - pods which pods will be - taken into consideration - for the incoming pod's pod - (anti) affinity. Keys that - don't exist in the incoming - pod labels will be ignored. - The default value is empty. - The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, - mismatchLabelKeys cannot - be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query - over the set of namespaces - that the term applies to. - The term is applied to the - union of the namespaces - selected by this field and - the ones listed in the namespaces - field. null selector and - null or empty namespaces - list means "this pod's namespace". - An empty selector ({}) matches - all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: key - is the label key - that the selector - applies to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values - is an array of - string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -22277,59 +8271,20 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an - element of matchExpressions, - whose key field is "key", - the operator is "In", - and the values array - contains only "value". - The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace - names that the term applies - to. The term is applied - to the union of the namespaces - listed in this field and - the ones selected by namespaceSelector. - null or empty namespaces - list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should - be co-located (affinity) - or not co-located (anti-affinity) - with the pods matching the - labelSelector in the specified - namespaces, where co-located - is defined as running on - a node whose value of the - label with key topologyKey - matches that of any node - on which any of the selected - pods is running. Empty topologyKey - is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated - with matching the corresponding - podAffinityTerm, in the range - 1-100. format: int32 type: integer required: @@ -22339,81 +8294,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the anti-affinity requirements - specified by this field are not met - at scheduling time, the pod will not - be scheduled onto the node. If the - anti-affinity requirements specified - by this field cease to be met at some - point during pod execution (e.g. due - to a pod label update), the system - may or may not try to eventually evict - the pod from its node. When there - are multiple elements, the lists of - nodes corresponding to each podAffinityTerm - are intersected, i.e. all terms must - be satisfied. items: - description: Defines a set of pods - (namely those matching the labelSelector - relative to the given namespace(s)) - that this pod should be co-located - (affinity) or not co-located (anti-affinity) - with, where co-located is defined - as running on a node whose value - of the label with key - matches that of any node on which - a pod of the set of pods is running properties: labelSelector: - description: A label query over - a set of resources, in this - case pods. If it's null, this - PodAffinityTerm matches with - no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to a - set of values. Valid - operators are In, - NotIn, Exists and - DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, the - values array must - be non-empty. If the - operator is Exists - or DoesNotExist, the - values array must - be empty. This array - is replaced during - a strategic merge - patch. items: type: string type: array @@ -22427,129 +8319,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in - the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is - a set of pod label keys to select - which pods will be taken into - consideration. The keys are - used to lookup values from the - incoming pod labels, those key-value - labels are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, matchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label keys to - select which pods will be taken - into consideration. The keys - are used to lookup values from - the incoming pod labels, those - key-value labels are merged - with `labelSelector` as `key - notin (value)` to select the - group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over - the set of namespaces that the - term applies to. The term is - applied to the union of the - namespaces selected by this - field and the ones listed in - the namespaces field. null selector - and null or empty namespaces - list means "this pod's namespace". - An empty selector ({}) matches - all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key and - values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to a - set of values. Valid - operators are In, - NotIn, Exists and - DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, the - values array must - be non-empty. If the - operator is Exists - or DoesNotExist, the - values array must - be empty. This array - is replaced during - a strategic merge - patch. items: type: string type: array @@ -22563,47 +8355,15 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in - the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace names - that the term applies to. The - term is applied to the union - of the namespaces listed in - this field and the ones selected - by namespaceSelector. null or - empty namespaces list and null - namespaceSelector means "this - pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be - co-located (affinity) or not - co-located (anti-affinity) with - the pods matching the labelSelector - in the specified namespaces, - where co-located is defined - as running on a node whose value - of the label with key topologyKey - matches that of any node on - which any of the selected pods - is running. Empty topologyKey - is not allowed. type: string required: - topologyKey @@ -22613,327 +8373,106 @@ spec: type: object type: object automountServiceAccountToken: - description: AutomountServiceAccountToken indicates - whether a service account token should be - automatically mounted. type: boolean enableServiceLinks: - description: 'EnableServiceLinks indicates whether - information about services should be injected - into pod''s environment variables, matching - the syntax of Docker links. Optional: Defaults - to true.' type: boolean imagePullSecrets: - description: 'ImagePullSecrets is an optional - list of references to secrets in the same - namespace to use for pulling any of the images - used by this PodRuntimeSettings. If specified, - these secrets will be passed to individual - puller implementations for them to use. For - example, in the case of docker, only DockerConfig - type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod' items: - description: LocalObjectReference contains - enough information to let you locate the - referenced object inside the same namespace. properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic type: array nodeName: - description: NodeName is a request to schedule - this pod onto a specific node. If it is non-empty, - the scheduler simply schedules this pod onto - that node, assuming that it fits resource - requirements. type: string nodeSelector: additionalProperties: type: string - description: 'NodeSelector is a selector which - must be true for the pod to fit on a node. - Selector which must match a node''s labels - for the pod to be scheduled on that node. - More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/' type: object podAnnotations: additionalProperties: type: string - description: PodAnnotations are the annotations - that will be attached with the respective - Pod type: object podLabels: additionalProperties: type: string - description: PodLabels are the labels that will - be attached with the respective Pod type: object priority: - description: The priority value. Various system - components use this field to find the priority - of the pod. When Priority Admission Controller - is enabled, it prevents users from setting - this field. The admission controller populates - this field from PriorityClassName. The higher - the value, the higher the priority. format: int32 type: integer priorityClassName: - description: If specified, indicates the pod's - priority. "system-node-critical" and "system-cluster-critical" - are two special keywords which indicate the - highest priorities with the former being the - highest priority. Any other name must be defined - by creating a PriorityClass object with that - name. If not specified, the pod priority will - be default or zero if there is no default. type: string readinessGates: - description: 'If specified, all readiness gates - will be evaluated for pod readiness. A pod - is ready when all its containers are ready - AND all conditions specified in the readiness - gates have status equal to "True" More info: - https://git.k8s.io/enhancements/keps/sig-network/0007-pod-ready%2B%2B.md' items: - description: PodReadinessGate contains the - reference to a pod condition properties: conditionType: - description: ConditionType refers to a - condition in the pod's condition list - with matching type. type: string required: - conditionType type: object type: array runtimeClassName: - description: 'RuntimeClassName refers to a RuntimeClass - object in the node.k8s.io group, which should - be used to run this pod. If no RuntimeClass - resource matches the named class, the pod - will not be run. If unset or empty, the "legacy" - RuntimeClass will be used, which is an implicit - class with an empty definition that uses the - default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md - This is an alpha feature and may change in - the future.' type: string schedulerName: - description: If specified, the pod will be dispatched - by specified scheduler. If not specified, - the pod will be dispatched by default scheduler. type: string securityContext: - description: 'Security options the pod should - run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: appArmorProfile: - description: appArmorProfile is the AppArmor - options to use by the containers in this - pod. Note that this field cannot be set - when spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile loaded on the node that - should be used. The profile must be - preconfigured on the node to work. - Must match the loaded name of the - profile. Must be set if and only if - type is "Localhost". type: string type: - description: 'type indicates which kind - of AppArmor profile will be applied. - Valid options are: Localhost - a profile - pre-loaded on the node. RuntimeDefault - - the container runtime''s default - profile. Unconfined - no AppArmor - enforcement.' type: string required: - type type: object fsGroup: - description: "A special supplemental group - that applies to all containers in a pod. - Some volume types allow the Kubelet to - change the ownership of that volume to - be owned by the pod: \n 1. The owning - GID will be the FSGroup 2. The setgid - bit is set (new files created in the volume - will be owned by FSGroup) 3. The permission - bits are OR'd with rw-rw---- \n If unset, - the Kubelet will not modify the ownership - and permissions of any volume. Note that - this field cannot be set when spec.os.name - is windows." format: int64 type: integer fsGroupChangePolicy: - description: 'fsGroupChangePolicy defines - behavior of changing ownership and permission - of the volume before being exposed inside - Pod. This field will only apply to volume - types which support fsGroup based ownership(and - permissions). It will have no effect on - ephemeral volume types such as: secret, - configmaps and emptydir. Valid values - are "OnRootMismatch" and "Always". If - not specified, "Always" is used. Note - that this field cannot be set when spec.os.name - is windows.' type: string runAsGroup: - description: The GID to run the entrypoint - of the container process. Uses runtime - default if unset. May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence for that container. Note - that this field cannot be set when spec.os.name - is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container - must run as a non-root user. If true, - the Kubelet will validate the image at - runtime to ensure that it does not run - as UID 0 (root) and fail to start the - container if it does. If unset or false, - no such validation will be performed. - May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: boolean runAsUser: - description: The UID to run the entrypoint - of the container process. Defaults to - user specified in image metadata if unspecified. - May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence for that container. Note - that this field cannot be set when spec.os.name - is windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be applied - to all containers. If unspecified, the - container runtime will allocate a random - SELinux context for each container. May - also be set in SecurityContext. If set - in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence for that container. Note - that this field cannot be set when spec.os.name - is windows. properties: level: - description: Level is SELinux level - label that applies to the container. type: string role: - description: Role is a SELinux role - label that applies to the container. type: string type: - description: Type is a SELinux type - label that applies to the container. type: string user: - description: User is a SELinux user - label that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to use - by the containers in this pod. Note that - this field cannot be set when spec.os.name - is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile defined in a file on the - node should be used. The profile must - be preconfigured on the node to work. - Must be a descending path, relative - to the kubelet's configured seccomp - profile location. Must be set if type - is "Localhost". Must NOT be set for - any other type. type: string type: - description: "type indicates which kind - of seccomp profile will be applied. - Valid options are: \n Localhost - - a profile defined in a file on the - node should be used. RuntimeDefault - - the container runtime default profile - should be used. Unconfined - no profile - should be applied." type: string required: - type type: object supplementalGroups: - description: A list of groups applied to - the first process run in each container, - in addition to the container's primary - GID, the fsGroup (if specified), and group - memberships defined in the container image - for the uid of the container process. - If unspecified, no additional groups are - added to any container. Note that group - memberships defined in the container image - for the uid of the container process are - still effective, even if they are not - included in this list. Note that this - field cannot be set when spec.os.name - is windows. items: format: int64 type: integer type: array x-kubernetes-list-type: atomic sysctls: - description: Sysctls hold a list of namespaced - sysctls used for the pod. Pods with unsupported - sysctls (by the container runtime) might - fail to launch. Note that this field cannot - be set when spec.os.name is windows. items: - description: Sysctl defines a kernel parameter - to be set properties: name: - description: Name of a property to - set type: string value: - description: Value of a property to - set type: string required: - name @@ -22942,164 +8481,52 @@ spec: type: array x-kubernetes-list-type: atomic windowsOptions: - description: The Windows specific settings - applied to all containers. If unspecified, - the options within a container's SecurityContext - will be used. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. Note - that this field cannot be set when spec.os.name - is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is where - the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA credential - spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName - is the name of the GMSA credential - spec to use. type: string hostProcess: - description: HostProcess determines - if a container should be run as a - 'Host Process' container. All of a - Pod's containers must have the same - effective HostProcess value (it is - not allowed to have a mix of HostProcess - containers and non-HostProcess containers). - In addition, if HostProcess is true - then HostNetwork must also be set - to true. type: boolean runAsUserName: - description: The UserName in Windows - to run the entrypoint of the container - process. Defaults to the user specified - in image metadata if unspecified. - May also be set in PodSecurityContext. - If set in both SecurityContext and - PodSecurityContext, the value specified - in SecurityContext takes precedence. type: string type: object type: object serviceAccountAnnotations: additionalProperties: type: string - description: ServiceAccountAnnotations are the - annotations that will be attached with the - respective ServiceAccount type: object serviceAccountName: - description: 'ServiceAccountName is the name - of the ServiceAccount to use to run this pod. - More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/' type: string tolerations: - description: If specified, the pod's tolerations. items: - description: The pod this Toleration is attached - to tolerates any taint that matches the - triple using the matching - operator . properties: effect: - description: Effect indicates the taint - effect to match. Empty means match all - taint effects. When specified, allowed - values are NoSchedule, PreferNoSchedule - and NoExecute. type: string key: - description: Key is the taint key that - the toleration applies to. Empty means - match all taint keys. If the key is - empty, operator must be Exists; this - combination means to match all values - and all keys. type: string operator: - description: Operator represents a key's - relationship to the value. Valid operators - are Exists and Equal. Defaults to Equal. - Exists is equivalent to wildcard for - value, so that a pod can tolerate all - taints of a particular category. type: string tolerationSeconds: - description: TolerationSeconds represents - the period of time the toleration (which - must be of effect NoExecute, otherwise - this field is ignored) tolerates the - taint. By default, it is not set, which - means tolerate the taint forever (do - not evict). Zero and negative values - will be treated as 0 (evict immediately) - by the system. format: int64 type: integer value: - description: Value is the taint value - the toleration matches to. If the operator - is Exists, the value should be empty, - otherwise just a regular string. type: string type: object type: array topologySpreadConstraints: - description: TopologySpreadConstraints describes - how a group of pods ought to spread across - topology domains. Scheduler will schedule - pods in a way which abides by the constraints. - All topologySpreadConstraints are ANDed. items: - description: TopologySpreadConstraint specifies - how to spread matching pods among the given - topology. properties: labelSelector: - description: LabelSelector is used to - find matching pods. Pods that match - this label selector are counted to determine - the number of pods in their corresponding - topology domain. properties: matchExpressions: - description: matchExpressions is a - list of label selector requirements. - The requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to a - set of values. Valid operators - are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an array - of string values. If the operator - is In or NotIn, the values - array must be non-empty. If - the operator is Exists or - DoesNotExist, the values array - must be empty. This array - is replaced during a strategic - merge patch. items: type: string type: array @@ -23113,176 +8540,27 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map - of {key,value} pairs. A single {key,value} - in the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: "MatchLabelKeys is a set - of pod label keys to select the pods - over which spreading will be calculated. - The keys are used to lookup values from - the incoming pod labels, those key-value - labels are ANDed with labelSelector - to select the group of existing pods - over which spreading will be calculated - for the incoming pod. The same key is - forbidden to exist in both MatchLabelKeys - and LabelSelector. MatchLabelKeys cannot - be set when LabelSelector isn't set. - Keys that don't exist in the incoming - pod labels will be ignored. A null or - empty list means only match against - labelSelector. \n This is a beta field - and requires the MatchLabelKeysInPodTopologySpread - feature gate to be enabled (enabled - by default)." items: type: string type: array x-kubernetes-list-type: atomic maxSkew: - description: 'MaxSkew describes the degree - to which pods may be unevenly distributed. - When `whenUnsatisfiable=DoNotSchedule`, - it is the maximum permitted difference - between the number of matching pods - in the target topology and the global - minimum. The global minimum is the minimum - number of matching pods in an eligible - domain or zero if the number of eligible - domains is less than MinDomains. For - example, in a 3-zone cluster, MaxSkew - is set to 1, and pods with the same - labelSelector spread as 2/2/1: In this - case, the global minimum is 1. | zone1 - | zone2 | zone3 | | P P | P P | P | - - if MaxSkew is 1, incoming pod can - only be scheduled to zone3 to become - 2/2/2; scheduling it onto zone1(zone2) - would make the ActualSkew(3-1) on zone1(zone2) - violate MaxSkew(1). - if MaxSkew is - 2, incoming pod can be scheduled onto - any zone. When `whenUnsatisfiable=ScheduleAnyway`, - it is used to give higher precedence - to topologies that satisfy it. It''s - a required field. Default value is 1 - and 0 is not allowed.' format: int32 type: integer minDomains: - description: "MinDomains indicates a minimum - number of eligible domains. When the - number of eligible domains with matching - topology keys is less than minDomains, - Pod Topology Spread treats \"global - minimum\" as 0, and then the calculation - of Skew is performed. And when the number - of eligible domains with matching topology - keys equals or greater than minDomains, - this value has no effect on scheduling. - As a result, when the number of eligible - domains is less than minDomains, scheduler - won't schedule more than maxSkew Pods - to those domains. If value is nil, the - constraint behaves as if MinDomains - is equal to 1. Valid values are integers - greater than 0. When value is not nil, - WhenUnsatisfiable must be DoNotSchedule. - \n For example, in a 3-zone cluster, - MaxSkew is set to 2, MinDomains is set - to 5 and pods with the same labelSelector - spread as 2/2/2: | zone1 | zone2 | zone3 - | | P P | P P | P P | The number - of domains is less than 5(MinDomains), - so \"global minimum\" is treated as - 0. In this situation, new pod with the - same labelSelector cannot be scheduled, - because computed skew will be 3(3 - - 0) if new Pod is scheduled to any of - the three zones, it will violate MaxSkew." format: int32 type: integer nodeAffinityPolicy: - description: "NodeAffinityPolicy indicates - how we will treat Pod's nodeAffinity/nodeSelector - when calculating pod topology spread - skew. Options are: - Honor: only nodes - matching nodeAffinity/nodeSelector are - included in the calculations. - Ignore: - nodeAffinity/nodeSelector are ignored. - All nodes are included in the calculations. - \n If this value is nil, the behavior - is equivalent to the Honor policy. This - is a beta-level feature default enabled - by the NodeInclusionPolicyInPodTopologySpread - feature flag." type: string nodeTaintsPolicy: - description: "NodeTaintsPolicy indicates - how we will treat node taints when calculating - pod topology spread skew. Options are: - - Honor: nodes without taints, along - with tainted nodes for which the incoming - pod has a toleration, are included. - - Ignore: node taints are ignored. All - nodes are included. \n If this value - is nil, the behavior is equivalent to - the Ignore policy. This is a beta-level - feature default enabled by the NodeInclusionPolicyInPodTopologySpread - feature flag." type: string topologyKey: - description: TopologyKey is the key of - node labels. Nodes that have a label - with this key and identical values are - considered to be in the same topology. - We consider each as a "bucket", - and try to put balanced number of pods - into each bucket. We define a domain - as a particular instance of a topology. - Also, we define an eligible domain as - a domain whose nodes meet the requirements - of nodeAffinityPolicy and nodeTaintsPolicy. - e.g. If TopologyKey is "kubernetes.io/hostname", - each Node is a domain of that topology. - And, if TopologyKey is "topology.kubernetes.io/zone", - each zone is a domain of that topology. - It's a required field. type: string whenUnsatisfiable: - description: 'WhenUnsatisfiable indicates - how to deal with a pod if it doesn''t - satisfy the spread constraint. - DoNotSchedule - (default) tells the scheduler not to - schedule it. - ScheduleAnyway tells - the scheduler to schedule the pod in - any location, but giving higher precedence - to topologies that would help reduce - the skew. A constraint is considered - "Unsatisfiable" for an incoming pod - if and only if every possible node assignment - for that pod would violate "MaxSkew" - on some topology. For example, in a - 3-zone cluster, MaxSkew is set to 1, - and pods with the same labelSelector - spread as 3/1/1: | zone1 | zone2 | zone3 - | | P P P | P | P | If WhenUnsatisfiable - is set to DoNotSchedule, incoming pod - can only be scheduled to zone2(zone3) - to become 3/2/1(3/1/2) as ActualSkew(2-1) - on zone2(zone3) satisfies MaxSkew(1). - In other words, the cluster can still - be imbalanced, but scheduler won''t - make it *more* imbalanced. It''s a required - field.' type: string required: - maxSkew @@ -23297,141 +8575,63 @@ spec: type: object type: object timeout: - description: Timeout specifies a duration in seconds - that KubeStash should wait for the hook execution - to be completed. If the hook execution does not finish - within this time period, KubeStash will consider this - hook execution as failure. Then, it will be re-tried - according to MaxRetry policy. type: string variables: - description: Variables specifies a list of variables - and their sources that will be used to resolve the - HookTemplate. items: - description: EnvVar represents an environment variable - present in a Container. properties: name: - description: Name of the environment variable. - Must be a C_IDENTIFIER. type: string value: - description: 'Variable references $(VAR_NAME) - are expanded using the previously defined environment - variables in the container and any service environment - variables. If a variable cannot be resolved, - the reference in the input string will be unchanged. - Double $$ are reduced to a single $, which allows - for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" - will produce the string literal "$(VAR_NAME)". - Escaped references will never be expanded, regardless - of whether the variable exists or not. Defaults - to "".' type: string valueFrom: - description: Source for the environment variable's - value. Cannot be used if value is not empty. properties: configMapKeyRef: - description: Selects a key of a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap - or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field of the pod: - supports metadata.name, metadata.namespace, - `metadata.labels['''']`, `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, - status.hostIP, status.podIP, status.podIPs.' properties: apiVersion: - description: Version of the schema the - FieldPath is written in terms of, defaults - to "v1". type: string fieldPath: - description: Path of the field to select - in the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource of the container: - only resources limits and requests (limits.cpu, - limits.memory, limits.ephemeral-storage, - requests.cpu, requests.memory and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: required - for volumes, optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output format - of the exposed resources, defaults to - "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource to select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret in - the pod's namespace properties: key: - description: The key of the secret to - select from. Must be a valid secret - key. type: string name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret - or its key must be defined type: boolean required: - key @@ -23443,68 +8643,21 @@ spec: type: object type: array volumeMounts: - description: VolumeMounts specifies the mount for the - volumes specified in `Volumes` section Use this field - only for `Function` type hook executor. items: - description: VolumeMount describes a mounting of a - Volume within a container. properties: mountPath: - description: Path within the container at which - the volume should be mounted. Must not contain - ':'. type: string mountPropagation: - description: mountPropagation determines how mounts - are propagated from the host to container and - the other way around. When not set, MountPropagationNone - is used. This field is beta in 1.10. When RecursiveReadOnly - is set to IfPossible or to Enabled, MountPropagation - must be None or unspecified (which defaults - to None). type: string name: - description: This must match the Name of a Volume. type: string readOnly: - description: Mounted read-only if true, read-write - otherwise (false or unspecified). Defaults to - false. type: boolean recursiveReadOnly: - description: "RecursiveReadOnly specifies whether - read-only mounts should be handled recursively. - \n If ReadOnly is false, this field has no meaning - and must be unspecified. \n If ReadOnly is true, - and this field is set to Disabled, the mount - is not made recursively read-only. If this - field is set to IfPossible, the mount is made - recursively read-only, if it is supported by - the container runtime. If this field is set - to Enabled, the mount is made recursively read-only - if it is supported by the container runtime, - otherwise the pod will not be started and an - error will be generated to indicate the reason. - \n If this field is set to IfPossible or Enabled, - MountPropagation must be set to None (or be - unspecified, which defaults to None). \n If - this field is not specified, it is treated as - an equivalent of Disabled." type: string subPath: - description: Path within the volume from which - the container's volume should be mounted. Defaults - to "" (volume's root). type: string subPathExpr: - description: Expanded path within the volume from - which the container's volume should be mounted. - Behaves similarly to SubPath but environment - variable references $(VAR_NAME) are expanded - using the container's environment. Defaults - to "" (volume's root). SubPathExpr and SubPath - are mutually exclusive. type: string required: - mountPath @@ -23512,279 +8665,109 @@ spec: type: object type: array volumes: - description: Volumes indicates the list of volumes of - targeted application that should be mounted on the - hook executor. Use this field only for `Function` - type hook executor. items: - description: Volume represents a named volume in a - pod that may be accessed by any container in the - pod. properties: awsElasticBlockStore: - description: 'awsElasticBlockStore represents - an AWS Disk resource that is attached to a kubelet''s - host machine and then exposed to the pod. More - info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' properties: fsType: - description: 'fsType is the filesystem type - of the volume that you want to mount. Tip: - Ensure that the filesystem type is supported - by the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly inferred - to be "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string partition: - description: 'partition is the partition in - the volume that you want to mount. If omitted, - the default is to mount by volume name. - Examples: For volume /dev/sda1, you specify - the partition as "1". Similarly, the volume - partition for /dev/sda is "0" (or you can - leave the property empty).' format: int32 type: integer readOnly: - description: 'readOnly value true will force - the readOnly setting in VolumeMounts. More - info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: boolean volumeID: - description: 'volumeID is unique ID of the - persistent disk resource in AWS (Amazon - EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: string required: - volumeID type: object azureDisk: - description: azureDisk represents an Azure Data - Disk mount on the host and bind mount to the - pod. properties: cachingMode: - description: 'cachingMode is the Host Caching - mode: None, Read Only, Read Write.' type: string diskName: - description: diskName is the Name of the data - disk in the blob storage type: string diskURI: - description: diskURI is the URI of data disk - in the blob storage type: string fsType: - description: fsType is Filesystem type to - mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Implicitly inferred to be - "ext4" if unspecified. type: string kind: - description: 'kind expected values are Shared: - multiple blob disks per storage account Dedicated: - single blob disk per storage account Managed: - azure managed data disk (only in managed - availability set). defaults to shared' type: string readOnly: - description: readOnly Defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean required: - diskName - diskURI type: object azureFile: - description: azureFile represents an Azure File - Service mount on the host and bind mount to - the pod. properties: readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean secretName: - description: secretName is the name of secret - that contains Azure Storage Account Name - and Key type: string shareName: - description: shareName is the azure share - Name type: string required: - secretName - shareName type: object cephfs: - description: cephFS represents a Ceph FS mount - on the host that shares a pod's lifetime properties: monitors: - description: 'monitors is Required: Monitors - is a collection of Ceph monitors More info: - https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic path: - description: 'path is Optional: Used as the - mounted root, rather than the full Ceph - tree, default is /' type: string readOnly: - description: 'readOnly is Optional: Defaults - to false (read/write). ReadOnly here will - force the ReadOnly setting in VolumeMounts. - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: boolean secretFile: - description: 'secretFile is Optional: SecretFile - is the path to key ring for User, default - is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string secretRef: - description: 'secretRef is Optional: SecretRef - is reference to the authentication secret - for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is optional: User is the - rados user name, default is admin More info: - https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string required: - monitors type: object cinder: - description: 'cinder represents a cinder volume - attached and mounted on kubelets host machine. - More info: https://examples.k8s.io/mysql-cinder-pd/README.md' properties: fsType: - description: 'fsType is the filesystem type - to mount. Must be a filesystem type supported - by the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly inferred - to be "ext4" if unspecified. More info: - https://examples.k8s.io/mysql-cinder-pd/README.md' type: string readOnly: - description: 'readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: boolean secretRef: - description: 'secretRef is optional: points - to a secret object containing parameters - used to connect to OpenStack.' properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeID: - description: 'volumeID used to identify the - volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string required: - volumeID type: object configMap: - description: configMap represents a configMap - that should populate this volume properties: defaultMode: - description: 'defaultMode is optional: mode - bits used to set permissions on created - files by default. Must be an octal value - between 0000 and 0777 or a decimal value - between 0 and 511. YAML accepts both octal - and decimal values, JSON requires decimal - values for mode bits. Defaults to 0644. - Directories within the path are not affected - by this setting. This might be in conflict - with other options that affect the file - mode, like fsGroup, and the result can be - other mode bits set.' format: int32 type: integer items: - description: items if unspecified, each key-value - pair in the Data field of the referenced - ConfigMap will be projected into the volume - as a file whose name is the key and content - is the value. If specified, the listed keys - will be projected into the specified paths, - and unlisted keys will not be present. If - a key is specified which is not present - in the ConfigMap, the volume setup will - error unless it is marked optional. Paths - must be relative and may not contain the - '..' path or start with '..'. items: - description: Maps a string key to a path - within a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: mode - bits used to set permissions on this - file. Must be an octal value between - 0000 and 0777 or a decimal value between - 0 and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. If not - specified, the volume defaultMode - will be used. This might be in conflict - with other options that affect the - file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative path - of the file to map the key to. May - not be an absolute path. May not contain - the path element '..'. May not start - with the string '..'. type: string required: - key @@ -23794,174 +8777,67 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other - useful fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether the - ConfigMap or its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic csi: - description: csi (Container Storage Interface) - represents ephemeral storage that is handled - by certain external CSI drivers (Beta feature). properties: driver: - description: driver is the name of the CSI - driver that handles this volume. Consult - with your admin for the correct name as - registered in the cluster. type: string fsType: - description: fsType to mount. Ex. "ext4", - "xfs", "ntfs". If not provided, the empty - value is passed to the associated CSI driver - which will determine the default filesystem - to apply. type: string nodePublishSecretRef: - description: nodePublishSecretRef is a reference - to the secret object containing sensitive - information to pass to the CSI driver to - complete the CSI NodePublishVolume and NodeUnpublishVolume - calls. This field is optional, and may - be empty if no secret is required. If the - secret object contains more than one secret, - all secret references are passed. properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic readOnly: - description: readOnly specifies a read-only - configuration for the volume. Defaults to - false (read/write). type: boolean volumeAttributes: additionalProperties: type: string - description: volumeAttributes stores driver-specific - properties that are passed to the CSI driver. - Consult your driver's documentation for - supported values. type: object required: - driver type: object downwardAPI: - description: downwardAPI represents downward API - about the pod that should populate this volume properties: defaultMode: - description: 'Optional: mode bits to use on - created files by default. Must be a Optional: - mode bits used to set permissions on created - files by default. Must be an octal value - between 0000 and 0777 or a decimal value - between 0 and 511. YAML accepts both octal - and decimal values, JSON requires decimal - values for mode bits. Defaults to 0644. - Directories within the path are not affected - by this setting. This might be in conflict - with other options that affect the file - mode, like fsGroup, and the result can be - other mode bits set.' format: int32 type: integer items: - description: Items is a list of downward API - volume file items: - description: DownwardAPIVolumeFile represents - information to create the file containing - the pod field properties: fieldRef: - description: 'Required: Selects a field - of the pod: only annotations, labels, - name, namespace and uid are supported.' properties: apiVersion: - description: Version of the schema - the FieldPath is written in terms - of, defaults to "v1". type: string fieldPath: - description: Path of the field to - select in the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode bits used - to set permissions on this file, must - be an octal value between 0000 and - 0777 or a decimal value between 0 - and 511. YAML accepts both octal and - decimal values, JSON requires decimal - values for mode bits. If not specified, - the volume defaultMode will be used. - This might be in conflict with other - options that affect the file mode, - like fsGroup, and the result can be - other mode bits set.' format: int32 type: integer path: - description: 'Required: Path is the - relative path name of the file to - be created. Must not be absolute or - contain the ''..'' path. Must be utf-8 - encoded. The first item of the relative - path must not start with ''..''' type: string resourceFieldRef: - description: 'Selects a resource of - the container: only resources limits - and requests (limits.cpu, limits.memory, - requests.cpu and requests.memory) - are currently supported.' properties: containerName: - description: 'Container name: required - for volumes, optional for env - vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource - to select' type: string required: - resource @@ -23974,220 +8850,50 @@ spec: x-kubernetes-list-type: atomic type: object emptyDir: - description: 'emptyDir represents a temporary - directory that shares a pod''s lifetime. More - info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' properties: medium: - description: 'medium represents what type - of storage medium should back this directory. - The default is "" which means to use the - node''s default medium. Must be an empty - string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' type: string sizeLimit: anyOf: - type: integer - type: string - description: 'sizeLimit is the total amount - of local storage required for this EmptyDir - volume. The size limit is also applicable - for memory medium. The maximum usage on - memory medium EmptyDir would be the minimum - value between the SizeLimit specified here - and the sum of memory limits of all containers - in a pod. The default is nil which means - that the limit is undefined. More info: - https://kubernetes.io/docs/concepts/storage/volumes#emptydir' pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object ephemeral: - description: "ephemeral represents a volume that - is handled by a cluster storage driver. The - volume's lifecycle is tied to the pod that defines - it - it will be created before the pod starts, - and deleted when the pod is removed. \n Use - this if: a) the volume is only needed while - the pod runs, b) features of normal volumes - like restoring from snapshot or capacity tracking - are needed, c) the storage driver is specified - through a storage class, and d) the storage - driver supports dynamic volume provisioning - through a PersistentVolumeClaim (see EphemeralVolumeSource - for more information on the connection between - this volume type and PersistentVolumeClaim). - \n Use PersistentVolumeClaim or one of the vendor-specific - APIs for volumes that persist for longer than - the lifecycle of an individual pod. \n Use CSI - for light-weight local ephemeral volumes if - the CSI driver is meant to be used that way - - see the documentation of the driver for more - information. \n A pod can use both types of - ephemeral volumes and persistent volumes at - the same time." properties: volumeClaimTemplate: - description: "Will be used to create a stand-alone - PVC to provision the volume. The pod in - which this EphemeralVolumeSource is embedded - will be the owner of the PVC, i.e. the PVC - will be deleted together with the pod. The - name of the PVC will be `-` where `` is the name - from the `PodSpec.Volumes` array entry. - Pod validation will reject the pod if the - concatenated name is not valid for a PVC - (for example, too long). \n An existing - PVC with that name that is not owned by - the pod will *not* be used for the pod to - avoid using an unrelated volume by mistake. - Starting the pod is then blocked until the - unrelated PVC is removed. If such a pre-created - PVC is meant to be used by the pod, the - PVC has to updated with an owner reference - to the pod once the pod exists. Normally - this should not be necessary, but it may - be useful when manually reconstructing a - broken cluster. \n This field is read-only - and no changes will be made by Kubernetes - to the PVC after it has been created. \n - Required, must not be nil." properties: metadata: - description: May contain labels and annotations - that will be copied into the PVC when - creating it. No other fields are allowed - and will be rejected during validation. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured - key value map stored with a resource - that may be set by external tools - to store and retrieve arbitrary - metadata. They are not queryable - and should be preserved when modifying - objects. More info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName is an optional - prefix, used by the server, to generate - a unique name ONLY IF the Name field - has not been provided. If this field - is used, the name returned to the - client will be different than the - name passed. This value will also - be combined with a unique suffix. - The provided value has the same - validation rules as the Name field, - and may be truncated by the length - of the suffix required to make the - value unique on the server. \n If - this field is specified and the - generated name exists, the server - will NOT return a 409 - instead, - it will either return 201 Created - or 500 with Reason ServerTimeout - indicating a unique name could not - be found in the time allotted, and - the client should retry (optionally - after the time indicated in the - Retry-After header). \n Applied - only if Name is not specified. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string keys and - values that can be used to organize - and categorize (scope and select) - objects. May match selectors of - replication controllers and services. - More info: http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must be unique - within a namespace. Is required - when creating resources, although - some resources may allow a client - to request the generation of an - appropriate name automatically. - Name is primarily intended for creation - idempotence and configuration definition. - Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace defines the - space within each name must be unique. - An empty namespace is equivalent - to the \"default\" namespace, but - \"default\" is the canonical representation. - Not all objects are required to - be scoped to a namespace - the value - of this field for those objects - will be empty. \n Must be a DNS_LABEL. - Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects depended - by this object. If ALL objects in - the list have been deleted, this - object will be garbage collected. - If this object is managed by a controller, - then an entry in this list will - point to this controller, with the - controller field set to true. There - cannot be more than one managing - controller. items: - description: OwnerReference contains - enough information to let you - identify an owning object. An - owning object must be in the same - namespace as the dependent, or - be cluster-scoped, so there is - no namespace field. properties: apiVersion: - description: API version of - the referent. type: string blockOwnerDeletion: - description: If true, AND if - the owner has the "foregroundDeletion" - finalizer, then the owner - cannot be deleted from the - key-value store until this - reference is removed. See - https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage collector - interacts with this field - and enforces the foreground - deletion. Defaults to false. - To set this field, a user - needs "delete" permission - of the owner, otherwise 422 - (Unprocessable Entity) will - be returned. type: boolean controller: - description: If true, this reference - points to the managing controller. type: boolean kind: - description: 'Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -24199,56 +8905,19 @@ spec: type: array type: object spec: - description: The specification for the - PersistentVolumeClaim. The entire content - is copied unchanged into the PVC that - gets created from this template. The - same fields as in a PersistentVolumeClaim - are also valid here. properties: accessModes: - description: 'accessModes contains - the desired access modes the volume - should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource field can - be used to specify either: * An - existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an external - controller can support the specified - data source, it will create a new - volume based on the contents of - the specified data source. When - the AnyVolumeDataSource feature - gate is enabled, dataSource contents - will be copied to dataSourceRef, - and dataSourceRef contents will - be copied to dataSource when dataSourceRef.namespace - is not specified. If the namespace - is specified, then dataSourceRef - will not be copied to dataSource.' properties: apiGroup: - description: APIGroup is the group - for the resource being referenced. - If APIGroup is not specified, - the specified Kind must be in - the core API group. For any - other third-party types, APIGroup - is required. type: string kind: - description: Kind is the type - of resource being referenced type: string name: - description: Name is the name - of resource being referenced type: string required: - kind @@ -24256,93 +8925,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef specifies - the object from which to populate - the volume with data, if a non-empty - volume is desired. This may be any - object from a non-empty API group - (non core object) or a PersistentVolumeClaim - object. When this field is specified, - volume binding will only succeed - if the type of the specified object - matches some installed volume populator - or dynamic provisioner. This field - will replace the functionality of - the dataSource field and as such - if both fields are non-empty, they - must have the same value. For backwards - compatibility, when namespace isn''t - specified in dataSourceRef, both - fields (dataSource and dataSourceRef) - will be set to the same value automatically - if one of them is empty and the - other is non-empty. When namespace - is specified in dataSourceRef, dataSource - isn''t set to the same value and - must be empty. There are three important - differences between dataSource and - dataSourceRef: * While dataSource - only allows two specific types of - objects, dataSourceRef allows any - non-core object, as well as PersistentVolumeClaim - objects. * While dataSource ignores - disallowed values (dropping them), - dataSourceRef preserves all values, - and generates an error if a disallowed - value is specified. * While dataSource - only allows local objects, dataSourceRef - allows objects in any namespaces. - (Beta) Using this field requires - the AnyVolumeDataSource feature - gate to be enabled. (Alpha) Using - the namespace field of dataSourceRef - requires the CrossNamespaceVolumeDataSource - feature gate to be enabled.' properties: apiGroup: - description: APIGroup is the group - for the resource being referenced. - If APIGroup is not specified, - the specified Kind must be in - the core API group. For any - other third-party types, APIGroup - is required. type: string kind: - description: Kind is the type - of resource being referenced type: string name: - description: Name is the name - of resource being referenced type: string namespace: - description: Namespace is the - namespace of resource being - referenced Note that when a - namespace is specified, a gateway.networking.k8s.io/ReferenceGrant - object is required in the referent - namespace to allow that namespace's - owner to accept the reference. - See the ReferenceGrant documentation - for details. (Alpha) This field - requires the CrossNamespaceVolumeDataSource - feature gate to be enabled. type: string required: - kind - name type: object resources: - description: 'resources represents - the minimum resources the volume - should have. If RecoverVolumeExpansionFailure - feature is enabled users are allowed - to specify resource requirements - that are lower than previous value - but must still be higher than capacity - recorded in the status field of - the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -24351,10 +8947,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes - the maximum amount of compute - resources allowed. More info: - https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -24363,56 +8955,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes - the minimum amount of compute - resources required. If Requests - is omitted for a container, - it defaults to Limits if that - is explicitly specified, otherwise - to an implementation-defined - value. Requests cannot exceed - Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is a label query - over volumes to consider for binding. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a key, - and an operator that relates - the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator represents - a key's relationship to - a set of values. Valid - operators are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values is an - array of string values. - If the operator is In - or NotIn, the values array - must be non-empty. If - the operator is Exists - or DoesNotExist, the values - array must be empty. This - array is replaced during - a strategic merge patch. items: type: string type: array @@ -24426,61 +8980,16 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a - map of {key,value} pairs. A - single {key,value} in the matchLabels - map is equivalent to an element - of matchExpressions, whose key - field is "key", the operator - is "In", and the values array - contains only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName is - the name of the StorageClass required - by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName - may be used to set the VolumeAttributesClass - used by this claim. If specified, - the CSI driver will create or update - the volume with the attributes defined - in the corresponding VolumeAttributesClass. - This has a different purpose than - storageClassName, it can be changed - after the claim is created. An empty - string value means that no VolumeAttributesClass - will be applied to the claim but - it''s not allowed to reset this - field to empty string once it is - set. If unspecified and the PersistentVolumeClaim - is unbound, the default VolumeAttributesClass - will be set by the persistentvolume - controller if it exists. If the - resource referred to by volumeAttributesClass - does not exist, this PersistentVolumeClaim - will be set to a Pending state, - as reflected by the modifyVolumeStatus - field, until such as a resource - exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires - the VolumeAttributesClass feature - gate to be enabled.' type: string volumeMode: - description: volumeMode defines what - type of volume is required by the - claim. Value of Filesystem is implied - when not included in claim spec. type: string volumeName: - description: volumeName is the binding - reference to the PersistentVolume - backing this claim. type: string type: object required: @@ -24488,94 +8997,41 @@ spec: type: object type: object fc: - description: fc represents a Fibre Channel resource - that is attached to a kubelet's host machine - and then exposed to the pod. properties: fsType: - description: 'fsType is the filesystem type - to mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Implicitly inferred to be - "ext4" if unspecified. TODO: how do we prevent - errors in the filesystem from compromising - the machine' type: string lun: - description: 'lun is Optional: FC target lun - number' format: int32 type: integer readOnly: - description: 'readOnly is Optional: Defaults - to false (read/write). ReadOnly here will - force the ReadOnly setting in VolumeMounts.' type: boolean targetWWNs: - description: 'targetWWNs is Optional: FC target - worldwide names (WWNs)' items: type: string type: array x-kubernetes-list-type: atomic wwids: - description: 'wwids Optional: FC volume world - wide identifiers (wwids) Either wwids or - combination of targetWWNs and lun must be - set, but not both simultaneously.' items: type: string type: array x-kubernetes-list-type: atomic type: object flexVolume: - description: flexVolume represents a generic volume - resource that is provisioned/attached using - an exec based plugin. properties: driver: - description: driver is the name of the driver - to use for this volume. type: string fsType: - description: fsType is the filesystem type - to mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". The default filesystem depends - on FlexVolume script. type: string options: additionalProperties: type: string - description: 'options is Optional: this field - holds extra command options if any.' type: object readOnly: - description: 'readOnly is Optional: defaults - to false (read/write). ReadOnly here will - force the ReadOnly setting in VolumeMounts.' type: boolean secretRef: - description: 'secretRef is Optional: secretRef - is reference to the secret object containing - sensitive information to pass to the plugin - scripts. This may be empty if no secret - object is specified. If the secret object - contains more than one secret, all secrets - are passed to the plugin scripts.' properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic @@ -24583,192 +9039,79 @@ spec: - driver type: object flocker: - description: flocker represents a Flocker volume - attached to a kubelet's host machine. This depends - on the Flocker control service being running properties: datasetName: - description: datasetName is Name of the dataset - stored as metadata -> name on the dataset - for Flocker should be considered as deprecated type: string datasetUUID: - description: datasetUUID is the UUID of the - dataset. This is unique identifier of a - Flocker dataset type: string type: object gcePersistentDisk: - description: 'gcePersistentDisk represents a GCE - Disk resource that is attached to a kubelet''s - host machine and then exposed to the pod. More - info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' properties: fsType: - description: 'fsType is filesystem type of - the volume that you want to mount. Tip: - Ensure that the filesystem type is supported - by the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly inferred - to be "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string partition: - description: 'partition is the partition in - the volume that you want to mount. If omitted, - the default is to mount by volume name. - Examples: For volume /dev/sda1, you specify - the partition as "1". Similarly, the volume - partition for /dev/sda is "0" (or you can - leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' format: int32 type: integer pdName: - description: 'pdName is unique name of the - PD resource in GCE. Used to identify the - disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: string readOnly: - description: 'readOnly here will force the - ReadOnly setting in VolumeMounts. Defaults - to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: boolean required: - pdName type: object glusterfs: - description: 'glusterfs represents a Glusterfs - mount on the host that shares a pod''s lifetime. - More info: https://examples.k8s.io/volumes/glusterfs/README.md' properties: endpoints: - description: 'endpoints is the endpoint name - that details Glusterfs topology. More info: - https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string path: - description: 'path is the Glusterfs volume - path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string readOnly: - description: 'readOnly here will force the - Glusterfs volume to be mounted with read-only - permissions. Defaults to false. More info: - https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: boolean required: - endpoints - path type: object hostPath: - description: 'hostPath represents a pre-existing - file or directory on the host machine that is - directly exposed to the container. This is generally - used for system agents or other privileged things - that are allowed to see the host machine. Most - containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- TODO(jonesdl) We need to restrict who can - use host directory mounts and who can/can not - mount host directories as read/write.' properties: path: - description: 'path of the directory on the - host. If the path is a symlink, it will - follow the link to the real path. More info: - https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string type: - description: 'type for HostPath Volume Defaults - to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string required: - path type: object iscsi: - description: 'iscsi represents an ISCSI Disk resource - that is attached to a kubelet''s host machine - and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md' properties: chapAuthDiscovery: - description: chapAuthDiscovery defines whether - support iSCSI Discovery CHAP authentication type: boolean chapAuthSession: - description: chapAuthSession defines whether - support iSCSI Session CHAP authentication type: boolean fsType: - description: 'fsType is the filesystem type - of the volume that you want to mount. Tip: - Ensure that the filesystem type is supported - by the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly inferred - to be "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string initiatorName: - description: initiatorName is the custom iSCSI - Initiator Name. If initiatorName is specified - with iscsiInterface simultaneously, new - iSCSI interface : will be created for the connection. type: string iqn: - description: iqn is the target iSCSI Qualified - Name. type: string iscsiInterface: - description: iscsiInterface is the interface - Name that uses an iSCSI transport. Defaults - to 'default' (tcp). type: string lun: - description: lun represents iSCSI Target Lun - number. format: int32 type: integer portals: - description: portals is the iSCSI Target Portal - List. The portal is either an IP or ip_addr:port - if the port is other than default (typically - TCP ports 860 and 3260). items: type: string type: array x-kubernetes-list-type: atomic readOnly: - description: readOnly here will force the - ReadOnly setting in VolumeMounts. Defaults - to false. type: boolean secretRef: - description: secretRef is the CHAP Secret - for iSCSI target and initiator authentication properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic targetPortal: - description: targetPortal is iSCSI Target - Portal. The Portal is either an IP or ip_addr:port - if the port is other than default (typically - TCP ports 860 and 3260). type: string required: - iqn @@ -24776,182 +9119,68 @@ spec: - targetPortal type: object name: - description: 'name of the volume. Must be a DNS_LABEL - and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string nfs: - description: 'nfs represents an NFS mount on the - host that shares a pod''s lifetime More info: - https://kubernetes.io/docs/concepts/storage/volumes#nfs' properties: path: - description: 'path that is exported by the - NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string readOnly: - description: 'readOnly here will force the - NFS export to be mounted with read-only - permissions. Defaults to false. More info: - https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: boolean server: - description: 'server is the hostname or IP - address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string required: - path - server type: object persistentVolumeClaim: - description: 'persistentVolumeClaimVolumeSource - represents a reference to a PersistentVolumeClaim - in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: claimName: - description: 'claimName is the name of a PersistentVolumeClaim - in the same namespace as the pod using this - volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' type: string readOnly: - description: readOnly Will force the ReadOnly - setting in VolumeMounts. Default false. type: boolean required: - claimName type: object photonPersistentDisk: - description: photonPersistentDisk represents a - PhotonController persistent disk attached and - mounted on kubelets host machine properties: fsType: - description: fsType is the filesystem type - to mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Implicitly inferred to be - "ext4" if unspecified. type: string pdID: - description: pdID is the ID that identifies - Photon Controller persistent disk type: string required: - pdID type: object portworxVolume: - description: portworxVolume represents a portworx - volume attached and mounted on kubelets host - machine properties: fsType: - description: fSType represents the filesystem - type to mount Must be a filesystem type - supported by the host operating system. - Ex. "ext4", "xfs". Implicitly inferred to - be "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean volumeID: - description: volumeID uniquely identifies - a Portworx volume type: string required: - volumeID type: object projected: - description: projected items for all in one resources - secrets, configmaps, and downward API properties: defaultMode: - description: defaultMode are the mode bits - used to set permissions on created files - by default. Must be an octal value between - 0000 and 0777 or a decimal value between - 0 and 511. YAML accepts both octal and decimal - values, JSON requires decimal values for - mode bits. Directories within the path are - not affected by this setting. This might - be in conflict with other options that affect - the file mode, like fsGroup, and the result - can be other mode bits set. format: int32 type: integer sources: - description: sources is the list of volume - projections items: - description: Projection that may be projected - along with other supported volume types properties: clusterTrustBundle: - description: "ClusterTrustBundle allows - a pod to access the `.spec.trustBundle` - field of ClusterTrustBundle objects - in an auto-updating file. \n Alpha, - gated by the ClusterTrustBundleProjection - feature gate. \n ClusterTrustBundle - objects can either be selected by - name, or by the combination of signer - name and a label selector. \n Kubelet - performs aggressive normalization - of the PEM contents written into the - pod filesystem. Esoteric PEM features - such as inter-block comments and block - headers are stripped. Certificates - are deduplicated. The ordering of - certificates within the file is arbitrary, - and Kubelet may change the order over - time." properties: labelSelector: - description: Select all ClusterTrustBundles - that match this label selector. Only - has effect if signerName is set. Mutually-exclusive - with name. If unset, interpreted - as "match nothing". If set but - empty, interpreted as "match everything". properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator - represents a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is - an array of string values. - If the operator is In - or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the - values array must be - empty. This array is - replaced during a strategic - merge patch. items: type: string type: array @@ -24965,103 +9194,31 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in the - matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic name: - description: Select a single ClusterTrustBundle - by object name. Mutually-exclusive - with signerName and labelSelector. type: string optional: - description: If true, don't block - pod startup if the referenced - ClusterTrustBundle(s) aren't available. If - using name, then the named ClusterTrustBundle - is allowed not to exist. If using - signerName, then the combination - of signerName and labelSelector - is allowed to match zero ClusterTrustBundles. type: boolean path: - description: Relative path from - the volume root to write the bundle. type: string signerName: - description: Select all ClusterTrustBundles - that match this signer name. Mutually-exclusive - with name. The contents of all - selected ClusterTrustBundles will - be unified and deduplicated. type: string required: - path type: object configMap: - description: configMap information about - the configMap data to project properties: items: - description: items if unspecified, - each key-value pair in the Data - field of the referenced ConfigMap - will be projected into the volume - as a file whose name is the key - and content is the value. If specified, - the listed keys will be projected - into the specified paths, and - unlisted keys will not be present. - If a key is specified which is - not present in the ConfigMap, - the volume setup will error unless - it is marked optional. Paths must - be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key - to a path within a volume. properties: key: - description: key is the key - to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an - octal value between 0000 - and 0777 or a decimal value - between 0 and 511. YAML - accepts both octal and decimal - values, JSON requires decimal - values for mode bits. If - not specified, the volume - defaultMode will be used. - This might be in conflict - with other options that - affect the file mode, like - fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map - the key to. May not be an - absolute path. May not contain - the path element '..'. May - not start with the string - '..'. type: string required: - key @@ -25071,116 +9228,42 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether - the ConfigMap or its keys must - be defined type: boolean type: object x-kubernetes-map-type: atomic downwardAPI: - description: downwardAPI information - about the downwardAPI data to project properties: items: - description: Items is a list of - DownwardAPIVolume file items: - description: DownwardAPIVolumeFile - represents information to create - the file containing the pod - field properties: fieldRef: - description: 'Required: Selects - a field of the pod: only - annotations, labels, name, - namespace and uid are supported.' properties: apiVersion: - description: Version of - the schema the FieldPath - is written in terms - of, defaults to "v1". type: string fieldPath: - description: Path of the - field to select in the - specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode - bits used to set permissions - on this file, must be an - octal value between 0000 - and 0777 or a decimal value - between 0 and 511. YAML - accepts both octal and decimal - values, JSON requires decimal - values for mode bits. If - not specified, the volume - defaultMode will be used. - This might be in conflict - with other options that - affect the file mode, like - fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: 'Required: Path - is the relative path name - of the file to be created. - Must not be absolute or - contain the ''..'' path. - Must be utf-8 encoded. The - first item of the relative - path must not start with - ''..''' type: string resourceFieldRef: - description: 'Selects a resource - of the container: only resources - limits and requests (limits.cpu, - limits.memory, requests.cpu - and requests.memory) are - currently supported.' properties: containerName: - description: 'Container - name: required for volumes, - optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies - the output format of - the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: - resource to select' type: string required: - resource @@ -25193,60 +9276,16 @@ spec: x-kubernetes-list-type: atomic type: object secret: - description: secret information about - the secret data to project properties: items: - description: items if unspecified, - each key-value pair in the Data - field of the referenced Secret - will be projected into the volume - as a file whose name is the key - and content is the value. If specified, - the listed keys will be projected - into the specified paths, and - unlisted keys will not be present. - If a key is specified which is - not present in the Secret, the - volume setup will error unless - it is marked optional. Paths must - be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key - to a path within a volume. properties: key: - description: key is the key - to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an - octal value between 0000 - and 0777 or a decimal value - between 0 and 511. YAML - accepts both octal and decimal - values, JSON requires decimal - values for mode bits. If - not specified, the volume - defaultMode will be used. - This might be in conflict - with other options that - affect the file mode, like - fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map - the key to. May not be an - absolute path. May not contain - the path element '..'. May - not start with the string - '..'. type: string required: - key @@ -25256,61 +9295,19 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional field specify - whether the Secret or its key - must be defined type: boolean type: object x-kubernetes-map-type: atomic serviceAccountToken: - description: serviceAccountToken is - information about the serviceAccountToken - data to project properties: audience: - description: audience is the intended - audience of the token. A recipient - of a token must identify itself - with an identifier specified in - the audience of the token, and - otherwise should reject the token. - The audience defaults to the identifier - of the apiserver. type: string expirationSeconds: - description: expirationSeconds is - the requested duration of validity - of the service account token. - As the token approaches expiration, - the kubelet volume plugin will - proactively rotate the service - account token. The kubelet will - start trying to rotate the token - if the token is older than 80 - percent of its time to live or - if the token is older than 24 - hours.Defaults to 1 hour and must - be at least 10 minutes. format: int64 type: integer path: - description: path is the path relative - to the mount point of the file - to project the token into. type: string required: - path @@ -25320,179 +9317,79 @@ spec: x-kubernetes-list-type: atomic type: object quobyte: - description: quobyte represents a Quobyte mount - on the host that shares a pod's lifetime properties: group: - description: group to map volume access to - Default is no group type: string readOnly: - description: readOnly here will force the - Quobyte volume to be mounted with read-only - permissions. Defaults to false. type: boolean registry: - description: registry represents a single - or multiple Quobyte Registry services specified - as a string as host:port pair (multiple - entries are separated with commas) which - acts as the central registry for volumes type: string tenant: - description: tenant owning the given Quobyte - volume in the Backend Used with dynamically - provisioned Quobyte volumes, value is set - by the plugin type: string user: - description: user to map volume access to - Defaults to serivceaccount user type: string volume: - description: volume is a string that references - an already created Quobyte volume by name. type: string required: - registry - volume type: object rbd: - description: 'rbd represents a Rados Block Device - mount on the host that shares a pod''s lifetime. - More info: https://examples.k8s.io/volumes/rbd/README.md' properties: fsType: - description: 'fsType is the filesystem type - of the volume that you want to mount. Tip: - Ensure that the filesystem type is supported - by the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly inferred - to be "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string image: - description: 'image is the rados image name. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string keyring: - description: 'keyring is the path to key ring - for RBDUser. Default is /etc/ceph/keyring. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string monitors: - description: 'monitors is a collection of - Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic pool: - description: 'pool is the rados pool name. - Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string readOnly: - description: 'readOnly here will force the - ReadOnly setting in VolumeMounts. Defaults - to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: boolean secretRef: - description: 'secretRef is name of the authentication - secret for RBDUser. If provided overrides - keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is the rados user name. - Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string required: - image - monitors type: object scaleIO: - description: scaleIO represents a ScaleIO persistent - volume attached and mounted on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem type - to mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Default is "xfs". type: string gateway: - description: gateway is the host address of - the ScaleIO API Gateway. type: string protectionDomain: - description: protectionDomain is the name - of the ScaleIO Protection Domain for the - configured storage. type: string readOnly: - description: readOnly Defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean secretRef: - description: secretRef references to the secret - for ScaleIO user and other sensitive information. - If this is not provided, Login operation - will fail. properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic sslEnabled: - description: sslEnabled Flag enable/disable - SSL communication with Gateway, default - false type: boolean storageMode: - description: storageMode indicates whether - the storage for a volume should be ThickProvisioned - or ThinProvisioned. Default is ThinProvisioned. type: string storagePool: - description: storagePool is the ScaleIO Storage - Pool associated with the protection domain. type: string system: - description: system is the name of the storage - system as configured in ScaleIO. type: string volumeName: - description: volumeName is the name of a volume - already created in the ScaleIO system that - is associated with this volume source. type: string required: - gateway @@ -25500,65 +9397,19 @@ spec: - system type: object secret: - description: 'secret represents a secret that - should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' properties: defaultMode: - description: 'defaultMode is Optional: mode - bits used to set permissions on created - files by default. Must be an octal value - between 0000 and 0777 or a decimal value - between 0 and 511. YAML accepts both octal - and decimal values, JSON requires decimal - values for mode bits. Defaults to 0644. - Directories within the path are not affected - by this setting. This might be in conflict - with other options that affect the file - mode, like fsGroup, and the result can be - other mode bits set.' format: int32 type: integer items: - description: items If unspecified, each key-value - pair in the Data field of the referenced - Secret will be projected into the volume - as a file whose name is the key and content - is the value. If specified, the listed keys - will be projected into the specified paths, - and unlisted keys will not be present. If - a key is specified which is not present - in the Secret, the volume setup will error - unless it is marked optional. Paths must - be relative and may not contain the '..' - path or start with '..'. items: - description: Maps a string key to a path - within a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: mode - bits used to set permissions on this - file. Must be an octal value between - 0000 and 0777 or a decimal value between - 0 and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. If not - specified, the volume defaultMode - will be used. This might be in conflict - with other options that affect the - file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative path - of the file to map the key to. May - not be an absolute path. May not contain - the path element '..'. May not start - with the string '..'. type: string required: - key @@ -25567,93 +9418,37 @@ spec: type: array x-kubernetes-list-type: atomic optional: - description: optional field specify whether - the Secret or its keys must be defined type: boolean secretName: - description: 'secretName is the name of the - secret in the pod''s namespace to use. More - info: https://kubernetes.io/docs/concepts/storage/volumes#secret' type: string type: object storageos: - description: storageOS represents a StorageOS - volume attached and mounted on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem type - to mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Implicitly inferred to be - "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean secretRef: - description: secretRef specifies the secret - to use for obtaining the StorageOS API credentials. If - not specified, default values will be attempted. properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeName: - description: volumeName is the human-readable - name of the StorageOS volume. Volume names - are only unique within a namespace. type: string volumeNamespace: - description: volumeNamespace specifies the - scope of the volume within StorageOS. If - no namespace is specified then the Pod's - namespace will be used. This allows the - Kubernetes name scoping to be mirrored within - StorageOS for tighter integration. Set VolumeName - to any name to override the default behaviour. - Set to "default" if you are not using namespaces - within StorageOS. Namespaces that do not - pre-exist within StorageOS will be created. type: string type: object vsphereVolume: - description: vsphereVolume represents a vSphere - volume attached and mounted on kubelets host - machine properties: fsType: - description: fsType is filesystem type to - mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Implicitly inferred to be - "ext4" if unspecified. type: string storagePolicyID: - description: storagePolicyID is the storage - Policy Based Management (SPBM) profile ID - associated with the StoragePolicyName. type: string storagePolicyName: - description: storagePolicyName is the storage - Policy Based Management (SPBM) profile name. type: string volumePath: - description: volumePath is the path that identifies - vSphere volume vmdk type: string required: - volumePath @@ -25666,296 +9461,119 @@ spec: type: array type: object name: - description: Name specifies the name of the session type: string repositories: - description: Repositories specifies a list of repository information - where the backed up data will be stored. KubeStash will create - the respective Repository CRs using this information. items: - description: RepositoryInfo specifies information about the - repository where the backed up data will be stored. KubeStash - will create the respective Repository CR from this information. properties: backend: - description: Backend specifies the name of the backend where - this repository will be initialized. This should point - to a backend name specified in `.spec.backends` section. - For using a default backend, keep this field empty. type: string + backupVerifier: + properties: + name: + type: string + namespace: + type: string + required: + - name + type: object deletionPolicy: - description: DeletionPolicy specifies what to do when you - delete a Repository CR. enum: - Delete - WipeOut type: string directory: - description: Directory specifies the path inside the backend - where the backed up data will be stored. type: string encryptionSecret: - description: EncryptionSecret refers to the Secret containing - the encryption key which will be used to encode/decode - the backed up dta. You can refer to a Secret of a different - namespace. If you don't provide the namespace field, KubeStash - will look for the Secret in the same namespace as the - BackupConfiguration / BackupBatch. properties: name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: - description: 'Namespace of the referent. More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string required: - name type: object name: - description: Name specifies the name of the Repository type: string type: object type: array retryConfig: - description: RetryConfig specifies the behavior of retry in case - of a backup failure. properties: delay: - description: 'The amount of time to wait before next retry. - If you don''t specify this field, KubeStash will retry immediately. - Format: 30s, 2m, 1h etc.' type: string maxRetry: default: 1 - description: MaxRetry specifies the maximum number of times - KubeStash should retry the backup/restore process. By default, - KubeStash will retry only 1 time. format: int32 minimum: 1 type: integer type: object scheduler: - description: Scheduler specifies the configuration for backup - triggering CronJob properties: concurrencyPolicy: - description: 'Specifies how to treat concurrent executions - of a Job. Valid values are: - "Allow" (default): allows - CronJobs to run concurrently; - "Forbid": forbids concurrent - runs, skipping next run if previous run hasn''t finished - yet; - "Replace": cancels currently running job and replaces - it with a new one' type: string failedJobsHistoryLimit: - description: The number of failed finished jobs to retain. - Value must be non-negative integer. Defaults to 1. format: int32 type: integer jobTemplate: - description: Specifies the job that will be created when executing - a CronJob. properties: activeDeadlineSeconds: - description: Specifies the duration in seconds relative - to the startTime that the job may be continuously active - before the system tries to terminate it; value must - be positive integer. If a Job is suspended (at creation - or through an update), this timer will effectively be - stopped and reset when the Job is resumed again. format: int64 type: integer backoffLimit: - description: Specifies the number of retries before marking - this job failed. Defaults to 6 format: int32 type: integer completionMode: - description: "CompletionMode specifies how Pod completions - are tracked. It can be `NonIndexed` (default) or `Indexed`. - \n `NonIndexed` means that the Job is considered complete - when there have been .spec.completions successfully - completed Pods. Each Pod completion is homologous to - each other. \n `Indexed` means that the Pods of a Job - get an associated completion index from 0 to (.spec.completions - - 1), available in the annotation batch.kubernetes.io/job-completion-index. - The Job is considered complete when there is one successfully - completed Pod for each index. When value is `Indexed`, - .spec.completions must be specified and `.spec.parallelism` - must be less than or equal to 10^5. \n This field is - alpha-level and is only honored by servers that enable - the IndexedJob feature gate. More completion modes can - be added in the future. If the Job controller observes - a mode that it doesn't recognize, the controller skips - updates for the Job." type: string completions: - description: 'Specifies the desired number of successfully - finished pods the job should be run with. Setting to - nil means that the success of any pod signals the success - of all pods, and allows parallelism to have any positive - value. Setting to 1 means that parallelism is limited - to 1 and the success of that pod signals the success - of the job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/' format: int32 type: integer parallelism: - description: 'Specifies the maximum desired number of - pods the job should run at any given time. The actual - number of pods running in steady state will be less - than this number when ((.spec.completions - .status.successful) - < .spec.parallelism), i.e. when the work left to do - is less than max parallelism. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/' format: int32 type: integer suspend: - description: Suspend specifies whether the Job controller - should create Pods or not. If a Job is created with - suspend set to true, no Pods are created by the Job - controller. If a Job is suspended after creation (i.e. - the flag goes from false to true), the Job controller - will delete all active Pods associated with this Job. - Users must design their workload to gracefully handle - this. Suspending a Job will reset the StartTime field - of the Job, effectively resetting the ActiveDeadlineSeconds - timer too. This is an alpha field and requires the SuspendJob - feature gate to be enabled; otherwise this field may - not be set to true. Defaults to false. type: boolean template: - description: Describes the pod that will be created when - executing a job. properties: controller: - description: 'Workload controller''s metadata. More - info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key - value map stored with a resource that may be - set by external tools to store and retrieve - arbitrary metadata. They are not queryable and - should be preserved when modifying objects. - More info: http://kubernetes.io/docs/user-guide/annotations' type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that - can be used to organize and categorize (scope - and select) objects. May match selectors of - replication controllers and services. More info: - http://kubernetes.io/docs/user-guide/labels' type: object type: object metadata: - description: 'Standard object''s metadata. More info: - https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key - value map stored with a resource that may be - set by external tools to store and retrieve - arbitrary metadata. They are not queryable and - should be preserved when modifying objects. - More info: http://kubernetes.io/docs/user-guide/annotations' type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that - can be used to organize and categorize (scope - and select) objects. May match selectors of - replication controllers and services. More info: - http://kubernetes.io/docs/user-guide/labels' type: object type: object spec: - description: 'Specification of the desired behavior - of the pod. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' properties: affinity: - description: If specified, the pod's scheduling - constraints properties: nodeAffinity: - description: Describes node affinity scheduling - rules for the pod. properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer - to schedule pods to nodes that satisfy - the affinity expressions specified by - this field, but it may choose a node - that violates one or more of the expressions. - The node that is most preferred is the - one with the greatest sum of weights, - i.e. for each node that meets all of - the scheduling requirements (resource - request, requiredDuringScheduling affinity - expressions, etc.), compute a sum by - iterating through the elements of this - field and adding "weight" to the sum - if the node matches the corresponding - matchExpressions; the node(s) with the - highest sum are the most preferred. items: - description: An empty preferred scheduling - term matches all objects with implicit - weight 0 (i.e. it's a no-op). A null - preferred scheduling term matches - no objects (i.e. is also a no-op). properties: preference: - description: A node selector term, - associated with the corresponding - weight. properties: matchExpressions: - description: A list of node - selector requirements by node's - labels. items: - description: A node selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An array - of string values. If - the operator is In or - NotIn, the values array - must be non-empty. If - the operator is Exists - or DoesNotExist, the - values array must be - empty. If the operator - is Gt or Lt, the values - array must have a single - element, which will - be interpreted as an - integer. This array - is replaced during a - strategic merge patch. items: type: string type: array @@ -25967,46 +9585,13 @@ spec: type: array x-kubernetes-list-type: atomic matchFields: - description: A list of node - selector requirements by node's - fields. items: - description: A node selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An array - of string values. If - the operator is In or - NotIn, the values array - must be non-empty. If - the operator is Exists - or DoesNotExist, the - values array must be - empty. If the operator - is Gt or Lt, the values - array must have a single - element, which will - be interpreted as an - integer. This array - is replaced during a - strategic merge patch. items: type: string type: array @@ -26020,9 +9605,6 @@ spec: type: object x-kubernetes-map-type: atomic weight: - description: Weight associated with - matching the corresponding nodeSelectorTerm, - in the range 1-100. format: int32 type: integer required: @@ -26032,67 +9614,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements - specified by this field are not met - at scheduling time, the pod will not - be scheduled onto the node. If the affinity - requirements specified by this field - cease to be met at some point during - pod execution (e.g. due to an update), - the system may or may not try to eventually - evict the pod from its node. properties: nodeSelectorTerms: - description: Required. A list of node - selector terms. The terms are ORed. items: - description: A null or empty node - selector term matches no objects. - The requirements of them are ANDed. - The TopologySelectorTerm type - implements a subset of the NodeSelectorTerm. properties: matchExpressions: - description: A list of node - selector requirements by node's - labels. items: - description: A node selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An array - of string values. If - the operator is In or - NotIn, the values array - must be non-empty. If - the operator is Exists - or DoesNotExist, the - values array must be - empty. If the operator - is Gt or Lt, the values - array must have a single - element, which will - be interpreted as an - integer. This array - is replaced during a - strategic merge patch. items: type: string type: array @@ -26104,46 +9637,13 @@ spec: type: array x-kubernetes-list-type: atomic matchFields: - description: A list of node - selector requirements by node's - fields. items: - description: A node selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: The label - key that the selector - applies to. type: string operator: - description: Represents - a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An array - of string values. If - the operator is In or - NotIn, the values array - must be non-empty. If - the operator is Exists - or DoesNotExist, the - values array must be - empty. If the operator - is Gt or Lt, the values - array must have a single - element, which will - be interpreted as an - integer. This array - is replaced during a - strategic merge patch. items: type: string type: array @@ -26164,87 +9664,22 @@ spec: x-kubernetes-map-type: atomic type: object podAffinity: - description: Describes pod affinity scheduling - rules (e.g. co-locate this pod in the same - node, zone, etc. as some other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer - to schedule pods to nodes that satisfy - the affinity expressions specified by - this field, but it may choose a node - that violates one or more of the expressions. - The node that is most preferred is the - one with the greatest sum of weights, - i.e. for each node that meets all of - the scheduling requirements (resource - request, requiredDuringScheduling affinity - expressions, etc.), compute a sum by - iterating through the elements of this - field and adding "weight" to the sum - if the node has pods which matches the - corresponding podAffinityTerm; the node(s) - with the highest sum are the most preferred. items: - description: The weights of all of the - matched WeightedPodAffinityTerm fields - are added per-node to find the most - preferred node(s) properties: podAffinityTerm: - description: Required. A pod affinity - term, associated with the corresponding - weight. properties: labelSelector: - description: A label query over - a set of resources, in this - case pods. If it's null, this - PodAffinityTerm matches with - no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key - and values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, Exists - and DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -26258,136 +9693,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an element - of matchExpressions, whose - key field is "key", the - operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming pod - labels, those key-value labels - are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods - which pods will be taken into - consideration for the incoming - pod's pod (anti) affinity. - Keys that don't exist in the - incoming pod labels will be - ignored. The default value - is empty. The same key is - forbidden to exist in both - matchLabelKeys and labelSelector. - Also, matchLabelKeys cannot - be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming pod - labels, those key-value labels - are merged with `labelSelector` - as `key notin (value)` to - select the group of existing - pods which pods will be taken - into consideration for the - incoming pod's pod (anti) - affinity. Keys that don't - exist in the incoming pod - labels will be ignored. The - default value is empty. The - same key is forbidden to exist - in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over - the set of namespaces that - the term applies to. The term - is applied to the union of - the namespaces selected by - this field and the ones listed - in the namespaces field. null - selector and null or empty - namespaces list means "this - pod's namespace". An empty - selector ({}) matches all - namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key - and values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, Exists - and DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -26401,57 +9729,20 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an element - of matchExpressions, whose - key field is "key", the - operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace - names that the term applies - to. The term is applied to - the union of the namespaces - listed in this field and the - ones selected by namespaceSelector. - null or empty namespaces list - and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should - be co-located (affinity) or - not co-located (anti-affinity) - with the pods matching the - labelSelector in the specified - namespaces, where co-located - is defined as running on a - node whose value of the label - with key topologyKey matches - that of any node on which - any of the selected pods is - running. Empty topologyKey - is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated with - matching the corresponding podAffinityTerm, - in the range 1-100. format: int32 type: integer required: @@ -26461,74 +9752,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements - specified by this field are not met - at scheduling time, the pod will not - be scheduled onto the node. If the affinity - requirements specified by this field - cease to be met at some point during - pod execution (e.g. due to a pod label - update), the system may or may not try - to eventually evict the pod from its - node. When there are multiple elements, - the lists of nodes corresponding to - each podAffinityTerm are intersected, - i.e. all terms must be satisfied. items: - description: Defines a set of pods (namely - those matching the labelSelector relative - to the given namespace(s)) that this - pod should be co-located (affinity) - or not co-located (anti-affinity) - with, where co-located is defined - as running on a node whose value of - the label with key matches - that of any node on which a pod of - the set of pods is running properties: labelSelector: - description: A label query over - a set of resources, in this case - pods. If it's null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator - represents a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is - an array of string values. - If the operator is In - or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the - values array must be - empty. This array is - replaced during a strategic - merge patch. items: type: string type: array @@ -26542,120 +9777,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in the - matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is a - set of pod label keys to select - which pods will be taken into - consideration. The keys are used - to lookup values from the incoming - pod labels, those key-value labels - are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, matchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys is - a set of pod label keys to select - which pods will be taken into - consideration. The keys are used - to lookup values from the incoming - pod labels, those key-value labels - are merged with `labelSelector` - as `key notin (value)` to select - the group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over - the set of namespaces that the - term applies to. The term is applied - to the union of the namespaces - selected by this field and the - ones listed in the namespaces - field. null selector and null - or empty namespaces list means - "this pod's namespace". An empty - selector ({}) matches all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator - represents a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is - an array of string values. - If the operator is In - or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the - values array must be - empty. This array is - replaced during a strategic - merge patch. items: type: string type: array @@ -26669,45 +9813,15 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in the - matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace names - that the term applies to. The - term is applied to the union of - the namespaces listed in this - field and the ones selected by - namespaceSelector. null or empty - namespaces list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be - co-located (affinity) or not co-located - (anti-affinity) with the pods - matching the labelSelector in - the specified namespaces, where - co-located is defined as running - on a node whose value of the label - with key topologyKey matches that - of any node on which any of the - selected pods is running. Empty - topologyKey is not allowed. type: string required: - topologyKey @@ -26716,87 +9830,22 @@ spec: x-kubernetes-list-type: atomic type: object podAntiAffinity: - description: Describes pod anti-affinity scheduling - rules (e.g. avoid putting this pod in the - same node, zone, etc. as some other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer - to schedule pods to nodes that satisfy - the anti-affinity expressions specified - by this field, but it may choose a node - that violates one or more of the expressions. - The node that is most preferred is the - one with the greatest sum of weights, - i.e. for each node that meets all of - the scheduling requirements (resource - request, requiredDuringScheduling anti-affinity - expressions, etc.), compute a sum by - iterating through the elements of this - field and adding "weight" to the sum - if the node has pods which matches the - corresponding podAffinityTerm; the node(s) - with the highest sum are the most preferred. items: - description: The weights of all of the - matched WeightedPodAffinityTerm fields - are added per-node to find the most - preferred node(s) properties: podAffinityTerm: - description: Required. A pod affinity - term, associated with the corresponding - weight. properties: labelSelector: - description: A label query over - a set of resources, in this - case pods. If it's null, this - PodAffinityTerm matches with - no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key - and values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, Exists - and DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -26810,136 +9859,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an element - of matchExpressions, whose - key field is "key", the - operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming pod - labels, those key-value labels - are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods - which pods will be taken into - consideration for the incoming - pod's pod (anti) affinity. - Keys that don't exist in the - incoming pod labels will be - ignored. The default value - is empty. The same key is - forbidden to exist in both - matchLabelKeys and labelSelector. - Also, matchLabelKeys cannot - be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys - is a set of pod label keys - to select which pods will - be taken into consideration. - The keys are used to lookup - values from the incoming pod - labels, those key-value labels - are merged with `labelSelector` - as `key notin (value)` to - select the group of existing - pods which pods will be taken - into consideration for the - incoming pod's pod (anti) - affinity. Keys that don't - exist in the incoming pod - labels will be ignored. The - default value is empty. The - same key is forbidden to exist - in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha - field and requires enabling - MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over - the set of namespaces that - the term applies to. The term - is applied to the union of - the namespaces selected by - this field and the ones listed - in the namespaces field. null - selector and null or empty - namespaces list means "this - pod's namespace". An empty - selector ({}) matches all - namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key - and values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, Exists - and DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -26953,57 +9895,20 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an element - of matchExpressions, whose - key field is "key", the - operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace - names that the term applies - to. The term is applied to - the union of the namespaces - listed in this field and the - ones selected by namespaceSelector. - null or empty namespaces list - and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should - be co-located (affinity) or - not co-located (anti-affinity) - with the pods matching the - labelSelector in the specified - namespaces, where co-located - is defined as running on a - node whose value of the label - with key topologyKey matches - that of any node on which - any of the selected pods is - running. Empty topologyKey - is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated with - matching the corresponding podAffinityTerm, - in the range 1-100. format: int32 type: integer required: @@ -27013,74 +9918,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the anti-affinity requirements - specified by this field are not met - at scheduling time, the pod will not - be scheduled onto the node. If the anti-affinity - requirements specified by this field - cease to be met at some point during - pod execution (e.g. due to a pod label - update), the system may or may not try - to eventually evict the pod from its - node. When there are multiple elements, - the lists of nodes corresponding to - each podAffinityTerm are intersected, - i.e. all terms must be satisfied. items: - description: Defines a set of pods (namely - those matching the labelSelector relative - to the given namespace(s)) that this - pod should be co-located (affinity) - or not co-located (anti-affinity) - with, where co-located is defined - as running on a node whose value of - the label with key matches - that of any node on which a pod of - the set of pods is running properties: labelSelector: - description: A label query over - a set of resources, in this case - pods. If it's null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator - represents a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is - an array of string values. - If the operator is In - or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the - values array must be - empty. This array is - replaced during a strategic - merge patch. items: type: string type: array @@ -27094,120 +9943,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in the - matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is a - set of pod label keys to select - which pods will be taken into - consideration. The keys are used - to lookup values from the incoming - pod labels, those key-value labels - are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, matchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys is - a set of pod label keys to select - which pods will be taken into - consideration. The keys are used - to lookup values from the incoming - pod labels, those key-value labels - are merged with `labelSelector` - as `key notin (value)` to select - the group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over - the set of namespaces that the - term applies to. The term is applied - to the union of the namespaces - selected by this field and the - ones listed in the namespaces - field. null selector and null - or empty namespaces list means - "this pod's namespace". An empty - selector ({}) matches all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator - represents a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is - an array of string values. - If the operator is In - or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the - values array must be - empty. This array is - replaced during a strategic - merge patch. items: type: string type: array @@ -27221,45 +9979,15 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in the - matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace names - that the term applies to. The - term is applied to the union of - the namespaces listed in this - field and the ones selected by - namespaceSelector. null or empty - namespaces list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be - co-located (affinity) or not co-located - (anti-affinity) with the pods - matching the labelSelector in - the specified namespaces, where - co-located is defined as running - on a node whose value of the label - with key topologyKey matches that - of any node on which any of the - selected pods is running. Empty - topologyKey is not allowed. type: string required: - topologyKey @@ -27269,273 +9997,92 @@ spec: type: object type: object args: - description: 'Arguments to the entrypoint. The - docker image''s CMD is used if this is not provided. - Variable references $(VAR_NAME) are expanded - using the container''s environment. If a variable - cannot be resolved, the reference in the input - string will be unchanged. The $(VAR_NAME) syntax - can be escaped with a double $$, ie: $$(VAR_NAME). - Escaped references will never be expanded, regardless - of whether the variable exists or not. Cannot - be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' items: type: string type: array containerSecurityContext: - description: 'Security options the pod should - run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: allowPrivilegeEscalation: - description: 'AllowPrivilegeEscalation controls - whether a process can gain more privileges - than its parent process. This bool directly - controls if the no_new_privs flag will be - set on the container process. AllowPrivilegeEscalation - is true always when the container is: 1) - run as Privileged 2) has CAP_SYS_ADMIN Note - that this field cannot be set when spec.os.name - is windows.' type: boolean appArmorProfile: - description: appArmorProfile is the AppArmor - options to use by this container. If set, - this profile overrides the pod's appArmorProfile. - Note that this field cannot be set when - spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile loaded on the node that should - be used. The profile must be preconfigured - on the node to work. Must match the - loaded name of the profile. Must be - set if and only if type is "Localhost". type: string type: - description: 'type indicates which kind - of AppArmor profile will be applied. - Valid options are: Localhost - a profile - pre-loaded on the node. RuntimeDefault - - the container runtime''s default profile. - Unconfined - no AppArmor enforcement.' type: string required: - type type: object capabilities: - description: The capabilities to add/drop - when running containers. Defaults to the - default set of capabilities granted by the - container runtime. Note that this field - cannot be set when spec.os.name is windows. properties: add: - description: Added capabilities items: - description: Capability represent POSIX - capabilities type type: string type: array x-kubernetes-list-type: atomic drop: - description: Removed capabilities items: - description: Capability represent POSIX - capabilities type type: string type: array x-kubernetes-list-type: atomic type: object privileged: - description: Run container in privileged mode. - Processes in privileged containers are essentially - equivalent to root on the host. Defaults - to false. Note that this field cannot be - set when spec.os.name is windows. type: boolean procMount: - description: procMount denotes the type of - proc mount to use for the containers. The - default is DefaultProcMount which uses the - container runtime defaults for readonly - paths and masked paths. This requires the - ProcMountType feature flag to be enabled. - Note that this field cannot be set when - spec.os.name is windows. type: string readOnlyRootFilesystem: - description: Whether this container has a - read-only root filesystem. Default is false. - Note that this field cannot be set when - spec.os.name is windows. type: boolean runAsGroup: - description: The GID to run the entrypoint - of the container process. Uses runtime default - if unset. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. Note that this field cannot - be set when spec.os.name is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container - must run as a non-root user. If true, the - Kubelet will validate the image at runtime - to ensure that it does not run as UID 0 - (root) and fail to start the container if - it does. If unset or false, no such validation - will be performed. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. type: boolean runAsUser: - description: The UID to run the entrypoint - of the container process. Defaults to user - specified in image metadata if unspecified. - May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. Note that this field cannot - be set when spec.os.name is windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be applied - to the container. If unspecified, the container - runtime will allocate a random SELinux context - for each container. May also be set in - PodSecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. Note - that this field cannot be set when spec.os.name - is windows. properties: level: - description: Level is SELinux level label - that applies to the container. type: string role: - description: Role is a SELinux role label - that applies to the container. type: string type: - description: Type is a SELinux type label - that applies to the container. type: string user: - description: User is a SELinux user label - that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to use by - this container. If seccomp options are provided - at both the pod & container level, the container - options override the pod options. Note that - this field cannot be set when spec.os.name - is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile defined in a file on the node - should be used. The profile must be - preconfigured on the node to work. Must - be a descending path, relative to the - kubelet's configured seccomp profile - location. Must be set if type is "Localhost". - Must NOT be set for any other type. type: string type: - description: "type indicates which kind - of seccomp profile will be applied. - Valid options are: \n Localhost - a - profile defined in a file on the node - should be used. RuntimeDefault - the - container runtime default profile should - be used. Unconfined - no profile should - be applied." type: string required: - type type: object windowsOptions: - description: The Windows specific settings - applied to all containers. If unspecified, - the options from the PodSecurityContext - will be used. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. Note - that this field cannot be set when spec.os.name - is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is where - the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA credential - spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName is - the name of the GMSA credential spec - to use. type: string hostProcess: - description: HostProcess determines if - a container should be run as a 'Host - Process' container. All of a Pod's containers - must have the same effective HostProcess - value (it is not allowed to have a mix - of HostProcess containers and non-HostProcess - containers). In addition, if HostProcess - is true then HostNetwork must also be - set to true. type: boolean runAsUserName: - description: The UserName in Windows to - run the entrypoint of the container - process. Defaults to the user specified - in image metadata if unspecified. May - also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: string type: object type: object dnsConfig: - description: Specifies the DNS parameters of a - pod. Parameters specified here will be merged - to the generated DNS configuration based on - DNSPolicy. properties: nameservers: - description: A list of DNS name server IP - addresses. This will be appended to the - base nameservers generated from DNSPolicy. - Duplicated nameservers will be removed. items: type: string type: array x-kubernetes-list-type: atomic options: - description: A list of DNS resolver options. - This will be merged with the base options - generated from DNSPolicy. Duplicated entries - will be removed. Resolution options given - in Options will override those that appear - in the base DNSPolicy. items: - description: PodDNSConfigOption defines - DNS resolver options of a pod. properties: name: - description: Required. type: string value: type: string @@ -27543,169 +10090,71 @@ spec: type: array x-kubernetes-list-type: atomic searches: - description: A list of DNS search domains - for host-name lookup. This will be appended - to the base search paths generated from - DNSPolicy. Duplicated search paths will - be removed. items: type: string type: array x-kubernetes-list-type: atomic type: object dnsPolicy: - description: Set DNS policy for the pod. Defaults - to "ClusterFirst". Valid values are 'ClusterFirstWithHostNet', - 'ClusterFirst', 'Default' or 'None'. DNS parameters - given in DNSConfig will be merged with the policy - selected with DNSPolicy. To have DNS options - set along with hostNetwork, you have to specify - DNS policy explicitly to 'ClusterFirstWithHostNet'. type: string enableServiceLinks: - description: 'EnableServiceLinks indicates whether - information about services should be injected - into pod''s environment variables, matching - the syntax of Docker links. Optional: Defaults - to true.' type: boolean env: - description: List of environment variables to - set in the container. Cannot be updated. items: - description: EnvVar represents an environment - variable present in a Container. properties: name: - description: Name of the environment variable. - Must be a C_IDENTIFIER. type: string value: - description: 'Variable references $(VAR_NAME) - are expanded using the previously defined - environment variables in the container - and any service environment variables. - If a variable cannot be resolved, the - reference in the input string will be - unchanged. Double $$ are reduced to a - single $, which allows for escaping the - $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" - will produce the string literal "$(VAR_NAME)". - Escaped references will never be expanded, - regardless of whether the variable exists - or not. Defaults to "".' type: string valueFrom: - description: Source for the environment - variable's value. Cannot be used if value - is not empty. properties: configMapKeyRef: - description: Selects a key of a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the - ConfigMap or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field of the - pod: supports metadata.name, metadata.namespace, - `metadata.labels['''']`, `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, - status.hostIP, status.podIP, status.podIPs.' properties: apiVersion: - description: Version of the schema - the FieldPath is written in terms - of, defaults to "v1". type: string fieldPath: - description: Path of the field to - select in the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource of - the container: only resources limits - and requests (limits.cpu, limits.memory, - limits.ephemeral-storage, requests.cpu, - requests.memory and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: required - for volumes, optional for env - vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource - to select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret - in the pod's namespace properties: key: - description: The key of the secret - to select from. Must be a valid - secret key. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the - Secret or its key must be defined type: boolean required: - key @@ -27717,258 +10166,89 @@ spec: type: object type: array hostIPC: - description: 'Use the host''s ipc namespace. Optional: - Default to false.' type: boolean hostNetwork: - description: Host networking requested for this - pod. Use the host's network namespace. If this - option is set, the ports that will be used must - be specified. Default to false. type: boolean hostPID: - description: 'Use the host''s pid namespace. Optional: - Default to false.' type: boolean imagePullSecrets: - description: 'ImagePullSecrets is an optional - list of references to secrets in the same namespace - to use for pulling any of the images used by - this PodSpec. If specified, these secrets will - be passed to individual puller implementations - for them to use. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod' items: - description: LocalObjectReference contains enough - information to let you locate the referenced - object inside the same namespace. properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type with - an empty value here are almost certainly - wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic type: array initContainers: - description: 'List of initialization containers - belonging to the pod. Init containers are executed - in order prior to containers being started. - If any init container fails, the pod is considered - to have failed and is handled according to its - restartPolicy. The name for an init container - or normal container must be unique among all - containers. Init containers may not have Lifecycle - actions, Readiness probes, or Liveness probes. - The resourceRequirements of an init container - are taken into account during scheduling by - finding the highest request/limit for each resource - type, and then using the max of of that value - or the sum of the normal containers. Limits - are applied to init containers in a similar - fashion. Init containers cannot currently be - added or removed. Cannot be updated. More info: - https://kubernetes.io/docs/concepts/workloads/pods/init-containers/' items: - description: A single application container - that you want to run within a pod. properties: args: - description: 'Arguments to the entrypoint. - The container image''s CMD is used if - this is not provided. Variable references - $(VAR_NAME) are expanded using the container''s - environment. If a variable cannot be resolved, - the reference in the input string will - be unchanged. Double $$ are reduced to - a single $, which allows for escaping - the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" - will produce the string literal "$(VAR_NAME)". - Escaped references will never be expanded, - regardless of whether the variable exists - or not. Cannot be updated. More info: - https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' items: type: string type: array x-kubernetes-list-type: atomic command: - description: 'Entrypoint array. Not executed - within a shell. The container image''s - ENTRYPOINT is used if this is not provided. - Variable references $(VAR_NAME) are expanded - using the container''s environment. If - a variable cannot be resolved, the reference - in the input string will be unchanged. - Double $$ are reduced to a single $, which - allows for escaping the $(VAR_NAME) syntax: - i.e. "$$(VAR_NAME)" will produce the string - literal "$(VAR_NAME)". Escaped references - will never be expanded, regardless of - whether the variable exists or not. Cannot - be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' items: type: string type: array x-kubernetes-list-type: atomic env: - description: List of environment variables - to set in the container. Cannot be updated. items: - description: EnvVar represents an environment - variable present in a Container. properties: name: - description: Name of the environment - variable. Must be a C_IDENTIFIER. type: string value: - description: 'Variable references - $(VAR_NAME) are expanded using the - previously defined environment variables - in the container and any service - environment variables. If a variable - cannot be resolved, the reference - in the input string will be unchanged. - Double $$ are reduced to a single - $, which allows for escaping the - $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" - will produce the string literal - "$(VAR_NAME)". Escaped references - will never be expanded, regardless - of whether the variable exists or - not. Defaults to "".' type: string valueFrom: - description: Source for the environment - variable's value. Cannot be used - if value is not empty. properties: configMapKeyRef: - description: Selects a key of - a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the - referent. This field is - effectively required, but - due to backwards compatibility - is allowed to be empty. - Instances of this type with - an empty value here are - almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether - the ConfigMap or its key - must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field - of the pod: supports metadata.name, - metadata.namespace, `metadata.labels['''']`, - `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, - status.hostIP, status.podIP, - status.podIPs.' properties: apiVersion: - description: Version of the - schema the FieldPath is - written in terms of, defaults - to "v1". type: string fieldPath: - description: Path of the field - to select in the specified - API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource - of the container: only resources - limits and requests (limits.cpu, - limits.memory, limits.ephemeral-storage, - requests.cpu, requests.memory - and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: - required for volumes, optional - for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the - output format of the exposed - resources, defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource - to select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of - a secret in the pod's namespace properties: key: - description: The key of the - secret to select from. Must - be a valid secret key. type: string name: default: "" - description: 'Name of the - referent. This field is - effectively required, but - due to backwards compatibility - is allowed to be empty. - Instances of this type with - an empty value here are - almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether - the Secret or its key must - be defined type: boolean required: - key @@ -27983,72 +10263,25 @@ spec: - name x-kubernetes-list-type: map envFrom: - description: List of sources to populate - environment variables in the container. - The keys defined within a source must - be a C_IDENTIFIER. All invalid keys will - be reported as an event when the container - is starting. When a key exists in multiple - sources, the value associated with the - last source will take precedence. Values - defined by an Env with a duplicate key - will take precedence. Cannot be updated. items: - description: EnvFromSource represents - the source of a set of ConfigMaps properties: configMapRef: - description: The ConfigMap to select - from properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the - ConfigMap must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: - description: An optional identifier - to prepend to each key in the ConfigMap. - Must be a C_IDENTIFIER. type: string secretRef: - description: The Secret to select - from properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the - Secret must be defined type: boolean type: object x-kubernetes-map-type: atomic @@ -28056,88 +10289,31 @@ spec: type: array x-kubernetes-list-type: atomic image: - description: 'Container image name. More - info: https://kubernetes.io/docs/concepts/containers/images - This field is optional to allow higher - level config management to default or - override container images in workload - controllers like Deployments and StatefulSets.' type: string imagePullPolicy: - description: 'Image pull policy. One of - Always, Never, IfNotPresent. Defaults - to Always if :latest tag is specified, - or IfNotPresent otherwise. Cannot be updated. - More info: https://kubernetes.io/docs/concepts/containers/images#updating-images' type: string lifecycle: - description: Actions that the management - system should take in response to container - lifecycle events. Cannot be updated. properties: postStart: - description: 'PostStart is called immediately - after a container is created. If the - handler fails, the container is terminated - and restarted according to its restart - policy. Other management of the container - blocks until the hook completes. More - info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the - action to take. properties: command: - description: Command is the - command line to execute inside - the container, the working - directory for the command is - root ('/') in the container's - filesystem. The command is - simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, - you need to explicitly call - out to that shell. Exit status - of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the - http request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. - You probably want to set "Host" - in httpHeaders instead. type: string httpHeaders: - description: Custom headers - to set in the request. HTTP - allows repeated headers. items: - description: HTTPHeader describes - a custom header to be used - in HTTP probes properties: name: - description: The header - field name. This will - be canonicalized upon - output, so case-variant - names will be understood - as the same header. type: string value: - description: The header - field value type: string required: - name @@ -28146,141 +10322,58 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access - on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number - of the port to access on the - container. Number must be - in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for - connecting to the host. Defaults - to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the - duration that the container should - sleep before being terminated. properties: seconds: - description: Seconds is the - number of seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket - is NOT supported as a LifecycleHandler - and kept for the backward compatibility. - There are no validation of this - field and lifecycle hooks will - fail in runtime when tcp handler - is specified. properties: host: - description: 'Optional: Host - name to connect to, defaults - to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name - of the port to access on the - container. Number must be - in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object type: object preStop: - description: 'PreStop is called immediately - before a container is terminated due - to an API request or management event - such as liveness/startup probe failure, - preemption, resource contention, etc. - The handler is not called if the container - crashes or exits. The Pod''s termination - grace period countdown begins before - the PreStop hook is executed. Regardless - of the outcome of the handler, the - container will eventually terminate - within the Pod''s termination grace - period (unless delayed by finalizers). - Other management of the container - blocks until the hook completes or - until the termination grace period - is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the - action to take. properties: command: - description: Command is the - command line to execute inside - the container, the working - directory for the command is - root ('/') in the container's - filesystem. The command is - simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, - you need to explicitly call - out to that shell. Exit status - of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the - http request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. - You probably want to set "Host" - in httpHeaders instead. type: string httpHeaders: - description: Custom headers - to set in the request. HTTP - allows repeated headers. items: - description: HTTPHeader describes - a custom header to be used - in HTTP probes properties: name: - description: The header - field name. This will - be canonicalized upon - output, so case-variant - names will be understood - as the same header. type: string value: - description: The header - field value type: string required: - name @@ -28289,63 +10382,33 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access - on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number - of the port to access on the - container. Number must be - in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for - connecting to the host. Defaults - to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the - duration that the container should - sleep before being terminated. properties: seconds: - description: Seconds is the - number of seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket - is NOT supported as a LifecycleHandler - and kept for the backward compatibility. - There are no validation of this - field and lifecycle hooks will - fail in runtime when tcp handler - is specified. properties: host: - description: 'Optional: Host - name to connect to, defaults - to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name - of the port to access on the - container. Number must be - in the range 1 to 65535. Name - must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port @@ -28353,91 +10416,38 @@ spec: type: object type: object livenessProbe: - description: 'Periodic probe of container - liveness. Container will be restarted - if the probe fails. Cannot be updated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the - command is root ('/') in the - container's filesystem. The command - is simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, you - need to explicitly call out to - that shell. Exit status of 0 is - treated as live/healthy and non-zero - is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults to - 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action - involving a GRPC port. properties: port: - description: Port number of the - gRPC service. Number must be in - the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name - of the service to place in the - gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the - default behavior is defined by - gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in - httpHeaders instead. type: string httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood - as the same header. type: string value: - description: The header field - value type: string required: - name @@ -28446,152 +10456,62 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the - HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after - the container has started before liveness - probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) - to perform the probe. Default to 10 - seconds. Minimum value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. - Must be 1 for liveness and startup. - Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an - action involving a TCP port. properties: host: - description: 'Optional: Host name - to connect to, defaults to the - pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully - upon probe failure. The grace period - is the duration in seconds after the - processes running in the pod are sent - a termination signal and the time - when the processes are forcibly halted - with a kill signal. Set this value - longer than the expected cleanup time - for your process. If this value is - nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value - overrides the value provided by the - pod spec. Value must be non-negative - integer. The value zero indicates - stop immediately via the kill signal - (no opportunity to shut down). This - is a beta field and requires enabling - ProbeTerminationGracePeriod feature - gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after - which the probe times out. Defaults - to 1 second. Minimum value is 1. More - info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object name: - description: Name of the container specified - as a DNS_LABEL. Each container in a pod - must have a unique name (DNS_LABEL). Cannot - be updated. type: string ports: - description: List of ports to expose from - the container. Not specifying a port here - DOES NOT prevent that port from being - exposed. Any port which is listening on - the default "0.0.0.0" address inside a - container will be accessible from the - network. Modifying this array with strategic - merge patch may corrupt the data. For - more information See https://github.com/kubernetes/kubernetes/issues/108255. - Cannot be updated. items: - description: ContainerPort represents - a network port in a single container. properties: containerPort: - description: Number of port to expose - on the pod's IP address. This must - be a valid port number, 0 < x < - 65536. format: int32 type: integer hostIP: - description: What host IP to bind - the external port to. type: string hostPort: - description: Number of port to expose - on the host. If specified, this - must be a valid port number, 0 < - x < 65536. If HostNetwork is specified, - this must match ContainerPort. Most - containers do not need this. format: int32 type: integer name: - description: If specified, this must - be an IANA_SVC_NAME and unique within - the pod. Each named port in a pod - must have a unique name. Name for - the port that can be referred to - by services. type: string protocol: default: TCP - description: Protocol for port. Must - be UDP, TCP, or SCTP. Defaults to - "TCP". type: string required: - containerPort @@ -28602,91 +10522,38 @@ spec: - protocol x-kubernetes-list-type: map readinessProbe: - description: 'Periodic probe of container - service readiness. Container will be removed - from service endpoints if the probe fails. - Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the - command is root ('/') in the - container's filesystem. The command - is simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, you - need to explicitly call out to - that shell. Exit status of 0 is - treated as live/healthy and non-zero - is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults to - 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action - involving a GRPC port. properties: port: - description: Port number of the - gRPC service. Number must be in - the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name - of the service to place in the - gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the - default behavior is defined by - gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in - httpHeaders instead. type: string httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood - as the same header. type: string value: - description: The header field - value type: string required: - name @@ -28695,116 +10562,51 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the - HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after - the container has started before liveness - probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) - to perform the probe. Default to 10 - seconds. Minimum value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. - Must be 1 for liveness and startup. - Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an - action involving a TCP port. properties: host: - description: 'Optional: Host name - to connect to, defaults to the - pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully - upon probe failure. The grace period - is the duration in seconds after the - processes running in the pod are sent - a termination signal and the time - when the processes are forcibly halted - with a kill signal. Set this value - longer than the expected cleanup time - for your process. If this value is - nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value - overrides the value provided by the - pod spec. Value must be non-negative - integer. The value zero indicates - stop immediately via the kill signal - (no opportunity to shut down). This - is a beta field and requires enabling - ProbeTerminationGracePeriod feature - gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after - which the probe times out. Defaults - to 1 second. Minimum value is 1. More - info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object resizePolicy: - description: Resources resize policy for - the container. items: - description: ContainerResizePolicy represents - resource resize policy for the container. properties: resourceName: - description: 'Name of the resource - to which this resource resize policy - applies. Supported values: cpu, - memory.' type: string restartPolicy: - description: Restart policy to apply - when specified resource is resized. - If not specified, it defaults to - NotRequired. type: string required: - resourceName @@ -28813,28 +10615,11 @@ spec: type: array x-kubernetes-list-type: atomic resources: - description: 'Compute Resources required - by this container. Cannot be updated. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' properties: claims: - description: "Claims lists the names - of resources, defined in spec.resourceClaims, - that are used by this container. \n - This is an alpha field and requires - enabling the DynamicResourceAllocation - feature gate. \n This field is immutable. - It can only be set for containers." items: - description: ResourceClaim references - one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the - name of one entry in pod.spec.resourceClaims - of the Pod where this field - is used. It makes that resource - available inside a container. type: string required: - name @@ -28850,9 +10635,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum - amount of compute resources allowed. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -28861,388 +10643,115 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the - minimum amount of compute resources - required. If Requests is omitted for - a container, it defaults to Limits - if that is explicitly specified, otherwise - to an implementation-defined value. - Requests cannot exceed Limits. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object restartPolicy: - description: 'RestartPolicy defines the - restart behavior of individual containers - in a pod. This field may only be set for - init containers, and the only allowed - value is "Always". For non-init containers - or when this field is not specified, the - restart behavior is defined by the Pod''s - restart policy and the container type. - Setting the RestartPolicy as "Always" - for the init container will have the following - effect: this init container will be continually - restarted on exit until all regular containers - have terminated. Once all regular containers - have completed, all init containers with - restartPolicy "Always" will be shut down. - This lifecycle differs from normal init - containers and is often referred to as - a "sidecar" container. Although this init - container still starts in the init container - sequence, it does not wait for the container - to complete before proceeding to the next - init container. Instead, the next init - container starts immediately after this - init container is started, or after any - startupProbe has successfully completed.' type: string securityContext: - description: 'SecurityContext defines the - security options the container should - be run with. If set, the fields of SecurityContext - override the equivalent fields of PodSecurityContext. - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: allowPrivilegeEscalation: - description: 'AllowPrivilegeEscalation - controls whether a process can gain - more privileges than its parent process. - This bool directly controls if the - no_new_privs flag will be set on the - container process. AllowPrivilegeEscalation - is true always when the container - is: 1) run as Privileged 2) has CAP_SYS_ADMIN - Note that this field cannot be set - when spec.os.name is windows.' type: boolean appArmorProfile: - description: appArmorProfile is the - AppArmor options to use by this container. - If set, this profile overrides the - pod's appArmorProfile. Note that this - field cannot be set when spec.os.name - is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile loaded on the node that - should be used. The profile must - be preconfigured on the node to - work. Must match the loaded name - of the profile. Must be set if - and only if type is "Localhost". type: string type: - description: 'type indicates which - kind of AppArmor profile will - be applied. Valid options are: - Localhost - a profile pre-loaded - on the node. RuntimeDefault - - the container runtime''s default - profile. Unconfined - no AppArmor - enforcement.' type: string required: - type type: object capabilities: - description: The capabilities to add/drop - when running containers. Defaults - to the default set of capabilities - granted by the container runtime. - Note that this field cannot be set - when spec.os.name is windows. properties: add: - description: Added capabilities items: - description: Capability represent - POSIX capabilities type type: string type: array x-kubernetes-list-type: atomic drop: - description: Removed capabilities items: - description: Capability represent - POSIX capabilities type type: string type: array x-kubernetes-list-type: atomic type: object privileged: - description: Run container in privileged - mode. Processes in privileged containers - are essentially equivalent to root - on the host. Defaults to false. Note - that this field cannot be set when - spec.os.name is windows. type: boolean procMount: - description: procMount denotes the type - of proc mount to use for the containers. - The default is DefaultProcMount which - uses the container runtime defaults - for readonly paths and masked paths. - This requires the ProcMountType feature - flag to be enabled. Note that this - field cannot be set when spec.os.name - is windows. type: string readOnlyRootFilesystem: - description: Whether this container - has a read-only root filesystem. Default - is false. Note that this field cannot - be set when spec.os.name is windows. type: boolean runAsGroup: - description: The GID to run the entrypoint - of the container process. Uses runtime - default if unset. May also be set - in PodSecurityContext. If set in - both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is - windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container - must run as a non-root user. If true, - the Kubelet will validate the image - at runtime to ensure that it does - not run as UID 0 (root) and fail to - start the container if it does. If - unset or false, no such validation - will be performed. May also be set - in PodSecurityContext. If set in - both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: boolean runAsUser: - description: The UID to run the entrypoint - of the container process. Defaults - to user specified in image metadata - if unspecified. May also be set in - PodSecurityContext. If set in both - SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is - windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to - be applied to the container. If unspecified, - the container runtime will allocate - a random SELinux context for each - container. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. Note that this field - cannot be set when spec.os.name is - windows. properties: level: - description: Level is SELinux level - label that applies to the container. type: string role: - description: Role is a SELinux role - label that applies to the container. type: string type: - description: Type is a SELinux type - label that applies to the container. type: string user: - description: User is a SELinux user - label that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to - use by this container. If seccomp - options are provided at both the pod - & container level, the container options - override the pod options. Note that - this field cannot be set when spec.os.name - is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile defined in a file on - the node should be used. The profile - must be preconfigured on the node - to work. Must be a descending - path, relative to the kubelet's - configured seccomp profile location. - Must be set if type is "Localhost". - Must NOT be set for any other - type. type: string type: - description: "type indicates which - kind of seccomp profile will be - applied. Valid options are: \n - Localhost - a profile defined - in a file on the node should be - used. RuntimeDefault - the container - runtime default profile should - be used. Unconfined - no profile - should be applied." type: string required: - type type: object windowsOptions: - description: The Windows specific settings - applied to all containers. If unspecified, - the options from the PodSecurityContext - will be used. If set in both SecurityContext - and PodSecurityContext, the value - specified in SecurityContext takes - precedence. Note that this field cannot - be set when spec.os.name is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec - is where the GMSA admission webhook - (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA - credential spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName - is the name of the GMSA credential - spec to use. type: string hostProcess: - description: HostProcess determines - if a container should be run as - a 'Host Process' container. All - of a Pod's containers must have - the same effective HostProcess - value (it is not allowed to have - a mix of HostProcess containers - and non-HostProcess containers). - In addition, if HostProcess is - true then HostNetwork must also - be set to true. type: boolean runAsUserName: - description: The UserName in Windows - to run the entrypoint of the container - process. Defaults to the user - specified in image metadata if - unspecified. May also be set in - PodSecurityContext. If set in - both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: string type: object type: object startupProbe: - description: 'StartupProbe indicates that - the Pod has successfully initialized. - If specified, no other probes are executed - until this completes successfully. If - this probe fails, the Pod will be restarted, - just as if the livenessProbe failed. This - can be used to provide different probe - parameters at the beginning of a Pod''s - lifecycle, when it might take a long time - to load data or warm a cache, than during - steady-state operation. This cannot be - updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the - command is root ('/') in the - container's filesystem. The command - is simply exec'd, it is not run - inside a shell, so traditional - shell instructions ('|', etc) - won't work. To use a shell, you - need to explicitly call out to - that shell. Exit status of 0 is - treated as live/healthy and non-zero - is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults to - 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action - involving a GRPC port. properties: port: - description: Port number of the - gRPC service. Number must be in - the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name - of the service to place in the - gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the - default behavior is defined by - gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in - httpHeaders instead. type: string httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood - as the same header. type: string value: - description: The header field - value type: string required: - name @@ -29251,170 +10760,61 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the - HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after - the container has started before liveness - probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) - to perform the probe. Default to 10 - seconds. Minimum value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. - Must be 1 for liveness and startup. - Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an - action involving a TCP port. properties: host: - description: 'Optional: Host name - to connect to, defaults to the - pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 - to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully - upon probe failure. The grace period - is the duration in seconds after the - processes running in the pod are sent - a termination signal and the time - when the processes are forcibly halted - with a kill signal. Set this value - longer than the expected cleanup time - for your process. If this value is - nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value - overrides the value provided by the - pod spec. Value must be non-negative - integer. The value zero indicates - stop immediately via the kill signal - (no opportunity to shut down). This - is a beta field and requires enabling - ProbeTerminationGracePeriod feature - gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after - which the probe times out. Defaults - to 1 second. Minimum value is 1. More - info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object stdin: - description: Whether this container should - allocate a buffer for stdin in the container - runtime. If this is not set, reads from - stdin in the container will always result - in EOF. Default is false. type: boolean stdinOnce: - description: Whether the container runtime - should close the stdin channel after it - has been opened by a single attach. When - stdin is true the stdin stream will remain - open across multiple attach sessions. - If stdinOnce is set to true, stdin is - opened on container start, is empty until - the first client attaches to stdin, and - then remains open and accepts data until - the client disconnects, at which time - stdin is closed and remains closed until - the container is restarted. If this flag - is false, a container processes that reads - from stdin will never receive an EOF. - Default is false type: boolean terminationMessagePath: - description: 'Optional: Path at which the - file to which the container''s termination - message will be written is mounted into - the container''s filesystem. Message written - is intended to be brief final status, - such as an assertion failure message. - Will be truncated by the node if greater - than 4096 bytes. The total message length - across all containers will be limited - to 12kb. Defaults to /dev/termination-log. - Cannot be updated.' type: string terminationMessagePolicy: - description: Indicate how the termination - message should be populated. File will - use the contents of terminationMessagePath - to populate the container status message - on both success and failure. FallbackToLogsOnError - will use the last chunk of container log - output if the termination message file - is empty and the container exited with - an error. The log output is limited to - 2048 bytes or 80 lines, whichever is smaller. - Defaults to File. Cannot be updated. type: string tty: - description: Whether this container should - allocate a TTY for itself, also requires - 'stdin' to be true. Default is false. type: boolean volumeDevices: - description: volumeDevices is the list of - block devices to be used by the container. items: - description: volumeDevice describes a - mapping of a raw block device within - a container. properties: devicePath: - description: devicePath is the path - inside of the container that the - device will be mapped to. type: string name: - description: name must match the name - of a persistentVolumeClaim in the - pod type: string required: - devicePath @@ -29425,78 +10825,21 @@ spec: - devicePath x-kubernetes-list-type: map volumeMounts: - description: Pod volumes to mount into the - container's filesystem. Cannot be updated. items: - description: VolumeMount describes a mounting - of a Volume within a container. properties: mountPath: - description: Path within the container - at which the volume should be mounted. Must - not contain ':'. type: string mountPropagation: - description: mountPropagation determines - how mounts are propagated from the - host to container and the other - way around. When not set, MountPropagationNone - is used. This field is beta in 1.10. - When RecursiveReadOnly is set to - IfPossible or to Enabled, MountPropagation - must be None or unspecified (which - defaults to None). type: string name: - description: This must match the Name - of a Volume. type: string readOnly: - description: Mounted read-only if - true, read-write otherwise (false - or unspecified). Defaults to false. type: boolean recursiveReadOnly: - description: "RecursiveReadOnly specifies - whether read-only mounts should - be handled recursively. \n If ReadOnly - is false, this field has no meaning - and must be unspecified. \n If ReadOnly - is true, and this field is set to - Disabled, the mount is not made - recursively read-only. If this - field is set to IfPossible, the - mount is made recursively read-only, - if it is supported by the container - runtime. If this field is set to - Enabled, the mount is made recursively - read-only if it is supported by - the container runtime, otherwise - the pod will not be started and - an error will be generated to indicate - the reason. \n If this field is - set to IfPossible or Enabled, MountPropagation - must be set to None (or be unspecified, - which defaults to None). \n If this - field is not specified, it is treated - as an equivalent of Disabled." type: string subPath: - description: Path within the volume - from which the container's volume - should be mounted. Defaults to "" - (volume's root). type: string subPathExpr: - description: Expanded path within - the volume from which the container's - volume should be mounted. Behaves - similarly to SubPath but environment - variable references $(VAR_NAME) - are expanded using the container's - environment. Defaults to "" (volume's - root). SubPathExpr and SubPath are - mutually exclusive. type: string required: - mountPath @@ -29507,78 +10850,33 @@ spec: - mountPath x-kubernetes-list-type: map workingDir: - description: Container's working directory. - If not specified, the container runtime's - default will be used, which might be configured - in the container image. Cannot be updated. type: string required: - name type: object type: array lifecycle: - description: Actions that the management system - should take in response to container lifecycle - events. Cannot be updated. properties: postStart: - description: 'PostStart is called immediately - after a container is created. If the handler - fails, the container is terminated and restarted - according to its restart policy. Other management - of the container blocks until the hook completes. - More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it - is not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to - explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in httpHeaders - instead. type: string httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood as - the same header. type: string value: - description: The header field - value type: string required: - name @@ -29587,131 +10885,58 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the - HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 to - 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration - that the container should sleep before - being terminated. properties: seconds: - description: Seconds is the number - of seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is - NOT supported as a LifecycleHandler - and kept for the backward compatibility. - There are no validation of this field - and lifecycle hooks will fail in runtime - when tcp handler is specified. properties: host: - description: 'Optional: Host name - to connect to, defaults to the pod - IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 to - 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object type: object preStop: - description: 'PreStop is called immediately - before a container is terminated due to - an API request or management event such - as liveness/startup probe failure, preemption, - resource contention, etc. The handler is - not called if the container crashes or exits. - The Pod''s termination grace period countdown - begins before the PreStop hook is executed. - Regardless of the outcome of the handler, - the container will eventually terminate - within the Pod''s termination grace period - (unless delayed by finalizers). Other management - of the container blocks until the hook completes - or until the termination grace period is - reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action - to take. properties: command: - description: Command is the command - line to execute inside the container, - the working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it - is not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to - explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http - request to perform. properties: host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in httpHeaders - instead. type: string httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes properties: name: - description: The header field - name. This will be canonicalized - upon output, so case-variant - names will be understood as - the same header. type: string value: - description: The header field - value type: string required: - name @@ -29720,59 +10945,33 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the - HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 to - 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration - that the container should sleep before - being terminated. properties: seconds: - description: Seconds is the number - of seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is - NOT supported as a LifecycleHandler - and kept for the backward compatibility. - There are no validation of this field - and lifecycle hooks will fail in runtime - when tcp handler is specified. properties: host: - description: 'Optional: Host name - to connect to, defaults to the pod - IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 to - 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port @@ -29780,85 +10979,38 @@ spec: type: object type: object livenessProbe: - description: 'Periodic probe of container liveness. - Container will be restarted if the probe fails. - Controllers may set default LivenessProbe if - no liveness probe is provided. To ignore defaulting, - set the value to empty LivenessProbe "{}". Cannot - be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to - take. properties: command: - description: Command is the command line - to execute inside the container, the - working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it is - not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to explicitly - call out to that shell. Exit status - of 0 is treated as live/healthy and - non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed after - having succeeded. Defaults to 3. Minimum - value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving - a GRPC port. properties: port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name of the - service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default - behavior is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http request - to perform. properties: host: - description: Host name to connect to, - defaults to the pod IP. You probably - want to set "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated headers. items: - description: HTTPHeader describes a - custom header to be used in HTTP probes properties: name: - description: The header field name. - This will be canonicalized upon - output, so case-variant names - will be understood as the same - header. type: string value: - description: The header field value type: string required: - name @@ -29867,222 +11019,95 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP - server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the - container has started before liveness probes - are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform - the probe. Default to 10 seconds. Minimum - value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. Must - be 1 for liveness and startup. Minimum value - is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action - involving a TCP port. properties: host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully upon - probe failure. The grace period is the duration - in seconds after the processes running in - the pod are sent a termination signal and - the time when the processes are forcibly - halted with a kill signal. Set this value - longer than the expected cleanup time for - your process. If this value is nil, the - pod's terminationGracePeriodSeconds will - be used. Otherwise, this value overrides - the value provided by the pod spec. Value - must be non-negative integer. The value - zero indicates stop immediately via the - kill signal (no opportunity to shut down). - This is a beta field and requires enabling - ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which - the probe times out. Defaults to 1 second. - Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object nodeSelector: additionalProperties: type: string - description: 'NodeSelector is a selector which - must be true for the pod to fit on a node. Selector - which must match a node''s labels for the pod - to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/' type: object x-kubernetes-map-type: atomic podPlacementPolicy: - description: PodPlacementPolicy is the reference - of the podPlacementPolicy properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other - useful fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic priority: - description: The priority value. Various system - components use this field to find the priority - of the pod. When Priority Admission Controller - is enabled, it prevents users from setting this - field. The admission controller populates this - field from PriorityClassName. The higher the - value, the higher the priority. format: int32 type: integer priorityClassName: - description: If specified, indicates the pod's - priority. "system-node-critical" and "system-cluster-critical" - are two special keywords which indicate the - highest priorities with the former being the - highest priority. Any other name must be defined - by creating a PriorityClass object with that - name. If not specified, the pod priority will - be default or zero if there is no default. type: string readinessProbe: - description: 'Periodic probe of container service - readiness. Container will be removed from service - endpoints if the probe fails. Cannot be updated. - Controllers may set default ReadinessProbe if - no readyness probe is provided. To ignore defaulting, - set the value to empty ReadynessProbe "{}". - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to - take. properties: command: - description: Command is the command line - to execute inside the container, the - working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it is - not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to explicitly - call out to that shell. Exit status - of 0 is treated as live/healthy and - non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed after - having succeeded. Defaults to 3. Minimum - value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving - a GRPC port. properties: port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name of the - service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default - behavior is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http request - to perform. properties: host: - description: Host name to connect to, - defaults to the pod IP. You probably - want to set "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated headers. items: - description: HTTPHeader describes a - custom header to be used in HTTP probes properties: name: - description: The header field name. - This will be canonicalized upon - output, so case-variant names - will be understood as the same - header. type: string value: - description: The header field value type: string required: - name @@ -30091,115 +11116,51 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP - server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the - container has started before liveness probes - are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform - the probe. Default to 10 seconds. Minimum - value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. Must - be 1 for liveness and startup. Minimum value - is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action - involving a TCP port. properties: host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully upon - probe failure. The grace period is the duration - in seconds after the processes running in - the pod are sent a termination signal and - the time when the processes are forcibly - halted with a kill signal. Set this value - longer than the expected cleanup time for - your process. If this value is nil, the - pod's terminationGracePeriodSeconds will - be used. Otherwise, this value overrides - the value provided by the pod spec. Value - must be non-negative integer. The value - zero indicates stop immediately via the - kill signal (no opportunity to shut down). - This is a beta field and requires enabling - ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which - the probe times out. Defaults to 1 second. - Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object resources: - description: Compute Resources required by the - sidecar container. properties: claims: - description: "Claims lists the names of resources, - defined in spec.resourceClaims, that are - used by this container. \n This is an alpha - field and requires enabling the DynamicResourceAllocation - feature gate. \n This field is immutable. - It can only be set for containers." items: - description: ResourceClaim references one - entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name - of one entry in pod.spec.resourceClaims - of the Pod where this field is used. - It makes that resource available inside - a container. type: string required: - name @@ -30215,9 +11176,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum - amount of compute resources allowed. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -30226,216 +11184,68 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum - amount of compute resources required. If - Requests is omitted for a container, it - defaults to Limits if that is explicitly - specified, otherwise to an implementation-defined - value. Requests cannot exceed Limits. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object runtimeClassName: - description: 'RuntimeClassName refers to a RuntimeClass - object in the node.k8s.io group, which should - be used to run this pod. If no RuntimeClass - resource matches the named class, the pod will - not be run. If unset or empty, the "legacy" - RuntimeClass will be used, which is an implicit - class with an empty definition that uses the - default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class' type: string schedulerName: - description: If specified, the pod will be dispatched - by specified scheduler. If not specified, the - pod will be dispatched by default scheduler. type: string securityContext: - description: 'SecurityContext holds pod-level - security attributes and common container settings. - Optional: Defaults to empty. See type description - for default values of each field.' properties: appArmorProfile: - description: appArmorProfile is the AppArmor - options to use by the containers in this - pod. Note that this field cannot be set - when spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates - a profile loaded on the node that should - be used. The profile must be preconfigured - on the node to work. Must match the - loaded name of the profile. Must be - set if and only if type is "Localhost". type: string type: - description: 'type indicates which kind - of AppArmor profile will be applied. - Valid options are: Localhost - a profile - pre-loaded on the node. RuntimeDefault - - the container runtime''s default profile. - Unconfined - no AppArmor enforcement.' type: string required: - type type: object fsGroup: - description: "A special supplemental group - that applies to all containers in a pod. - Some volume types allow the Kubelet to change - the ownership of that volume to be owned - by the pod: \n 1. The owning GID will be - the FSGroup 2. The setgid bit is set (new - files created in the volume will be owned - by FSGroup) 3. The permission bits are OR'd - with rw-rw---- \n If unset, the Kubelet - will not modify the ownership and permissions - of any volume. Note that this field cannot - be set when spec.os.name is windows." format: int64 type: integer fsGroupChangePolicy: - description: 'fsGroupChangePolicy defines - behavior of changing ownership and permission - of the volume before being exposed inside - Pod. This field will only apply to volume - types which support fsGroup based ownership(and - permissions). It will have no effect on - ephemeral volume types such as: secret, - configmaps and emptydir. Valid values are - "OnRootMismatch" and "Always". If not specified, - "Always" is used. Note that this field cannot - be set when spec.os.name is windows.' type: string runAsGroup: - description: The GID to run the entrypoint - of the container process. Uses runtime default - if unset. May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence for that container. Note that - this field cannot be set when spec.os.name - is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container - must run as a non-root user. If true, the - Kubelet will validate the image at runtime - to ensure that it does not run as UID 0 - (root) and fail to start the container if - it does. If unset or false, no such validation - will be performed. May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. type: boolean runAsUser: - description: The UID to run the entrypoint - of the container process. Defaults to user - specified in image metadata if unspecified. - May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence for that container. Note that - this field cannot be set when spec.os.name - is windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be applied - to all containers. If unspecified, the container - runtime will allocate a random SELinux context - for each container. May also be set in - SecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence for - that container. Note that this field cannot - be set when spec.os.name is windows. properties: level: - description: Level is SELinux level label - that applies to the container. type: string role: - description: Role is a SELinux role label - that applies to the container. type: string type: - description: Type is a SELinux type label - that applies to the container. type: string user: - description: User is a SELinux user label - that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to use by - the containers in this pod. Note that this - field cannot be set when spec.os.name is - windows. properties: localhostProfile: - description: localhostProfile indicates - a profile defined in a file on the node - should be used. The profile must be - preconfigured on the node to work. Must - be a descending path, relative to the - kubelet's configured seccomp profile - location. Must be set if type is "Localhost". - Must NOT be set for any other type. type: string type: - description: "type indicates which kind - of seccomp profile will be applied. - Valid options are: \n Localhost - a - profile defined in a file on the node - should be used. RuntimeDefault - the - container runtime default profile should - be used. Unconfined - no profile should - be applied." type: string required: - type type: object supplementalGroups: - description: A list of groups applied to the - first process run in each container, in - addition to the container's primary GID, - the fsGroup (if specified), and group memberships - defined in the container image for the uid - of the container process. If unspecified, - no additional groups are added to any container. - Note that group memberships defined in the - container image for the uid of the container - process are still effective, even if they - are not included in this list. Note that - this field cannot be set when spec.os.name - is windows. items: format: int64 type: integer type: array x-kubernetes-list-type: atomic sysctls: - description: Sysctls hold a list of namespaced - sysctls used for the pod. Pods with unsupported - sysctls (by the container runtime) might - fail to launch. Note that this field cannot - be set when spec.os.name is windows. items: - description: Sysctl defines a kernel parameter - to be set properties: name: - description: Name of a property to set type: string value: - description: Value of a property to - set type: string required: - name @@ -30444,178 +11254,53 @@ spec: type: array x-kubernetes-list-type: atomic windowsOptions: - description: The Windows specific settings - applied to all containers. If unspecified, - the options within a container's SecurityContext - will be used. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. Note - that this field cannot be set when spec.os.name - is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is where - the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA credential - spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName is - the name of the GMSA credential spec - to use. type: string hostProcess: - description: HostProcess determines if - a container should be run as a 'Host - Process' container. All of a Pod's containers - must have the same effective HostProcess - value (it is not allowed to have a mix - of HostProcess containers and non-HostProcess - containers). In addition, if HostProcess - is true then HostNetwork must also be - set to true. type: boolean runAsUserName: - description: The UserName in Windows to - run the entrypoint of the container - process. Defaults to the user specified - in image metadata if unspecified. May - also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. type: string type: object type: object serviceAccountName: - description: 'ServiceAccountName is the name of - the ServiceAccount to use to run this pod. More - info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/' type: string shareProcessNamespace: - description: 'Share a single process namespace - between all of the containers in a pod. When - this is set containers will be able to view - and signal processes from other containers in - the same pod, and the first process in each - container will not be assigned PID 1. HostPID - and ShareProcessNamespace cannot both be set. - Optional: Default to false.' type: boolean terminationGracePeriodSeconds: - description: Optional duration in seconds the - pod needs to terminate gracefully. May be decreased - in delete request. Value must be non-negative - integer. The value zero indicates stop immediately - via the kill signal (no opportunity to shut - down). If this value is nil, the default grace - period will be used instead. The grace period - is the duration in seconds after the processes - running in the pod are sent a termination signal - and the time when the processes are forcibly - halted with a kill signal. Set this value longer - than the expected cleanup time for your process. - Defaults to 30 seconds. format: int64 type: integer tolerations: - description: If specified, the pod's tolerations. items: - description: The pod this Toleration is attached - to tolerates any taint that matches the triple - using the matching operator - . properties: effect: - description: Effect indicates the taint - effect to match. Empty means match all - taint effects. When specified, allowed - values are NoSchedule, PreferNoSchedule - and NoExecute. type: string key: - description: Key is the taint key that the - toleration applies to. Empty means match - all taint keys. If the key is empty, operator - must be Exists; this combination means - to match all values and all keys. type: string operator: - description: Operator represents a key's - relationship to the value. Valid operators - are Exists and Equal. Defaults to Equal. - Exists is equivalent to wildcard for value, - so that a pod can tolerate all taints - of a particular category. type: string tolerationSeconds: - description: TolerationSeconds represents - the period of time the toleration (which - must be of effect NoExecute, otherwise - this field is ignored) tolerates the taint. - By default, it is not set, which means - tolerate the taint forever (do not evict). - Zero and negative values will be treated - as 0 (evict immediately) by the system. format: int64 type: integer value: - description: Value is the taint value the - toleration matches to. If the operator - is Exists, the value should be empty, - otherwise just a regular string. type: string type: object type: array topologySpreadConstraints: - description: TopologySpreadConstraints describes - how a group of pods ought to spread across topology - domains. Scheduler will schedule pods in a way - which abides by the constraints. All topologySpreadConstraints - are ANDed. items: - description: TopologySpreadConstraint specifies - how to spread matching pods among the given - topology. properties: labelSelector: - description: LabelSelector is used to find - matching pods. Pods that match this label - selector are counted to determine the - number of pods in their corresponding - topology domain. properties: matchExpressions: - description: matchExpressions is a list - of label selector requirements. The - requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to a set - of values. Valid operators are - In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array - of string values. If the operator - is In or NotIn, the values array - must be non-empty. If the operator - is Exists or DoesNotExist, the - values array must be empty. - This array is replaced during - a strategic merge patch. items: type: string type: array @@ -30629,172 +11314,27 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of - {key,value} pairs. A single {key,value} - in the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: "MatchLabelKeys is a set of - pod label keys to select the pods over - which spreading will be calculated. The - keys are used to lookup values from the - incoming pod labels, those key-value labels - are ANDed with labelSelector to select - the group of existing pods over which - spreading will be calculated for the incoming - pod. The same key is forbidden to exist - in both MatchLabelKeys and LabelSelector. - MatchLabelKeys cannot be set when LabelSelector - isn't set. Keys that don't exist in the - incoming pod labels will be ignored. A - null or empty list means only match against - labelSelector. \n This is a beta field - and requires the MatchLabelKeysInPodTopologySpread - feature gate to be enabled (enabled by - default)." items: type: string type: array x-kubernetes-list-type: atomic maxSkew: - description: 'MaxSkew describes the degree - to which pods may be unevenly distributed. - When `whenUnsatisfiable=DoNotSchedule`, - it is the maximum permitted difference - between the number of matching pods in - the target topology and the global minimum. - The global minimum is the minimum number - of matching pods in an eligible domain - or zero if the number of eligible domains - is less than MinDomains. For example, - in a 3-zone cluster, MaxSkew is set to - 1, and pods with the same labelSelector - spread as 2/2/1: In this case, the global - minimum is 1. | zone1 | zone2 | zone3 - | | P P | P P | P | - if MaxSkew - is 1, incoming pod can only be scheduled - to zone3 to become 2/2/2; scheduling it - onto zone1(zone2) would make the ActualSkew(3-1) - on zone1(zone2) violate MaxSkew(1). - - if MaxSkew is 2, incoming pod can be scheduled - onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, - it is used to give higher precedence to - topologies that satisfy it. It''s a required - field. Default value is 1 and 0 is not - allowed.' format: int32 type: integer minDomains: - description: "MinDomains indicates a minimum - number of eligible domains. When the number - of eligible domains with matching topology - keys is less than minDomains, Pod Topology - Spread treats \"global minimum\" as 0, - and then the calculation of Skew is performed. - And when the number of eligible domains - with matching topology keys equals or - greater than minDomains, this value has - no effect on scheduling. As a result, - when the number of eligible domains is - less than minDomains, scheduler won't - schedule more than maxSkew Pods to those - domains. If value is nil, the constraint - behaves as if MinDomains is equal to 1. - Valid values are integers greater than - 0. When value is not nil, WhenUnsatisfiable - must be DoNotSchedule. \n For example, - in a 3-zone cluster, MaxSkew is set to - 2, MinDomains is set to 5 and pods with - the same labelSelector spread as 2/2/2: - | zone1 | zone2 | zone3 | | P P | P - P | P P | The number of domains is - less than 5(MinDomains), so \"global minimum\" - is treated as 0. In this situation, new - pod with the same labelSelector cannot - be scheduled, because computed skew will - be 3(3 - 0) if new Pod is scheduled to - any of the three zones, it will violate - MaxSkew." format: int32 type: integer nodeAffinityPolicy: - description: "NodeAffinityPolicy indicates - how we will treat Pod's nodeAffinity/nodeSelector - when calculating pod topology spread skew. - Options are: - Honor: only nodes matching - nodeAffinity/nodeSelector are included - in the calculations. - Ignore: nodeAffinity/nodeSelector - are ignored. All nodes are included in - the calculations. \n If this value is - nil, the behavior is equivalent to the - Honor policy. This is a beta-level feature - default enabled by the NodeInclusionPolicyInPodTopologySpread - feature flag." type: string nodeTaintsPolicy: - description: "NodeTaintsPolicy indicates - how we will treat node taints when calculating - pod topology spread skew. Options are: - - Honor: nodes without taints, along with - tainted nodes for which the incoming pod - has a toleration, are included. - Ignore: - node taints are ignored. All nodes are - included. \n If this value is nil, the - behavior is equivalent to the Ignore policy. - This is a beta-level feature default enabled - by the NodeInclusionPolicyInPodTopologySpread - feature flag." type: string topologyKey: - description: TopologyKey is the key of node - labels. Nodes that have a label with this - key and identical values are considered - to be in the same topology. We consider - each as a "bucket", and try - to put balanced number of pods into each - bucket. We define a domain as a particular - instance of a topology. Also, we define - an eligible domain as a domain whose nodes - meet the requirements of nodeAffinityPolicy - and nodeTaintsPolicy. e.g. If TopologyKey - is "kubernetes.io/hostname", each Node - is a domain of that topology. And, if - TopologyKey is "topology.kubernetes.io/zone", - each zone is a domain of that topology. - It's a required field. type: string whenUnsatisfiable: - description: 'WhenUnsatisfiable indicates - how to deal with a pod if it doesn''t - satisfy the spread constraint. - DoNotSchedule - (default) tells the scheduler not to schedule - it. - ScheduleAnyway tells the scheduler - to schedule the pod in any location, but - giving higher precedence to topologies - that would help reduce the skew. A constraint - is considered "Unsatisfiable" for an incoming - pod if and only if every possible node - assignment for that pod would violate - "MaxSkew" on some topology. For example, - in a 3-zone cluster, MaxSkew is set to - 1, and pods with the same labelSelector - spread as 3/1/1: | zone1 | zone2 | zone3 - | | P P P | P | P | If WhenUnsatisfiable - is set to DoNotSchedule, incoming pod - can only be scheduled to zone2(zone3) - to become 3/2/1(3/1/2) as ActualSkew(2-1) - on zone2(zone3) satisfies MaxSkew(1). - In other words, the cluster can still - be imbalanced, but scheduler won''t make - it *more* imbalanced. It''s a required - field.' type: string required: - maxSkew @@ -30807,72 +11347,21 @@ spec: - whenUnsatisfiable x-kubernetes-list-type: map volumeMounts: - description: Pod volumes to mount into the container's - filesystem. Cannot be updated. items: - description: VolumeMount describes a mounting - of a Volume within a container. properties: mountPath: - description: Path within the container at - which the volume should be mounted. Must - not contain ':'. type: string mountPropagation: - description: mountPropagation determines - how mounts are propagated from the host - to container and the other way around. - When not set, MountPropagationNone is - used. This field is beta in 1.10. When - RecursiveReadOnly is set to IfPossible - or to Enabled, MountPropagation must be - None or unspecified (which defaults to - None). type: string name: - description: This must match the Name of - a Volume. type: string readOnly: - description: Mounted read-only if true, - read-write otherwise (false or unspecified). - Defaults to false. type: boolean recursiveReadOnly: - description: "RecursiveReadOnly specifies - whether read-only mounts should be handled - recursively. \n If ReadOnly is false, - this field has no meaning and must be - unspecified. \n If ReadOnly is true, and - this field is set to Disabled, the mount - is not made recursively read-only. If - this field is set to IfPossible, the mount - is made recursively read-only, if it is - supported by the container runtime. If - this field is set to Enabled, the mount - is made recursively read-only if it is - supported by the container runtime, otherwise - the pod will not be started and an error - will be generated to indicate the reason. - \n If this field is set to IfPossible - or Enabled, MountPropagation must be set - to None (or be unspecified, which defaults - to None). \n If this field is not specified, - it is treated as an equivalent of Disabled." type: string subPath: - description: Path within the volume from - which the container's volume should be - mounted. Defaults to "" (volume's root). type: string subPathExpr: - description: Expanded path within the volume - from which the container's volume should - be mounted. Behaves similarly to SubPath - but environment variable references $(VAR_NAME) - are expanded using the container's environment. - Defaults to "" (volume's root). SubPathExpr - and SubPath are mutually exclusive. type: string required: - mountPath @@ -30880,300 +11369,109 @@ spec: type: object type: array volumes: - description: 'List of volumes that can be mounted - by containers belonging to the pod. More info: - https://kubernetes.io/docs/concepts/storage/volumes' items: - description: Volume represents a named volume - in a pod that may be accessed by any container - in the pod. properties: awsElasticBlockStore: - description: 'awsElasticBlockStore represents - an AWS Disk resource that is attached - to a kubelet''s host machine and then - exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' properties: fsType: - description: 'fsType is the filesystem - type of the volume that you want to - mount. Tip: Ensure that the filesystem - type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in - the filesystem from compromising the - machine' type: string partition: - description: 'partition is the partition - in the volume that you want to mount. - If omitted, the default is to mount - by volume name. Examples: For volume - /dev/sda1, you specify the partition - as "1". Similarly, the volume partition - for /dev/sda is "0" (or you can leave - the property empty).' format: int32 type: integer readOnly: - description: 'readOnly value true will - force the readOnly setting in VolumeMounts. - More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: boolean volumeID: - description: 'volumeID is unique ID - of the persistent disk resource in - AWS (Amazon EBS volume). More info: - https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: string required: - volumeID type: object azureDisk: - description: azureDisk represents an Azure - Data Disk mount on the host and bind mount - to the pod. properties: cachingMode: - description: 'cachingMode is the Host - Caching mode: None, Read Only, Read - Write.' type: string diskName: - description: diskName is the Name of - the data disk in the blob storage type: string diskURI: - description: diskURI is the URI of data - disk in the blob storage type: string fsType: - description: fsType is Filesystem type - to mount. Must be a filesystem type - supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string kind: - description: 'kind expected values are - Shared: multiple blob disks per storage - account Dedicated: single blob disk - per storage account Managed: azure - managed data disk (only in managed - availability set). defaults to shared' type: string readOnly: - description: readOnly Defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean required: - diskName - diskURI type: object azureFile: - description: azureFile represents an Azure - File Service mount on the host and bind - mount to the pod. properties: readOnly: - description: readOnly defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean secretName: - description: secretName is the name - of secret that contains Azure Storage - Account Name and Key type: string shareName: - description: shareName is the azure - share Name type: string required: - secretName - shareName type: object cephfs: - description: cephFS represents a Ceph FS - mount on the host that shares a pod's - lifetime properties: monitors: - description: 'monitors is Required: - Monitors is a collection of Ceph monitors - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic path: - description: 'path is Optional: Used - as the mounted root, rather than the - full Ceph tree, default is /' type: string readOnly: - description: 'readOnly is Optional: - Defaults to false (read/write). ReadOnly - here will force the ReadOnly setting - in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: boolean secretFile: - description: 'secretFile is Optional: - SecretFile is the path to key ring - for User, default is /etc/ceph/user.secret - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string secretRef: - description: 'secretRef is Optional: - SecretRef is reference to the authentication - secret for User, default is empty. - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is optional: User - is the rados user name, default is - admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string required: - monitors type: object cinder: - description: 'cinder represents a cinder - volume attached and mounted on kubelets - host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' properties: fsType: - description: 'fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string readOnly: - description: 'readOnly defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. - More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: boolean secretRef: - description: 'secretRef is optional: - points to a secret object containing - parameters used to connect to OpenStack.' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeID: - description: 'volumeID used to identify - the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string required: - volumeID type: object configMap: - description: configMap represents a configMap - that should populate this volume properties: defaultMode: - description: 'defaultMode is optional: - mode bits used to set permissions - on created files by default. Must - be an octal value between 0000 and - 0777 or a decimal value between 0 - and 511. YAML accepts both octal and - decimal values, JSON requires decimal - values for mode bits. Defaults to - 0644. Directories within the path - are not affected by this setting. - This might be in conflict with other - options that affect the file mode, - like fsGroup, and the result can be - other mode bits set.' format: int32 type: integer items: - description: items if unspecified, each - key-value pair in the Data field of - the referenced ConfigMap will be projected - into the volume as a file whose name - is the key and content is the value. - If specified, the listed keys will - be projected into the specified paths, - and unlisted keys will not be present. - If a key is specified which is not - present in the ConfigMap, the volume - setup will error unless it is marked - optional. Paths must be relative and - may not contain the '..' path or start - with '..'. items: - description: Maps a string key to - a path within a volume. properties: key: - description: key is the key to - project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an octal - value between 0000 and 0777 - or a decimal value between 0 - and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. - If not specified, the volume - defaultMode will be used. This - might be in conflict with other - options that affect the file - mode, like fsGroup, and the - result can be other mode bits - set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the - key to. May not be an absolute - path. May not contain the path - element '..'. May not start - with the string '..'. type: string required: - key @@ -31183,191 +11481,67 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value here - are almost certainly wrong. TODO: - Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether - the ConfigMap or its keys must be - defined type: boolean type: object x-kubernetes-map-type: atomic csi: - description: csi (Container Storage Interface) - represents ephemeral storage that is handled - by certain external CSI drivers (Beta - feature). properties: driver: - description: driver is the name of the - CSI driver that handles this volume. - Consult with your admin for the correct - name as registered in the cluster. type: string fsType: - description: fsType to mount. Ex. "ext4", - "xfs", "ntfs". If not provided, the - empty value is passed to the associated - CSI driver which will determine the - default filesystem to apply. type: string nodePublishSecretRef: - description: nodePublishSecretRef is - a reference to the secret object containing - sensitive information to pass to the - CSI driver to complete the CSI NodePublishVolume - and NodeUnpublishVolume calls. This - field is optional, and may be empty - if no secret is required. If the secret - object contains more than one secret, - all secret references are passed. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic readOnly: - description: readOnly specifies a read-only - configuration for the volume. Defaults - to false (read/write). type: boolean volumeAttributes: additionalProperties: type: string - description: volumeAttributes stores - driver-specific properties that are - passed to the CSI driver. Consult - your driver's documentation for supported - values. type: object required: - driver type: object downwardAPI: - description: downwardAPI represents downward - API about the pod that should populate - this volume properties: defaultMode: - description: 'Optional: mode bits to - use on created files by default. Must - be a Optional: mode bits used to set - permissions on created files by default. - Must be an octal value between 0000 - and 0777 or a decimal value between - 0 and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. Defaults - to 0644. Directories within the path - are not affected by this setting. - This might be in conflict with other - options that affect the file mode, - like fsGroup, and the result can be - other mode bits set.' format: int32 type: integer items: - description: Items is a list of downward - API volume file items: - description: DownwardAPIVolumeFile - represents information to create - the file containing the pod field properties: fieldRef: - description: 'Required: Selects - a field of the pod: only annotations, - labels, name, namespace and - uid are supported.' properties: apiVersion: - description: Version of the - schema the FieldPath is - written in terms of, defaults - to "v1". type: string fieldPath: - description: Path of the field - to select in the specified - API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode bits - used to set permissions on this - file, must be an octal value - between 0000 and 0777 or a decimal - value between 0 and 511. YAML - accepts both octal and decimal - values, JSON requires decimal - values for mode bits. If not - specified, the volume defaultMode - will be used. This might be - in conflict with other options - that affect the file mode, like - fsGroup, and the result can - be other mode bits set.' format: int32 type: integer path: - description: 'Required: Path is the - relative path name of the file - to be created. Must not be absolute - or contain the ''..'' path. - Must be utf-8 encoded. The first - item of the relative path must - not start with ''..''' type: string resourceFieldRef: - description: 'Selects a resource - of the container: only resources - limits and requests (limits.cpu, - limits.memory, requests.cpu - and requests.memory) are currently - supported.' properties: containerName: - description: 'Container name: - required for volumes, optional - for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the - output format of the exposed - resources, defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource - to select' type: string required: - resource @@ -31380,251 +11554,50 @@ spec: x-kubernetes-list-type: atomic type: object emptyDir: - description: 'emptyDir represents a temporary - directory that shares a pod''s lifetime. - More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' properties: medium: - description: 'medium represents what - type of storage medium should back - this directory. The default is "" - which means to use the node''s default - medium. Must be an empty string (default) - or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' type: string sizeLimit: anyOf: - type: integer - type: string - description: 'sizeLimit is the total - amount of local storage required for - this EmptyDir volume. The size limit - is also applicable for memory medium. - The maximum usage on memory medium - EmptyDir would be the minimum value - between the SizeLimit specified here - and the sum of memory limits of all - containers in a pod. The default is - nil which means that the limit is - undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object ephemeral: - description: "ephemeral represents a volume - that is handled by a cluster storage driver. - The volume's lifecycle is tied to the - pod that defines it - it will be created - before the pod starts, and deleted when - the pod is removed. \n Use this if: a) - the volume is only needed while the pod - runs, b) features of normal volumes like - restoring from snapshot or capacity tracking - are needed, c) the storage driver is specified - through a storage class, and d) the storage - driver supports dynamic volume provisioning - through a PersistentVolumeClaim (see EphemeralVolumeSource - for more information on the connection - between this volume type and PersistentVolumeClaim). - \n Use PersistentVolumeClaim or one of - the vendor-specific APIs for volumes that - persist for longer than the lifecycle - of an individual pod. \n Use CSI for light-weight - local ephemeral volumes if the CSI driver - is meant to be used that way - see the - documentation of the driver for more information. - \n A pod can use both types of ephemeral - volumes and persistent volumes at the - same time." properties: volumeClaimTemplate: - description: "Will be used to create - a stand-alone PVC to provision the - volume. The pod in which this EphemeralVolumeSource - is embedded will be the owner of the - PVC, i.e. the PVC will be deleted - together with the pod. The name of - the PVC will be `-` where `` is the - name from the `PodSpec.Volumes` array - entry. Pod validation will reject - the pod if the concatenated name is - not valid for a PVC (for example, - too long). \n An existing PVC with - that name that is not owned by the - pod will *not* be used for the pod - to avoid using an unrelated volume - by mistake. Starting the pod is then - blocked until the unrelated PVC is - removed. If such a pre-created PVC - is meant to be used by the pod, the - PVC has to updated with an owner reference - to the pod once the pod exists. Normally - this should not be necessary, but - it may be useful when manually reconstructing - a broken cluster. \n This field is - read-only and no changes will be made - by Kubernetes to the PVC after it - has been created. \n Required, must - not be nil." properties: metadata: - description: May contain labels - and annotations that will be copied - into the PVC when creating it. - No other fields are allowed and - will be rejected during validation. properties: annotations: additionalProperties: type: string - description: 'Annotations is - an unstructured key value - map stored with a resource - that may be set by external - tools to store and retrieve - arbitrary metadata. They are - not queryable and should be - preserved when modifying objects. - More info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName is - an optional prefix, used by - the server, to generate a - unique name ONLY IF the Name - field has not been provided. - If this field is used, the - name returned to the client - will be different than the - name passed. This value will - also be combined with a unique - suffix. The provided value - has the same validation rules - as the Name field, and may - be truncated by the length - of the suffix required to - make the value unique on the - server. \n If this field is - specified and the generated - name exists, the server will - NOT return a 409 - instead, - it will either return 201 - Created or 500 with Reason - ServerTimeout indicating a - unique name could not be found - in the time allotted, and - the client should retry (optionally - after the time indicated in - the Retry-After header). \n - Applied only if Name is not - specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string - keys and values that can be - used to organize and categorize - (scope and select) objects. - May match selectors of replication - controllers and services. - More info: http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must be unique - within a namespace. Is required - when creating resources, although - some resources may allow a - client to request the generation - of an appropriate name automatically. - Name is primarily intended - for creation idempotence and - configuration definition. - Cannot be updated. More info: - http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace defines - the space within each name - must be unique. An empty namespace - is equivalent to the \"default\" - namespace, but \"default\" - is the canonical representation. - Not all objects are required - to be scoped to a namespace - - the value of this field - for those objects will be - empty. \n Must be a DNS_LABEL. - Cannot be updated. More info: - http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects - depended by this object. If - ALL objects in the list have - been deleted, this object - will be garbage collected. - If this object is managed - by a controller, then an entry - in this list will point to - this controller, with the - controller field set to true. - There cannot be more than - one managing controller. items: - description: OwnerReference - contains enough information - to let you identify an owning - object. An owning object - must be in the same namespace - as the dependent, or be - cluster-scoped, so there - is no namespace field. properties: apiVersion: - description: API version - of the referent. type: string blockOwnerDeletion: - description: If true, - AND if the owner has - the "foregroundDeletion" - finalizer, then the - owner cannot be deleted - from the key-value store - until this reference - is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage - collector interacts - with this field and - enforces the foreground - deletion. Defaults to - false. To set this field, - a user needs "delete" - permission of the owner, - otherwise 422 (Unprocessable - Entity) will be returned. type: boolean controller: - description: If true, - this reference points - to the managing controller. type: boolean kind: - description: 'Kind of - the referent. More info: - https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of - the referent. More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the - referent. More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -31636,63 +11609,19 @@ spec: type: array type: object spec: - description: The specification for - the PersistentVolumeClaim. The - entire content is copied unchanged - into the PVC that gets created - from this template. The same fields - as in a PersistentVolumeClaim - are also valid here. properties: accessModes: - description: 'accessModes contains - the desired access modes the - volume should have. More info: - https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource field - can be used to specify either: - * An existing VolumeSnapshot - object (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an external - controller can support the - specified data source, it - will create a new volume based - on the contents of the specified - data source. When the AnyVolumeDataSource - feature gate is enabled, dataSource - contents will be copied to - dataSourceRef, and dataSourceRef - contents will be copied to - dataSource when dataSourceRef.namespace - is not specified. If the namespace - is specified, then dataSourceRef - will not be copied to dataSource.' properties: apiGroup: - description: APIGroup is - the group for the resource - being referenced. If APIGroup - is not specified, the - specified Kind must be - in the core API group. - For any other third-party - types, APIGroup is required. type: string kind: - description: Kind is the - type of resource being - referenced type: string name: - description: Name is the - name of resource being - referenced type: string required: - kind @@ -31700,110 +11629,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef - specifies the object from - which to populate the volume - with data, if a non-empty - volume is desired. This may - be any object from a non-empty - API group (non core object) - or a PersistentVolumeClaim - object. When this field is - specified, volume binding - will only succeed if the type - of the specified object matches - some installed volume populator - or dynamic provisioner. This - field will replace the functionality - of the dataSource field and - as such if both fields are - non-empty, they must have - the same value. For backwards - compatibility, when namespace - isn''t specified in dataSourceRef, - both fields (dataSource and - dataSourceRef) will be set - to the same value automatically - if one of them is empty and - the other is non-empty. When - namespace is specified in - dataSourceRef, dataSource - isn''t set to the same value - and must be empty. There are - three important differences - between dataSource and dataSourceRef: - * While dataSource only allows - two specific types of objects, - dataSourceRef allows any non-core - object, as well as PersistentVolumeClaim - objects. * While dataSource - ignores disallowed values - (dropping them), dataSourceRef - preserves all values, and - generates an error if a disallowed - value is specified. * While - dataSource only allows local - objects, dataSourceRef allows - objects in any namespaces. - (Beta) Using this field requires - the AnyVolumeDataSource feature - gate to be enabled. (Alpha) - Using the namespace field - of dataSourceRef requires - the CrossNamespaceVolumeDataSource - feature gate to be enabled.' properties: apiGroup: - description: APIGroup is - the group for the resource - being referenced. If APIGroup - is not specified, the - specified Kind must be - in the core API group. - For any other third-party - types, APIGroup is required. type: string kind: - description: Kind is the - type of resource being - referenced type: string name: - description: Name is the - name of resource being - referenced type: string namespace: - description: Namespace is - the namespace of resource - being referenced Note - that when a namespace - is specified, a gateway.networking.k8s.io/ReferenceGrant - object is required in - the referent namespace - to allow that namespace's - owner to accept the reference. - See the ReferenceGrant - documentation for details. - (Alpha) This field requires - the CrossNamespaceVolumeDataSource - feature gate to be enabled. type: string required: - kind - name type: object resources: - description: 'resources represents - the minimum resources the - volume should have. If RecoverVolumeExpansionFailure - feature is enabled users are - allowed to specify resource - requirements that are lower - than previous value but must - still be higher than capacity - recorded in the status field - of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -31812,10 +11651,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes - the maximum amount of - compute resources allowed. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -31824,66 +11659,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes - the minimum amount of - compute resources required. - If Requests is omitted - for a container, it defaults - to Limits if that is explicitly - specified, otherwise to - an implementation-defined - value. Requests cannot - exceed Limits. More info: - https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is a label - query over volumes to consider - for binding. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, - a key, and an operator - that relates the key - and values. properties: key: - description: key is - the label key that - the selector applies - to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, Exists - and DoesNotExist. type: string values: - description: values - is an array of string - values. If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. This - array is replaced - during a strategic - merge patch. items: type: string type: array @@ -31897,69 +11684,16 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an element - of matchExpressions, whose - key field is "key", the - operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName - is the name of the StorageClass - required by the claim. More - info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName - may be used to set the VolumeAttributesClass - used by this claim. If specified, - the CSI driver will create - or update the volume with - the attributes defined in - the corresponding VolumeAttributesClass. - This has a different purpose - than storageClassName, it - can be changed after the claim - is created. An empty string - value means that no VolumeAttributesClass - will be applied to the claim - but it''s not allowed to reset - this field to empty string - once it is set. If unspecified - and the PersistentVolumeClaim - is unbound, the default VolumeAttributesClass - will be set by the persistentvolume - controller if it exists. If - the resource referred to by - volumeAttributesClass does - not exist, this PersistentVolumeClaim - will be set to a Pending state, - as reflected by the modifyVolumeStatus - field, until such as a resource - exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires - the VolumeAttributesClass - feature gate to be enabled.' type: string volumeMode: - description: volumeMode defines - what type of volume is required - by the claim. Value of Filesystem - is implied when not included - in claim spec. type: string volumeName: - description: volumeName is the - binding reference to the PersistentVolume - backing this claim. type: string type: object required: @@ -31967,103 +11701,41 @@ spec: type: object type: object fc: - description: fc represents a Fibre Channel - resource that is attached to a kubelet's - host machine and then exposed to the pod. properties: fsType: - description: 'fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. TODO: how do we prevent - errors in the filesystem from compromising - the machine' type: string lun: - description: 'lun is Optional: FC target - lun number' format: int32 type: integer readOnly: - description: 'readOnly is Optional: - Defaults to false (read/write). ReadOnly - here will force the ReadOnly setting - in VolumeMounts.' type: boolean targetWWNs: - description: 'targetWWNs is Optional: - FC target worldwide names (WWNs)' items: type: string type: array x-kubernetes-list-type: atomic wwids: - description: 'wwids Optional: FC volume - world wide identifiers (wwids) Either - wwids or combination of targetWWNs - and lun must be set, but not both - simultaneously.' items: type: string type: array x-kubernetes-list-type: atomic type: object flexVolume: - description: flexVolume represents a generic - volume resource that is provisioned/attached - using an exec based plugin. properties: driver: - description: driver is the name of the - driver to use for this volume. type: string fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - The default filesystem depends on - FlexVolume script. type: string options: additionalProperties: type: string - description: 'options is Optional: this - field holds extra command options - if any.' type: object readOnly: - description: 'readOnly is Optional: - defaults to false (read/write). ReadOnly - here will force the ReadOnly setting - in VolumeMounts.' type: boolean secretRef: - description: 'secretRef is Optional: - secretRef is reference to the secret - object containing sensitive information - to pass to the plugin scripts. This - may be empty if no secret object is - specified. If the secret object contains - more than one secret, all secrets - are passed to the plugin scripts.' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic @@ -32071,207 +11743,79 @@ spec: - driver type: object flocker: - description: flocker represents a Flocker - volume attached to a kubelet's host machine. - This depends on the Flocker control service - being running properties: datasetName: - description: datasetName is Name of - the dataset stored as metadata -> - name on the dataset for Flocker should - be considered as deprecated type: string datasetUUID: - description: datasetUUID is the UUID - of the dataset. This is unique identifier - of a Flocker dataset type: string type: object gcePersistentDisk: - description: 'gcePersistentDisk represents - a GCE Disk resource that is attached to - a kubelet''s host machine and then exposed - to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' properties: fsType: - description: 'fsType is filesystem type - of the volume that you want to mount. - Tip: Ensure that the filesystem type - is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in - the filesystem from compromising the - machine' type: string partition: - description: 'partition is the partition - in the volume that you want to mount. - If omitted, the default is to mount - by volume name. Examples: For volume - /dev/sda1, you specify the partition - as "1". Similarly, the volume partition - for /dev/sda is "0" (or you can leave - the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' format: int32 type: integer pdName: - description: 'pdName is unique name - of the PD resource in GCE. Used to - identify the disk in GCE. More info: - https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: string readOnly: - description: 'readOnly here will force - the ReadOnly setting in VolumeMounts. - Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: boolean required: - pdName type: object glusterfs: - description: 'glusterfs represents a Glusterfs - mount on the host that shares a pod''s - lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md' properties: endpoints: - description: 'endpoints is the endpoint - name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string path: - description: 'path is the Glusterfs - volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string readOnly: - description: 'readOnly here will force - the Glusterfs volume to be mounted - with read-only permissions. Defaults - to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: boolean required: - endpoints - path type: object hostPath: - description: 'hostPath represents a pre-existing - file or directory on the host machine - that is directly exposed to the container. - This is generally used for system agents - or other privileged things that are allowed - to see the host machine. Most containers - will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- TODO(jonesdl) We need to restrict - who can use host directory mounts and - who can/can not mount host directories - as read/write.' properties: path: - description: 'path of the directory - on the host. If the path is a symlink, - it will follow the link to the real - path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string type: - description: 'type for HostPath Volume - Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string required: - path type: object iscsi: - description: 'iscsi represents an ISCSI - Disk resource that is attached to a kubelet''s - host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md' properties: chapAuthDiscovery: - description: chapAuthDiscovery defines - whether support iSCSI Discovery CHAP - authentication type: boolean chapAuthSession: - description: chapAuthSession defines - whether support iSCSI Session CHAP - authentication type: boolean fsType: - description: 'fsType is the filesystem - type of the volume that you want to - mount. Tip: Ensure that the filesystem - type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in - the filesystem from compromising the - machine' type: string initiatorName: - description: initiatorName is the custom - iSCSI Initiator Name. If initiatorName - is specified with iscsiInterface simultaneously, - new iSCSI interface : will be created for the connection. type: string iqn: - description: iqn is the target iSCSI - Qualified Name. type: string iscsiInterface: - description: iscsiInterface is the interface - Name that uses an iSCSI transport. - Defaults to 'default' (tcp). type: string lun: - description: lun represents iSCSI Target - Lun number. format: int32 type: integer portals: - description: portals is the iSCSI Target - Portal List. The portal is either - an IP or ip_addr:port if the port - is other than default (typically TCP - ports 860 and 3260). items: type: string type: array x-kubernetes-list-type: atomic readOnly: - description: readOnly here will force - the ReadOnly setting in VolumeMounts. - Defaults to false. type: boolean secretRef: - description: secretRef is the CHAP Secret - for iSCSI target and initiator authentication properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic targetPortal: - description: targetPortal is iSCSI Target - Portal. The Portal is either an IP - or ip_addr:port if the port is other - than default (typically TCP ports - 860 and 3260). type: string required: - iqn @@ -32279,204 +11823,68 @@ spec: - targetPortal type: object name: - description: 'name of the volume. Must be - a DNS_LABEL and unique within the pod. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string nfs: - description: 'nfs represents an NFS mount - on the host that shares a pod''s lifetime - More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' properties: path: - description: 'path that is exported - by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string readOnly: - description: 'readOnly here will force - the NFS export to be mounted with - read-only permissions. Defaults to - false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: boolean server: - description: 'server is the hostname - or IP address of the NFS server. More - info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string required: - path - server type: object persistentVolumeClaim: - description: 'persistentVolumeClaimVolumeSource - represents a reference to a PersistentVolumeClaim - in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: claimName: - description: 'claimName is the name - of a PersistentVolumeClaim in the - same namespace as the pod using this - volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' type: string readOnly: - description: readOnly Will force the - ReadOnly setting in VolumeMounts. - Default false. type: boolean required: - claimName type: object photonPersistentDisk: - description: photonPersistentDisk represents - a PhotonController persistent disk attached - and mounted on kubelets host machine properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. type: string pdID: - description: pdID is the ID that identifies - Photon Controller persistent disk type: string required: - pdID type: object portworxVolume: - description: portworxVolume represents a - portworx volume attached and mounted on - kubelets host machine properties: fsType: - description: fSType represents the filesystem - type to mount Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs". Implicitly - inferred to be "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean volumeID: - description: volumeID uniquely identifies - a Portworx volume type: string required: - volumeID type: object projected: - description: projected items for all in - one resources secrets, configmaps, and - downward API properties: defaultMode: - description: defaultMode are the mode - bits used to set permissions on created - files by default. Must be an octal - value between 0000 and 0777 or a decimal - value between 0 and 511. YAML accepts - both octal and decimal values, JSON - requires decimal values for mode bits. - Directories within the path are not - affected by this setting. This might - be in conflict with other options - that affect the file mode, like fsGroup, - and the result can be other mode bits - set. format: int32 type: integer sources: - description: sources is the list of - volume projections items: - description: Projection that may be - projected along with other supported - volume types properties: clusterTrustBundle: - description: "ClusterTrustBundle - allows a pod to access the `.spec.trustBundle` - field of ClusterTrustBundle - objects in an auto-updating - file. \n Alpha, gated by the - ClusterTrustBundleProjection - feature gate. \n ClusterTrustBundle - objects can either be selected - by name, or by the combination - of signer name and a label selector. - \n Kubelet performs aggressive - normalization of the PEM contents - written into the pod filesystem. - \ Esoteric PEM features such - as inter-block comments and - block headers are stripped. - \ Certificates are deduplicated. - The ordering of certificates - within the file is arbitrary, - and Kubelet may change the order - over time." properties: labelSelector: - description: Select all ClusterTrustBundles - that match this label selector. Only - has effect if signerName - is set. Mutually-exclusive - with name. If unset, interpreted - as "match nothing". If - set but empty, interpreted - as "match everything". properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label - selector requirement - is a selector that - contains values, a - key, and an operator - that relates the key - and values. properties: key: - description: key - is the label key - that the selector - applies to. type: string operator: - description: operator - represents a key's - relationship to - a set of values. - Valid operators - are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values - is an array of - string values. - If the operator - is In or NotIn, - the values array - must be non-empty. - If the operator - is Exists or DoesNotExist, - the values array - must be empty. - This array is - replaced during - a strategic merge - patch. items: type: string type: array @@ -32490,123 +11898,31 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels - is a map of {key,value} - pairs. A single {key,value} - in the matchLabels map - is equivalent to an - element of matchExpressions, - whose key field is "key", - the operator is "In", - and the values array - contains only "value". - The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic name: - description: Select a single - ClusterTrustBundle by object - name. Mutually-exclusive - with signerName and labelSelector. type: string optional: - description: If true, don't - block pod startup if the - referenced ClusterTrustBundle(s) - aren't available. If using - name, then the named ClusterTrustBundle - is allowed not to exist. If - using signerName, then the - combination of signerName - and labelSelector is allowed - to match zero ClusterTrustBundles. type: boolean path: - description: Relative path - from the volume root to - write the bundle. type: string signerName: - description: Select all ClusterTrustBundles - that match this signer name. - Mutually-exclusive with - name. The contents of all - selected ClusterTrustBundles - will be unified and deduplicated. type: string required: - path type: object configMap: - description: configMap information - about the configMap data to - project properties: items: - description: items if unspecified, - each key-value pair in the - Data field of the referenced - ConfigMap will be projected - into the volume as a file - whose name is the key and - content is the value. If - specified, the listed keys - will be projected into the - specified paths, and unlisted - keys will not be present. - If a key is specified which - is not present in the ConfigMap, - the volume setup will error - unless it is marked optional. - Paths must be relative and - may not contain the '..' - path or start with '..'. items: - description: Maps a string - key to a path within a - volume. properties: key: - description: key is - the key to project. type: string mode: - description: 'mode is - Optional: mode bits - used to set permissions - on this file. Must - be an octal value - between 0000 and 0777 - or a decimal value - between 0 and 511. - YAML accepts both - octal and decimal - values, JSON requires - decimal values for - mode bits. If not - specified, the volume - defaultMode will be - used. This might be - in conflict with other - options that affect - the file mode, like - fsGroup, and the result - can be other mode - bits set.' format: int32 type: integer path: - description: path is - the relative path - of the file to map - the key to. May not - be an absolute path. - May not contain the - path element '..'. - May not start with - the string '..'. type: string required: - key @@ -32616,134 +11932,42 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the - referent. This field is - effectively required, but - due to backwards compatibility - is allowed to be empty. - Instances of this type with - an empty value here are - almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify - whether the ConfigMap or - its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic downwardAPI: - description: downwardAPI information - about the downwardAPI data to - project properties: items: - description: Items is a list - of DownwardAPIVolume file items: - description: DownwardAPIVolumeFile - represents information - to create the file containing - the pod field properties: fieldRef: - description: 'Required: - Selects a field of - the pod: only annotations, - labels, name, namespace - and uid are supported.' properties: apiVersion: - description: Version - of the schema - the FieldPath - is written in - terms of, defaults - to "v1". type: string fieldPath: - description: Path - of the field to - select in the - specified API - version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: - mode bits used to - set permissions on - this file, must be - an octal value between - 0000 and 0777 or a - decimal value between - 0 and 511. YAML accepts - both octal and decimal - values, JSON requires - decimal values for - mode bits. If not - specified, the volume - defaultMode will be - used. This might be - in conflict with other - options that affect - the file mode, like - fsGroup, and the result - can be other mode - bits set.' format: int32 type: integer path: - description: 'Required: - Path is the relative - path name of the file - to be created. Must - not be absolute or - contain the ''..'' - path. Must be utf-8 - encoded. The first - item of the relative - path must not start - with ''..''' type: string resourceFieldRef: - description: 'Selects - a resource of the - container: only resources - limits and requests - (limits.cpu, limits.memory, - requests.cpu and requests.memory) - are currently supported.' properties: containerName: - description: 'Container - name: required - for volumes, optional - for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies - the output format - of the exposed - resources, defaults - to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: - resource to select' type: string required: - resource @@ -32756,72 +11980,16 @@ spec: x-kubernetes-list-type: atomic type: object secret: - description: secret information - about the secret data to project properties: items: - description: items if unspecified, - each key-value pair in the - Data field of the referenced - Secret will be projected - into the volume as a file - whose name is the key and - content is the value. If - specified, the listed keys - will be projected into the - specified paths, and unlisted - keys will not be present. - If a key is specified which - is not present in the Secret, - the volume setup will error - unless it is marked optional. - Paths must be relative and - may not contain the '..' - path or start with '..'. items: - description: Maps a string - key to a path within a - volume. properties: key: - description: key is - the key to project. type: string mode: - description: 'mode is - Optional: mode bits - used to set permissions - on this file. Must - be an octal value - between 0000 and 0777 - or a decimal value - between 0 and 511. - YAML accepts both - octal and decimal - values, JSON requires - decimal values for - mode bits. If not - specified, the volume - defaultMode will be - used. This might be - in conflict with other - options that affect - the file mode, like - fsGroup, and the result - can be other mode - bits set.' format: int32 type: integer path: - description: path is - the relative path - of the file to map - the key to. May not - be an absolute path. - May not contain the - path element '..'. - May not start with - the string '..'. type: string required: - key @@ -32831,68 +11999,19 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the - referent. This field is - effectively required, but - due to backwards compatibility - is allowed to be empty. - Instances of this type with - an empty value here are - almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional field - specify whether the Secret - or its key must be defined type: boolean type: object x-kubernetes-map-type: atomic serviceAccountToken: - description: serviceAccountToken - is information about the serviceAccountToken - data to project properties: audience: - description: audience is the - intended audience of the - token. A recipient of a - token must identify itself - with an identifier specified - in the audience of the token, - and otherwise should reject - the token. The audience - defaults to the identifier - of the apiserver. type: string expirationSeconds: - description: expirationSeconds - is the requested duration - of validity of the service - account token. As the token - approaches expiration, the - kubelet volume plugin will - proactively rotate the service - account token. The kubelet - will start trying to rotate - the token if the token is - older than 80 percent of - its time to live or if the - token is older than 24 hours.Defaults - to 1 hour and must be at - least 10 minutes. format: int64 type: integer path: - description: path is the path - relative to the mount point - of the file to project the - token into. type: string required: - path @@ -32902,196 +12021,79 @@ spec: x-kubernetes-list-type: atomic type: object quobyte: - description: quobyte represents a Quobyte - mount on the host that shares a pod's - lifetime properties: group: - description: group to map volume access - to Default is no group type: string readOnly: - description: readOnly here will force - the Quobyte volume to be mounted with - read-only permissions. Defaults to - false. type: boolean registry: - description: registry represents a single - or multiple Quobyte Registry services - specified as a string as host:port - pair (multiple entries are separated - with commas) which acts as the central - registry for volumes type: string tenant: - description: tenant owning the given - Quobyte volume in the Backend Used - with dynamically provisioned Quobyte - volumes, value is set by the plugin type: string user: - description: user to map volume access - to Defaults to serivceaccount user type: string volume: - description: volume is a string that - references an already created Quobyte - volume by name. type: string required: - registry - volume type: object rbd: - description: 'rbd represents a Rados Block - Device mount on the host that shares a - pod''s lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md' properties: fsType: - description: 'fsType is the filesystem - type of the volume that you want to - mount. Tip: Ensure that the filesystem - type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in - the filesystem from compromising the - machine' type: string image: - description: 'image is the rados image - name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string keyring: - description: 'keyring is the path to - key ring for RBDUser. Default is /etc/ceph/keyring. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string monitors: - description: 'monitors is a collection - of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic pool: - description: 'pool is the rados pool - name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string readOnly: - description: 'readOnly here will force - the ReadOnly setting in VolumeMounts. - Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: boolean secretRef: - description: 'secretRef is name of the - authentication secret for RBDUser. - If provided overrides keyring. Default - is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is the rados user - name. Default is admin. More info: - https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string required: - image - monitors type: object scaleIO: - description: scaleIO represents a ScaleIO - persistent volume attached and mounted - on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Default is "xfs". type: string gateway: - description: gateway is the host address - of the ScaleIO API Gateway. type: string protectionDomain: - description: protectionDomain is the - name of the ScaleIO Protection Domain - for the configured storage. type: string readOnly: - description: readOnly Defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean secretRef: - description: secretRef references to - the secret for ScaleIO user and other - sensitive information. If this is - not provided, Login operation will - fail. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic sslEnabled: - description: sslEnabled Flag enable/disable - SSL communication with Gateway, default - false type: boolean storageMode: - description: storageMode indicates whether - the storage for a volume should be - ThickProvisioned or ThinProvisioned. - Default is ThinProvisioned. type: string storagePool: - description: storagePool is the ScaleIO - Storage Pool associated with the protection - domain. type: string system: - description: system is the name of the - storage system as configured in ScaleIO. type: string volumeName: - description: volumeName is the name - of a volume already created in the - ScaleIO system that is associated - with this volume source. type: string required: - gateway @@ -33099,75 +12101,19 @@ spec: - system type: object secret: - description: 'secret represents a secret - that should populate this volume. More - info: https://kubernetes.io/docs/concepts/storage/volumes#secret' properties: defaultMode: - description: 'defaultMode is Optional: - mode bits used to set permissions - on created files by default. Must - be an octal value between 0000 and - 0777 or a decimal value between 0 - and 511. YAML accepts both octal and - decimal values, JSON requires decimal - values for mode bits. Defaults to - 0644. Directories within the path - are not affected by this setting. - This might be in conflict with other - options that affect the file mode, - like fsGroup, and the result can be - other mode bits set.' format: int32 type: integer items: - description: items If unspecified, each - key-value pair in the Data field of - the referenced Secret will be projected - into the volume as a file whose name - is the key and content is the value. - If specified, the listed keys will - be projected into the specified paths, - and unlisted keys will not be present. - If a key is specified which is not - present in the Secret, the volume - setup will error unless it is marked - optional. Paths must be relative and - may not contain the '..' path or start - with '..'. items: - description: Maps a string key to - a path within a volume. properties: key: - description: key is the key to - project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an octal - value between 0000 and 0777 - or a decimal value between 0 - and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. - If not specified, the volume - defaultMode will be used. This - might be in conflict with other - options that affect the file - mode, like fsGroup, and the - result can be other mode bits - set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the - key to. May not be an absolute - path. May not contain the path - element '..'. May not start - with the string '..'. type: string required: - key @@ -33176,102 +12122,37 @@ spec: type: array x-kubernetes-list-type: atomic optional: - description: optional field specify - whether the Secret or its keys must - be defined type: boolean secretName: - description: 'secretName is the name - of the secret in the pod''s namespace - to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' type: string type: object storageos: - description: storageOS represents a StorageOS - volume attached and mounted on Kubernetes - nodes. properties: fsType: - description: fsType is the filesystem - type to mount. Must be a filesystem - type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if - unspecified. type: string readOnly: - description: readOnly defaults to false - (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. type: boolean secretRef: - description: secretRef specifies the - secret to use for obtaining the StorageOS - API credentials. If not specified, - default values will be attempted. properties: name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. - apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeName: - description: volumeName is the human-readable - name of the StorageOS volume. Volume - names are only unique within a namespace. type: string volumeNamespace: - description: volumeNamespace specifies - the scope of the volume within StorageOS. If - no namespace is specified then the - Pod's namespace will be used. This - allows the Kubernetes name scoping - to be mirrored within StorageOS for - tighter integration. Set VolumeName - to any name to override the default - behaviour. Set to "default" if you - are not using namespaces within StorageOS. - Namespaces that do not pre-exist within - StorageOS will be created. type: string type: object vsphereVolume: - description: vsphereVolume represents a - vSphere volume attached and mounted on - kubelets host machine properties: fsType: - description: fsType is filesystem type - to mount. Must be a filesystem type - supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string storagePolicyID: - description: storagePolicyID is the - storage Policy Based Management (SPBM) - profile ID associated with the StoragePolicyName. type: string storagePolicyName: - description: storagePolicyName is the - storage Policy Based Management (SPBM) - profile name. type: string volumePath: - description: volumePath is the path - that identifies vSphere volume vmdk type: string required: - volumePath @@ -33283,38 +12164,18 @@ spec: type: object type: object ttlSecondsAfterFinished: - description: ttlSecondsAfterFinished limits the lifetime - of a Job that has finished execution (either Complete - or Failed). If this field is set, ttlSecondsAfterFinished - after the Job finishes, it is eligible to be automatically - deleted. When the Job is being deleted, its lifecycle - guarantees (e.g. finalizers) will be honored. If this - field is unset, the Job won't be automatically deleted. - If this field is set to zero, the Job becomes eligible - to be deleted immediately after it finishes. This field - is alpha-level and is only honored by servers that enable - the TTLAfterFinished feature. format: int32 type: integer type: object schedule: - description: The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron. type: string startingDeadlineSeconds: - description: Optional deadline in seconds for starting the - job if it misses scheduled time for any reason. Missed - jobs executions will be counted as failed ones. format: int64 type: integer successfulJobsHistoryLimit: - description: The number of successful finished jobs to retain. - Value must be non-negative integer. Defaults to 3. format: int32 type: integer suspend: - description: This flag tells the controller to suspend subsequent - executions, it does not apply to already started executions. Defaults - to false. type: boolean required: - jobTemplate @@ -33322,26 +12183,19 @@ spec: type: object sessionHistoryLimit: default: 1 - description: SessionHistoryLimit specifies how many backup Jobs - and associate resources KubeStash should keep for debugging - purpose. The default value is 1. format: int32 type: integer type: object type: array target: - description: Target refers to the target of backup. The target must - be in the same namespace as the BackupConfiguration. properties: apiGroup: type: string kind: type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string required: - name diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/core.kubestash.com/v1alpha1/backupsessions.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/core.kubestash.com/v1alpha1/backupsessions.yaml index 729667008..c65fa00fe 100644 --- a/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/core.kubestash.com/v1alpha1/backupsessions.yaml +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/core.kubestash.com/v1alpha1/backupsessions.yaml @@ -25,18 +25,10 @@ spec: version: v1alpha1 validation: openAPIV3Schema: - description: BackupSession represent one backup run for the target(s) pointed - by the respective BackupConfiguration or BackupBatch properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: properties: @@ -72,28 +64,16 @@ spec: type: object type: object spec: - description: BackupSessionSpec specifies the information related to the - respective backup invoker and session. properties: backupTimeout: - description: BackupTimeout specifies the maximum duration of backup. - Backup will be considered Failed if backup tasks do not complete within - this time limit. By default, KubeStash don't set any timeout for backup. type: string invoker: - description: Invoker points to the respective BackupConfiguration or - BackupBatch which is responsible for triggering this backup. properties: apiGroup: - description: APIGroup is the group for the resource being referenced. - If APIGroup is not specified, the specified Kind must be in the - core API group. For any other third-party types, APIGroup is required. type: string kind: - description: Kind is the type of resource being referenced type: string name: - description: Name is the name of resource being referenced type: string required: - kind @@ -101,14 +81,9 @@ spec: type: object x-kubernetes-map-type: atomic retryLeft: - description: RetryLeft specifies number of retry attempts left for the - session. If this set to non-zero, KubeStash will create a new BackupSession - if the current one fails. format: int32 type: integer session: - description: Session specifies the name of the session that triggered - this backup type: string type: object type: object diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/core.kubestash.com/v1alpha1/backupverificationsession.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/core.kubestash.com/v1alpha1/backupverificationsession.yaml new file mode 100644 index 000000000..e92c9e30b --- /dev/null +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/core.kubestash.com/v1alpha1/backupverificationsession.yaml @@ -0,0 +1,83 @@ +apiVersion: meta.k8s.appscode.com/v1alpha1 +kind: ResourceDescriptor +metadata: + creationTimestamp: null + labels: + k8s.io/group: core.kubestash.com + k8s.io/kind: BackupVerificationSession + k8s.io/resource: backupverificationsession + k8s.io/version: v1alpha1 + name: core.kubestash.com-v1alpha1-backupverificationsession +spec: + resource: + group: core.kubestash.com + kind: BackupVerificationSession + name: backupverificationsession + scope: Namespaced + version: v1alpha1 + validation: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + properties: + name: + description: 'Name must be unique within a namespace. Is required when + creating resources, although some resources may allow a client to + request the generation of an appropriate name automatically. Name + is primarily intended for creation idempotence and configuration definition. + Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names' + type: string + namespace: + description: "Namespace defines the space within which each name must + be unique. An empty namespace is equivalent to the \"default\" namespace, + but \"default\" is the canonical representation. Not all objects are + required to be scoped to a namespace - the value of this field for + those objects will be empty. \n Must be a DNS_LABEL. Cannot be updated. + More info: http://kubernetes.io/docs/user-guide/namespaces" + type: string + labels: + additionalProperties: + type: string + description: 'Map of string keys and values that can be used to organize + and categorize (scope and select) objects. May match selectors of + replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels' + type: object + annotations: + additionalProperties: + type: string + description: 'Annotations is an unstructured key value map stored with + a resource that may be set by external tools to store and retrieve + arbitrary metadata. They are not queryable and should be preserved + when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + type: object + type: object + spec: + properties: + invoker: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + repository: + type: string + retryLeft: + format: int32 + type: integer + session: + type: string + snapshot: + type: string + type: object + type: object diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/core.kubestash.com/v1alpha1/backupverifier.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/core.kubestash.com/v1alpha1/backupverifier.yaml new file mode 100644 index 000000000..8bde4a977 --- /dev/null +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/core.kubestash.com/v1alpha1/backupverifier.yaml @@ -0,0 +1,9898 @@ +apiVersion: meta.k8s.appscode.com/v1alpha1 +kind: ResourceDescriptor +metadata: + creationTimestamp: null + labels: + k8s.io/group: core.kubestash.com + k8s.io/kind: BackupVerifier + k8s.io/resource: backupverifier + k8s.io/version: v1alpha1 + name: core.kubestash.com-v1alpha1-backupverifier +spec: + resource: + group: core.kubestash.com + kind: BackupVerifier + name: backupverifier + scope: Namespaced + version: v1alpha1 + validation: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + properties: + name: + description: 'Name must be unique within a namespace. Is required when + creating resources, although some resources may allow a client to + request the generation of an appropriate name automatically. Name + is primarily intended for creation idempotence and configuration definition. + Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names' + type: string + namespace: + description: "Namespace defines the space within which each name must + be unique. An empty namespace is equivalent to the \"default\" namespace, + but \"default\" is the canonical representation. Not all objects are + required to be scoped to a namespace - the value of this field for + those objects will be empty. \n Must be a DNS_LABEL. Cannot be updated. + More info: http://kubernetes.io/docs/user-guide/namespaces" + type: string + labels: + additionalProperties: + type: string + description: 'Map of string keys and values that can be used to organize + and categorize (scope and select) objects. May match selectors of + replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels' + type: object + annotations: + additionalProperties: + type: string + description: 'Annotations is an unstructured key value map stored with + a resource that may be set by external tools to store and retrieve + arbitrary metadata. They are not queryable and should be preserved + when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + type: object + type: object + spec: + properties: + function: + type: string + query: + type: object + x-kubernetes-preserve-unknown-fields: true + restoreOption: + properties: + addonInfo: + properties: + containerRuntimeSettings: + properties: + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + envFrom: + items: + properties: + configMapRef: + properties: + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + prefix: + type: string + secretRef: + properties: + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + type: object + type: array + ionice: + properties: + class: + format: int32 + type: integer + classData: + format: int32 + type: integer + type: object + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + preStop: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + type: object + livenessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + nice: + properties: + adjustment: + format: int32 + type: integer + type: object + readinessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + securityContext: + properties: + allowPrivilegeEscalation: + type: boolean + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + capabilities: + properties: + add: + items: + type: string + type: array + x-kubernetes-list-type: atomic + drop: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + type: object + jobTemplate: + properties: + controller: + properties: + annotations: + additionalProperties: + type: string + type: object + labels: + additionalProperties: + type: string + type: object + type: object + metadata: + properties: + annotations: + additionalProperties: + type: string + type: object + labels: + additionalProperties: + type: string + type: object + type: object + spec: + properties: + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + weight: + format: int32 + type: integer + required: + - preference + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-type: atomic + required: + - nodeSelectorTerms + type: object + x-kubernetes-map-type: atomic + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + type: object + args: + items: + type: string + type: array + containerSecurityContext: + properties: + allowPrivilegeEscalation: + type: boolean + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + capabilities: + properties: + add: + items: + type: string + type: array + x-kubernetes-list-type: atomic + drop: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + dnsConfig: + properties: + nameservers: + items: + type: string + type: array + x-kubernetes-list-type: atomic + options: + items: + properties: + name: + type: string + value: + type: string + type: object + type: array + x-kubernetes-list-type: atomic + searches: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + dnsPolicy: + type: string + enableServiceLinks: + type: boolean + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + hostIPC: + type: boolean + hostNetwork: + type: boolean + hostPID: + type: boolean + imagePullSecrets: + items: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + type: array + initContainers: + items: + properties: + args: + items: + type: string + type: array + x-kubernetes-list-type: atomic + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + envFrom: + items: + properties: + configMapRef: + properties: + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + prefix: + type: string + secretRef: + properties: + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + type: object + type: array + x-kubernetes-list-type: atomic + image: + type: string + imagePullPolicy: + type: string + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + preStop: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + type: object + livenessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + name: + type: string + ports: + items: + properties: + containerPort: + format: int32 + type: integer + hostIP: + type: string + hostPort: + format: int32 + type: integer + name: + type: string + protocol: + default: TCP + type: string + required: + - containerPort + type: object + type: array + x-kubernetes-list-map-keys: + - containerPort + - protocol + x-kubernetes-list-type: map + readinessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + resizePolicy: + items: + properties: + resourceName: + type: string + restartPolicy: + type: string + required: + - resourceName + - restartPolicy + type: object + type: array + x-kubernetes-list-type: atomic + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + restartPolicy: + type: string + securityContext: + properties: + allowPrivilegeEscalation: + type: boolean + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + capabilities: + properties: + add: + items: + type: string + type: array + x-kubernetes-list-type: atomic + drop: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + startupProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + stdin: + type: boolean + stdinOnce: + type: boolean + terminationMessagePath: + type: string + terminationMessagePolicy: + type: string + tty: + type: boolean + volumeDevices: + items: + properties: + devicePath: + type: string + name: + type: string + required: + - devicePath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - devicePath + x-kubernetes-list-type: map + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - mountPath + x-kubernetes-list-type: map + workingDir: + type: string + required: + - name + type: object + type: array + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + preStop: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + type: object + livenessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + nodeSelector: + additionalProperties: + type: string + type: object + x-kubernetes-map-type: atomic + podPlacementPolicy: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + priority: + format: int32 + type: integer + priorityClassName: + type: string + readinessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + runtimeClassName: + type: string + schedulerName: + type: string + securityContext: + properties: + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + fsGroup: + format: int64 + type: integer + fsGroupChangePolicy: + type: string + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + supplementalGroups: + items: + format: int64 + type: integer + type: array + x-kubernetes-list-type: atomic + sysctls: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + serviceAccountName: + type: string + shareProcessNamespace: + type: boolean + terminationGracePeriodSeconds: + format: int64 + type: integer + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + format: int64 + type: integer + value: + type: string + type: object + type: array + topologySpreadConstraints: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + maxSkew: + format: int32 + type: integer + minDomains: + format: int32 + type: integer + nodeAffinityPolicy: + type: string + nodeTaintsPolicy: + type: string + topologyKey: + type: string + whenUnsatisfiable: + type: string + required: + - maxSkew + - topologyKey + - whenUnsatisfiable + type: object + type: array + x-kubernetes-list-map-keys: + - topologyKey + - whenUnsatisfiable + x-kubernetes-list-type: map + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + volumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + azureDisk: + properties: + cachingMode: + type: string + diskName: + type: string + diskURI: + type: string + fsType: + type: string + kind: + type: string + readOnly: + type: boolean + required: + - diskName + - diskURI + type: object + azureFile: + properties: + readOnly: + type: boolean + secretName: + type: string + shareName: + type: string + required: + - secretName + - shareName + type: object + cephfs: + properties: + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - monitors + type: object + cinder: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + volumeID: + type: string + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + required: + - driver + type: object + downwardAPI: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + emptyDir: + properties: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + properties: + annotations: + additionalProperties: + type: string + type: object + generateName: + type: string + labels: + additionalProperties: + type: string + type: object + name: + type: string + namespace: + type: string + ownerReferences: + items: + properties: + apiVersion: + type: string + blockOwnerDeletion: + type: boolean + controller: + type: boolean + kind: + type: string + name: + type: string + uid: + type: string + required: + - apiVersion + - kind + - name + - uid + type: object + x-kubernetes-map-type: atomic + type: array + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + format: int32 + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + wwids: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + required: + - driver + type: object + flocker: + properties: + datasetName: + type: string + datasetUUID: + type: string + type: object + gcePersistentDisk: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + pdName: + type: string + readOnly: + type: boolean + required: + - pdName + type: object + glusterfs: + properties: + endpoints: + type: string + path: + type: string + readOnly: + type: boolean + required: + - endpoints + - path + type: object + hostPath: + properties: + path: + type: string + type: + type: string + required: + - path + type: object + iscsi: + properties: + chapAuthDiscovery: + type: boolean + chapAuthSession: + type: boolean + fsType: + type: string + initiatorName: + type: string + iqn: + type: string + iscsiInterface: + type: string + lun: + format: int32 + type: integer + portals: + items: + type: string + type: array + x-kubernetes-list-type: atomic + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + targetPortal: + type: string + required: + - iqn + - lun + - targetPortal + type: object + name: + type: string + nfs: + properties: + path: + type: string + readOnly: + type: boolean + server: + type: string + required: + - path + - server + type: object + persistentVolumeClaim: + properties: + claimName: + type: string + readOnly: + type: boolean + required: + - claimName + type: object + photonPersistentDisk: + properties: + fsType: + type: string + pdID: + type: string + required: + - pdID + type: object + portworxVolume: + properties: + fsType: + type: string + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + projected: + properties: + defaultMode: + format: int32 + type: integer + sources: + items: + properties: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + name: + type: string + optional: + type: boolean + path: + type: string + signerName: + type: string + required: + - path + type: object + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + format: int64 + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + x-kubernetes-list-type: atomic + type: object + quobyte: + properties: + group: + type: string + readOnly: + type: boolean + registry: + type: string + tenant: + type: string + user: + type: string + volume: + type: string + required: + - registry + - volume + type: object + rbd: + properties: + fsType: + type: string + image: + type: string + keyring: + type: string + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + pool: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - image + - monitors + type: object + scaleIO: + properties: + fsType: + type: string + gateway: + type: string + protectionDomain: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + sslEnabled: + type: boolean + storageMode: + type: string + storagePool: + type: string + system: + type: string + volumeName: + type: string + required: + - gateway + - secretRef + - system + type: object + secret: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + volumeName: + type: string + volumeNamespace: + type: string + type: object + vsphereVolume: + properties: + fsType: + type: string + storagePolicyID: + type: string + storagePolicyName: + type: string + volumePath: + type: string + required: + - volumePath + type: object + required: + - name + type: object + type: array + type: object + type: object + name: + type: string + tasks: + items: + properties: + addonVolumes: + items: + properties: + name: + type: string + source: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + azureDisk: + properties: + cachingMode: + type: string + diskName: + type: string + diskURI: + type: string + fsType: + type: string + kind: + type: string + readOnly: + type: boolean + required: + - diskName + - diskURI + type: object + azureFile: + properties: + readOnly: + type: boolean + secretName: + type: string + shareName: + type: string + required: + - secretName + - shareName + type: object + cephfs: + properties: + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - monitors + type: object + cinder: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + volumeID: + type: string + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + required: + - driver + type: object + downwardAPI: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + emptyDir: + properties: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + properties: + annotations: + additionalProperties: + type: string + type: object + generateName: + type: string + labels: + additionalProperties: + type: string + type: object + name: + type: string + namespace: + type: string + ownerReferences: + items: + properties: + apiVersion: + type: string + blockOwnerDeletion: + type: boolean + controller: + type: boolean + kind: + type: string + name: + type: string + uid: + type: string + required: + - apiVersion + - kind + - name + - uid + type: object + x-kubernetes-map-type: atomic + type: array + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + format: int32 + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + wwids: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + required: + - driver + type: object + flocker: + properties: + datasetName: + type: string + datasetUUID: + type: string + type: object + gcePersistentDisk: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + pdName: + type: string + readOnly: + type: boolean + required: + - pdName + type: object + glusterfs: + properties: + endpoints: + type: string + path: + type: string + readOnly: + type: boolean + required: + - endpoints + - path + type: object + hostPath: + properties: + path: + type: string + type: + type: string + required: + - path + type: object + iscsi: + properties: + chapAuthDiscovery: + type: boolean + chapAuthSession: + type: boolean + fsType: + type: string + initiatorName: + type: string + iqn: + type: string + iscsiInterface: + type: string + lun: + format: int32 + type: integer + portals: + items: + type: string + type: array + x-kubernetes-list-type: atomic + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + targetPortal: + type: string + required: + - iqn + - lun + - targetPortal + type: object + nfs: + properties: + path: + type: string + readOnly: + type: boolean + server: + type: string + required: + - path + - server + type: object + persistentVolumeClaim: + properties: + claimName: + type: string + readOnly: + type: boolean + required: + - claimName + type: object + photonPersistentDisk: + properties: + fsType: + type: string + pdID: + type: string + required: + - pdID + type: object + portworxVolume: + properties: + fsType: + type: string + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + projected: + properties: + defaultMode: + format: int32 + type: integer + sources: + items: + properties: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + name: + type: string + optional: + type: boolean + path: + type: string + signerName: + type: string + required: + - path + type: object + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + format: int64 + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + x-kubernetes-list-type: atomic + type: object + quobyte: + properties: + group: + type: string + readOnly: + type: boolean + registry: + type: string + tenant: + type: string + user: + type: string + volume: + type: string + required: + - registry + - volume + type: object + rbd: + properties: + fsType: + type: string + image: + type: string + keyring: + type: string + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + pool: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - image + - monitors + type: object + scaleIO: + properties: + fsType: + type: string + gateway: + type: string + protectionDomain: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + sslEnabled: + type: boolean + storageMode: + type: string + storagePool: + type: string + system: + type: string + volumeName: + type: string + required: + - gateway + - secretRef + - system + type: object + secret: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + volumeName: + type: string + volumeNamespace: + type: string + type: object + volumeClaimTemplate: + properties: + metadata: + properties: + annotations: + additionalProperties: + type: string + type: object + generateName: + type: string + labels: + additionalProperties: + type: string + type: object + name: + type: string + namespace: + type: string + ownerReferences: + items: + properties: + apiVersion: + type: string + blockOwnerDeletion: + type: boolean + controller: + type: boolean + kind: + type: string + name: + type: string + uid: + type: string + required: + - apiVersion + - kind + - name + - uid + type: object + x-kubernetes-map-type: atomic + type: array + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + vsphereVolume: + properties: + fsType: + type: string + storagePolicyID: + type: string + storagePolicyName: + type: string + volumePath: + type: string + required: + - volumePath + type: object + type: object + type: object + type: array + name: + type: string + params: + type: object + x-kubernetes-preserve-unknown-fields: true + targetVolumes: + properties: + volumeClaimTemplates: + items: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + properties: + annotations: + additionalProperties: + type: string + type: object + generateName: + type: string + labels: + additionalProperties: + type: string + type: object + name: + type: string + namespace: + type: string + ownerReferences: + items: + properties: + apiVersion: + type: string + blockOwnerDeletion: + type: boolean + controller: + type: boolean + kind: + type: string + name: + type: string + uid: + type: string + required: + - apiVersion + - kind + - name + - uid + type: object + x-kubernetes-map-type: atomic + type: array + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + status: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + allocatedResourceStatuses: + additionalProperties: + type: string + type: object + x-kubernetes-map-type: granular + allocatedResources: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + capacity: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + conditions: + items: + properties: + lastProbeTime: + format: date-time + type: string + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + type: string + status: + type: string + type: + type: string + required: + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + currentVolumeAttributesClassName: + type: string + modifyVolumeStatus: + properties: + status: + type: string + targetVolumeAttributesClassName: + type: string + required: + - status + type: object + phase: + type: string + type: object + type: object + type: array + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + volumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + azureDisk: + properties: + cachingMode: + type: string + diskName: + type: string + diskURI: + type: string + fsType: + type: string + kind: + type: string + readOnly: + type: boolean + required: + - diskName + - diskURI + type: object + azureFile: + properties: + readOnly: + type: boolean + secretName: + type: string + shareName: + type: string + required: + - secretName + - shareName + type: object + cephfs: + properties: + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - monitors + type: object + cinder: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + volumeID: + type: string + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + required: + - driver + type: object + downwardAPI: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + emptyDir: + properties: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + properties: + annotations: + additionalProperties: + type: string + type: object + generateName: + type: string + labels: + additionalProperties: + type: string + type: object + name: + type: string + namespace: + type: string + ownerReferences: + items: + properties: + apiVersion: + type: string + blockOwnerDeletion: + type: boolean + controller: + type: boolean + kind: + type: string + name: + type: string + uid: + type: string + required: + - apiVersion + - kind + - name + - uid + type: object + x-kubernetes-map-type: atomic + type: array + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + format: int32 + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + wwids: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + required: + - driver + type: object + flocker: + properties: + datasetName: + type: string + datasetUUID: + type: string + type: object + gcePersistentDisk: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + pdName: + type: string + readOnly: + type: boolean + required: + - pdName + type: object + glusterfs: + properties: + endpoints: + type: string + path: + type: string + readOnly: + type: boolean + required: + - endpoints + - path + type: object + hostPath: + properties: + path: + type: string + type: + type: string + required: + - path + type: object + iscsi: + properties: + chapAuthDiscovery: + type: boolean + chapAuthSession: + type: boolean + fsType: + type: string + initiatorName: + type: string + iqn: + type: string + iscsiInterface: + type: string + lun: + format: int32 + type: integer + portals: + items: + type: string + type: array + x-kubernetes-list-type: atomic + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + targetPortal: + type: string + required: + - iqn + - lun + - targetPortal + type: object + name: + type: string + nfs: + properties: + path: + type: string + readOnly: + type: boolean + server: + type: string + required: + - path + - server + type: object + persistentVolumeClaim: + properties: + claimName: + type: string + readOnly: + type: boolean + required: + - claimName + type: object + photonPersistentDisk: + properties: + fsType: + type: string + pdID: + type: string + required: + - pdID + type: object + portworxVolume: + properties: + fsType: + type: string + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + projected: + properties: + defaultMode: + format: int32 + type: integer + sources: + items: + properties: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + name: + type: string + optional: + type: boolean + path: + type: string + signerName: + type: string + required: + - path + type: object + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + format: int64 + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + x-kubernetes-list-type: atomic + type: object + quobyte: + properties: + group: + type: string + readOnly: + type: boolean + registry: + type: string + tenant: + type: string + user: + type: string + volume: + type: string + required: + - registry + - volume + type: object + rbd: + properties: + fsType: + type: string + image: + type: string + keyring: + type: string + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + pool: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - image + - monitors + type: object + scaleIO: + properties: + fsType: + type: string + gateway: + type: string + protectionDomain: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + sslEnabled: + type: boolean + storageMode: + type: string + storagePool: + type: string + system: + type: string + volumeName: + type: string + required: + - gateway + - secretRef + - system + type: object + secret: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + volumeName: + type: string + volumeNamespace: + type: string + type: object + vsphereVolume: + properties: + fsType: + type: string + storagePolicyID: + type: string + storagePolicyName: + type: string + volumePath: + type: string + required: + - volumePath + type: object + required: + - name + type: object + type: array + type: object + variables: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + type: object + type: array + type: object + target: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - name + type: object + type: object + retryConfig: + properties: + delay: + type: string + maxRetry: + default: 1 + format: int32 + minimum: 1 + type: integer + type: object + runtimeSettings: + properties: + container: + properties: + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + envFrom: + items: + properties: + configMapRef: + properties: + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + prefix: + type: string + secretRef: + properties: + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + type: object + type: array + ionice: + properties: + class: + format: int32 + type: integer + classData: + format: int32 + type: integer + type: object + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + preStop: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + type: object + livenessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + nice: + properties: + adjustment: + format: int32 + type: integer + type: object + readinessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + securityContext: + properties: + allowPrivilegeEscalation: + type: boolean + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + capabilities: + properties: + add: + items: + type: string + type: array + x-kubernetes-list-type: atomic + drop: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + type: object + pod: + properties: + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + weight: + format: int32 + type: integer + required: + - preference + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-type: atomic + required: + - nodeSelectorTerms + type: object + x-kubernetes-map-type: atomic + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + type: object + automountServiceAccountToken: + type: boolean + enableServiceLinks: + type: boolean + imagePullSecrets: + items: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + type: array + nodeName: + type: string + nodeSelector: + additionalProperties: + type: string + type: object + podAnnotations: + additionalProperties: + type: string + type: object + podLabels: + additionalProperties: + type: string + type: object + priority: + format: int32 + type: integer + priorityClassName: + type: string + readinessGates: + items: + properties: + conditionType: + type: string + required: + - conditionType + type: object + type: array + runtimeClassName: + type: string + schedulerName: + type: string + securityContext: + properties: + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + fsGroup: + format: int64 + type: integer + fsGroupChangePolicy: + type: string + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + supplementalGroups: + items: + format: int64 + type: integer + type: array + x-kubernetes-list-type: atomic + sysctls: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + serviceAccountAnnotations: + additionalProperties: + type: string + type: object + serviceAccountName: + type: string + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + format: int64 + type: integer + value: + type: string + type: object + type: array + topologySpreadConstraints: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + maxSkew: + format: int32 + type: integer + minDomains: + format: int32 + type: integer + nodeAffinityPolicy: + type: string + nodeTaintsPolicy: + type: string + topologyKey: + type: string + whenUnsatisfiable: + type: string + required: + - maxSkew + - topologyKey + - whenUnsatisfiable + type: object + type: array + x-kubernetes-list-map-keys: + - topologyKey + - whenUnsatisfiable + x-kubernetes-list-type: map + type: object + type: object + scheduler: + properties: + concurrencyPolicy: + type: string + failedJobsHistoryLimit: + format: int32 + type: integer + jobTemplate: + properties: + activeDeadlineSeconds: + format: int64 + type: integer + backoffLimit: + format: int32 + type: integer + completionMode: + type: string + completions: + format: int32 + type: integer + parallelism: + format: int32 + type: integer + suspend: + type: boolean + template: + properties: + controller: + properties: + annotations: + additionalProperties: + type: string + type: object + labels: + additionalProperties: + type: string + type: object + type: object + metadata: + properties: + annotations: + additionalProperties: + type: string + type: object + labels: + additionalProperties: + type: string + type: object + type: object + spec: + properties: + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + weight: + format: int32 + type: integer + required: + - preference + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-type: atomic + required: + - nodeSelectorTerms + type: object + x-kubernetes-map-type: atomic + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + type: object + args: + items: + type: string + type: array + containerSecurityContext: + properties: + allowPrivilegeEscalation: + type: boolean + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + capabilities: + properties: + add: + items: + type: string + type: array + x-kubernetes-list-type: atomic + drop: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + dnsConfig: + properties: + nameservers: + items: + type: string + type: array + x-kubernetes-list-type: atomic + options: + items: + properties: + name: + type: string + value: + type: string + type: object + type: array + x-kubernetes-list-type: atomic + searches: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + dnsPolicy: + type: string + enableServiceLinks: + type: boolean + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + hostIPC: + type: boolean + hostNetwork: + type: boolean + hostPID: + type: boolean + imagePullSecrets: + items: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + type: array + initContainers: + items: + properties: + args: + items: + type: string + type: array + x-kubernetes-list-type: atomic + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + envFrom: + items: + properties: + configMapRef: + properties: + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + prefix: + type: string + secretRef: + properties: + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + type: object + type: array + x-kubernetes-list-type: atomic + image: + type: string + imagePullPolicy: + type: string + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + preStop: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + type: object + livenessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + name: + type: string + ports: + items: + properties: + containerPort: + format: int32 + type: integer + hostIP: + type: string + hostPort: + format: int32 + type: integer + name: + type: string + protocol: + default: TCP + type: string + required: + - containerPort + type: object + type: array + x-kubernetes-list-map-keys: + - containerPort + - protocol + x-kubernetes-list-type: map + readinessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + resizePolicy: + items: + properties: + resourceName: + type: string + restartPolicy: + type: string + required: + - resourceName + - restartPolicy + type: object + type: array + x-kubernetes-list-type: atomic + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + restartPolicy: + type: string + securityContext: + properties: + allowPrivilegeEscalation: + type: boolean + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + capabilities: + properties: + add: + items: + type: string + type: array + x-kubernetes-list-type: atomic + drop: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + startupProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + stdin: + type: boolean + stdinOnce: + type: boolean + terminationMessagePath: + type: string + terminationMessagePolicy: + type: string + tty: + type: boolean + volumeDevices: + items: + properties: + devicePath: + type: string + name: + type: string + required: + - devicePath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - devicePath + x-kubernetes-list-type: map + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - mountPath + x-kubernetes-list-type: map + workingDir: + type: string + required: + - name + type: object + type: array + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + preStop: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + type: object + livenessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + nodeSelector: + additionalProperties: + type: string + type: object + x-kubernetes-map-type: atomic + podPlacementPolicy: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + priority: + format: int32 + type: integer + priorityClassName: + type: string + readinessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + runtimeClassName: + type: string + schedulerName: + type: string + securityContext: + properties: + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + fsGroup: + format: int64 + type: integer + fsGroupChangePolicy: + type: string + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + supplementalGroups: + items: + format: int64 + type: integer + type: array + x-kubernetes-list-type: atomic + sysctls: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + serviceAccountName: + type: string + shareProcessNamespace: + type: boolean + terminationGracePeriodSeconds: + format: int64 + type: integer + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + format: int64 + type: integer + value: + type: string + type: object + type: array + topologySpreadConstraints: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + maxSkew: + format: int32 + type: integer + minDomains: + format: int32 + type: integer + nodeAffinityPolicy: + type: string + nodeTaintsPolicy: + type: string + topologyKey: + type: string + whenUnsatisfiable: + type: string + required: + - maxSkew + - topologyKey + - whenUnsatisfiable + type: object + type: array + x-kubernetes-list-map-keys: + - topologyKey + - whenUnsatisfiable + x-kubernetes-list-type: map + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + volumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + azureDisk: + properties: + cachingMode: + type: string + diskName: + type: string + diskURI: + type: string + fsType: + type: string + kind: + type: string + readOnly: + type: boolean + required: + - diskName + - diskURI + type: object + azureFile: + properties: + readOnly: + type: boolean + secretName: + type: string + shareName: + type: string + required: + - secretName + - shareName + type: object + cephfs: + properties: + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - monitors + type: object + cinder: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + volumeID: + type: string + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + required: + - driver + type: object + downwardAPI: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + emptyDir: + properties: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + properties: + annotations: + additionalProperties: + type: string + type: object + generateName: + type: string + labels: + additionalProperties: + type: string + type: object + name: + type: string + namespace: + type: string + ownerReferences: + items: + properties: + apiVersion: + type: string + blockOwnerDeletion: + type: boolean + controller: + type: boolean + kind: + type: string + name: + type: string + uid: + type: string + required: + - apiVersion + - kind + - name + - uid + type: object + x-kubernetes-map-type: atomic + type: array + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + format: int32 + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + wwids: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + required: + - driver + type: object + flocker: + properties: + datasetName: + type: string + datasetUUID: + type: string + type: object + gcePersistentDisk: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + pdName: + type: string + readOnly: + type: boolean + required: + - pdName + type: object + glusterfs: + properties: + endpoints: + type: string + path: + type: string + readOnly: + type: boolean + required: + - endpoints + - path + type: object + hostPath: + properties: + path: + type: string + type: + type: string + required: + - path + type: object + iscsi: + properties: + chapAuthDiscovery: + type: boolean + chapAuthSession: + type: boolean + fsType: + type: string + initiatorName: + type: string + iqn: + type: string + iscsiInterface: + type: string + lun: + format: int32 + type: integer + portals: + items: + type: string + type: array + x-kubernetes-list-type: atomic + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + targetPortal: + type: string + required: + - iqn + - lun + - targetPortal + type: object + name: + type: string + nfs: + properties: + path: + type: string + readOnly: + type: boolean + server: + type: string + required: + - path + - server + type: object + persistentVolumeClaim: + properties: + claimName: + type: string + readOnly: + type: boolean + required: + - claimName + type: object + photonPersistentDisk: + properties: + fsType: + type: string + pdID: + type: string + required: + - pdID + type: object + portworxVolume: + properties: + fsType: + type: string + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + projected: + properties: + defaultMode: + format: int32 + type: integer + sources: + items: + properties: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + name: + type: string + optional: + type: boolean + path: + type: string + signerName: + type: string + required: + - path + type: object + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + format: int64 + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + x-kubernetes-list-type: atomic + type: object + quobyte: + properties: + group: + type: string + readOnly: + type: boolean + registry: + type: string + tenant: + type: string + user: + type: string + volume: + type: string + required: + - registry + - volume + type: object + rbd: + properties: + fsType: + type: string + image: + type: string + keyring: + type: string + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + pool: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - image + - monitors + type: object + scaleIO: + properties: + fsType: + type: string + gateway: + type: string + protectionDomain: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + sslEnabled: + type: boolean + storageMode: + type: string + storagePool: + type: string + system: + type: string + volumeName: + type: string + required: + - gateway + - secretRef + - system + type: object + secret: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + volumeName: + type: string + volumeNamespace: + type: string + type: object + vsphereVolume: + properties: + fsType: + type: string + storagePolicyID: + type: string + storagePolicyName: + type: string + volumePath: + type: string + required: + - volumePath + type: object + required: + - name + type: object + type: array + type: object + type: object + ttlSecondsAfterFinished: + format: int32 + type: integer + type: object + schedule: + type: string + startingDeadlineSeconds: + format: int64 + type: integer + successfulJobsHistoryLimit: + format: int32 + type: integer + suspend: + type: boolean + required: + - jobTemplate + - schedule + type: object + script: + properties: + args: + items: + type: string + type: array + location: + type: string + type: object + sessionHistoryLimit: + default: 1 + format: int32 + type: integer + type: + enum: + - RestoreOnly + - Query + - Script + type: string + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + volumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + azureDisk: + properties: + cachingMode: + type: string + diskName: + type: string + diskURI: + type: string + fsType: + type: string + kind: + type: string + readOnly: + type: boolean + required: + - diskName + - diskURI + type: object + azureFile: + properties: + readOnly: + type: boolean + secretName: + type: string + shareName: + type: string + required: + - secretName + - shareName + type: object + cephfs: + properties: + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - monitors + type: object + cinder: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + volumeID: + type: string + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + required: + - driver + type: object + downwardAPI: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + emptyDir: + properties: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + properties: + annotations: + additionalProperties: + type: string + type: object + generateName: + type: string + labels: + additionalProperties: + type: string + type: object + name: + type: string + namespace: + type: string + ownerReferences: + items: + properties: + apiVersion: + type: string + blockOwnerDeletion: + type: boolean + controller: + type: boolean + kind: + type: string + name: + type: string + uid: + type: string + required: + - apiVersion + - kind + - name + - uid + type: object + x-kubernetes-map-type: atomic + type: array + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + format: int32 + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + wwids: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + required: + - driver + type: object + flocker: + properties: + datasetName: + type: string + datasetUUID: + type: string + type: object + gcePersistentDisk: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + pdName: + type: string + readOnly: + type: boolean + required: + - pdName + type: object + glusterfs: + properties: + endpoints: + type: string + path: + type: string + readOnly: + type: boolean + required: + - endpoints + - path + type: object + hostPath: + properties: + path: + type: string + type: + type: string + required: + - path + type: object + iscsi: + properties: + chapAuthDiscovery: + type: boolean + chapAuthSession: + type: boolean + fsType: + type: string + initiatorName: + type: string + iqn: + type: string + iscsiInterface: + type: string + lun: + format: int32 + type: integer + portals: + items: + type: string + type: array + x-kubernetes-list-type: atomic + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + targetPortal: + type: string + required: + - iqn + - lun + - targetPortal + type: object + name: + type: string + nfs: + properties: + path: + type: string + readOnly: + type: boolean + server: + type: string + required: + - path + - server + type: object + persistentVolumeClaim: + properties: + claimName: + type: string + readOnly: + type: boolean + required: + - claimName + type: object + photonPersistentDisk: + properties: + fsType: + type: string + pdID: + type: string + required: + - pdID + type: object + portworxVolume: + properties: + fsType: + type: string + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + projected: + properties: + defaultMode: + format: int32 + type: integer + sources: + items: + properties: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + name: + type: string + optional: + type: boolean + path: + type: string + signerName: + type: string + required: + - path + type: object + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + format: int64 + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + x-kubernetes-list-type: atomic + type: object + quobyte: + properties: + group: + type: string + readOnly: + type: boolean + registry: + type: string + tenant: + type: string + user: + type: string + volume: + type: string + required: + - registry + - volume + type: object + rbd: + properties: + fsType: + type: string + image: + type: string + keyring: + type: string + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + pool: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - image + - monitors + type: object + scaleIO: + properties: + fsType: + type: string + gateway: + type: string + protectionDomain: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + sslEnabled: + type: boolean + storageMode: + type: string + storagePool: + type: string + system: + type: string + volumeName: + type: string + required: + - gateway + - secretRef + - system + type: object + secret: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + volumeName: + type: string + volumeNamespace: + type: string + type: object + vsphereVolume: + properties: + fsType: + type: string + storagePolicyID: + type: string + storagePolicyName: + type: string + volumePath: + type: string + required: + - volumePath + type: object + required: + - name + type: object + type: array + type: object + type: object diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/core.kubestash.com/v1alpha1/hooktemplates.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/core.kubestash.com/v1alpha1/hooktemplates.yaml index 580265638..1f2be292c 100644 --- a/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/core.kubestash.com/v1alpha1/hooktemplates.yaml +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/core.kubestash.com/v1alpha1/hooktemplates.yaml @@ -17,22 +17,10 @@ spec: version: v1alpha1 validation: openAPIV3Schema: - description: HookTemplate defines a template for some action that will be executed - before or/and after backup/restore process. For example, there could be a - HookTemplate that pause an application before backup and another HookTemplate - that resume the application after backup. This is a namespaced CRD. However, - you can use it from other namespaces. You can control which namespaces are - allowed to use it using the `usagePolicy` section. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: properties: @@ -68,58 +56,29 @@ spec: type: object type: object spec: - description: HookTemplateSpec defines the template for the operation that - will be performed by this hook properties: action: - description: 'Action specifies the operation that is performed by this - HookTemplate Valid values are: - "exec": Execute command in a shell - - "httpGet": Do an HTTP GET request - "httpPost": Do an HTTP POST - request - "tcpSocket": Check if a TCP socket open or not' properties: containerName: - description: ContainerName specifies the name of the container where - to execute the commands for Exec probe or where to find the port - for HTTP or TCP probe type: string exec: - description: One and only one of the following should be specified. - Exec specifies the action to take. properties: command: - description: Command is the command line to execute inside the - container, the working directory for the command is root - ('/') in the container's filesystem. The command is simply - exec'd, it is not run inside a shell, so traditional shell - instructions ('|', etc) won't work. To use a shell, you need - to explicitly call out to that shell. Exit status of 0 is - treated as live/healthy and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http Get request to perform. properties: host: - description: Host name to connect to, defaults to the pod IP. - You probably want to set "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in the request. HTTP allows - repeated headers. items: - description: HTTPHeader describes a custom header to be used - in HTTP probes properties: name: - description: The header field name. This will be canonicalized - upon output, so case-variant names will be understood - as the same header. type: string value: - description: The header field value type: string required: - name @@ -128,30 +87,22 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port to access on the container. - Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting to the host. Defaults - to HTTP. type: string required: - port type: object httpPost: - description: HTTPPost specifies the http Post request to perform. properties: body: - description: Body to set in the request. type: string form: - description: Form to set in the request body. items: properties: key: @@ -163,23 +114,13 @@ spec: type: object type: array host: - description: Host name to connect to, defaults to the pod IP. - You probably want to set "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in the request. HTTP allows - repeated headers. items: - description: HTTPHeader describes a custom header to be used - in HTTP probes properties: name: - description: The header field name. This will be canonicalized - upon output, so case-variant names will be understood - as the same header. type: string value: - description: The header field value type: string required: - name @@ -187,168 +128,90 @@ spec: type: object type: array path: - description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port to access on the container. - Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting to the host. Defaults - to HTTP. type: string required: - port type: object tcpSocket: - description: 'TCPSocket specifies an action involving a TCP port. - TCP hooks not yet supported TODO: implement a realistic TCP lifecycle - hook' properties: host: - description: 'Optional: Host name to connect to, defaults to - the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port to access on the container. - Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object type: object executor: - description: Executor specifies the entity where the hook will be executed. properties: function: - description: Function specifies the function information which will - be used to create the hook executor job. properties: env: - description: EnvVariables specifies a list of environment variables - that will be passed to the executor container items: - description: EnvVar represents an environment variable present - in a Container. properties: name: - description: Name of the environment variable. Must be - a C_IDENTIFIER. type: string value: - description: 'Variable references $(VAR_NAME) are expanded - using the previously defined environment variables in - the container and any service environment variables. - If a variable cannot be resolved, the reference in the - input string will be unchanged. Double $$ are reduced - to a single $, which allows for escaping the $(VAR_NAME) - syntax: i.e. "$$(VAR_NAME)" will produce the string - literal "$(VAR_NAME)". Escaped references will never - be expanded, regardless of whether the variable exists - or not. Defaults to "".' type: string valueFrom: - description: Source for the environment variable's value. - Cannot be used if value is not empty. properties: configMapKeyRef: - description: Selects a key of a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are almost - certainly wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap or - its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field of the pod: supports - metadata.name, metadata.namespace, `metadata.labels['''']`, - `metadata.annotations['''']`, spec.nodeName, - spec.serviceAccountName, status.hostIP, status.podIP, - status.podIPs.' properties: apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". type: string fieldPath: - description: Path of the field to select in the - specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource of the container: - only resources limits and requests (limits.cpu, - limits.memory, limits.ephemeral-storage, requests.cpu, - requests.memory and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: required for volumes, - optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource to select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret in the pod's - namespace properties: key: - description: The key of the secret to select from. Must - be a valid secret key. type: string name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are almost - certainly wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret or its - key must be defined type: boolean required: - key @@ -360,63 +223,23 @@ spec: type: object type: array name: - description: Name indicate the name of the Function that contains - the container definition for executing the hook logic type: string volumeMounts: - description: VolumeMounts specifies the volumes mounts for the - executor container items: - description: VolumeMount describes a mounting of a Volume - within a container. properties: mountPath: - description: Path within the container at which the volume - should be mounted. Must not contain ':'. type: string mountPropagation: - description: mountPropagation determines how mounts are - propagated from the host to container and the other - way around. When not set, MountPropagationNone is used. - This field is beta in 1.10. When RecursiveReadOnly is - set to IfPossible or to Enabled, MountPropagation must - be None or unspecified (which defaults to None). type: string name: - description: This must match the Name of a Volume. type: string readOnly: - description: Mounted read-only if true, read-write otherwise - (false or unspecified). Defaults to false. type: boolean recursiveReadOnly: - description: "RecursiveReadOnly specifies whether read-only - mounts should be handled recursively. \n If ReadOnly - is false, this field has no meaning and must be unspecified. - \n If ReadOnly is true, and this field is set to Disabled, - the mount is not made recursively read-only. If this - field is set to IfPossible, the mount is made recursively - read-only, if it is supported by the container runtime. - \ If this field is set to Enabled, the mount is made - recursively read-only if it is supported by the container - runtime, otherwise the pod will not be started and an - error will be generated to indicate the reason. \n If - this field is set to IfPossible or Enabled, MountPropagation - must be set to None (or be unspecified, which defaults - to None). \n If this field is not specified, it is treated - as an equivalent of Disabled." type: string subPath: - description: Path within the volume from which the container's - volume should be mounted. Defaults to "" (volume's root). type: string subPathExpr: - description: Expanded path within the volume from which - the container's volume should be mounted. Behaves similarly - to SubPath but environment variable references $(VAR_NAME) - are expanded using the container's environment. Defaults - to "" (volume's root). SubPathExpr and SubPath are mutually - exclusive. type: string required: - mountPath @@ -424,251 +247,109 @@ spec: type: object type: array volumes: - description: Volumes specifies the volumes that will be mounted - in the executor container items: - description: Volume represents a named volume in a pod that - may be accessed by any container in the pod. properties: awsElasticBlockStore: - description: 'awsElasticBlockStore represents an AWS Disk - resource that is attached to a kubelet''s host machine - and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' properties: fsType: - description: 'fsType is the filesystem type of the - volume that you want to mount. Tip: Ensure that - the filesystem type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string partition: - description: 'partition is the partition in the volume - that you want to mount. If omitted, the default - is to mount by volume name. Examples: For volume - /dev/sda1, you specify the partition as "1". Similarly, - the volume partition for /dev/sda is "0" (or you - can leave the property empty).' format: int32 type: integer readOnly: - description: 'readOnly value true will force the readOnly - setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: boolean volumeID: - description: 'volumeID is unique ID of the persistent - disk resource in AWS (Amazon EBS volume). More info: - https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: string required: - volumeID type: object azureDisk: - description: azureDisk represents an Azure Data Disk mount - on the host and bind mount to the pod. properties: cachingMode: - description: 'cachingMode is the Host Caching mode: - None, Read Only, Read Write.' type: string diskName: - description: diskName is the Name of the data disk - in the blob storage type: string diskURI: - description: diskURI is the URI of data disk in the - blob storage type: string fsType: - description: fsType is Filesystem type to mount. Must - be a filesystem type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred - to be "ext4" if unspecified. type: string kind: - description: 'kind expected values are Shared: multiple - blob disks per storage account Dedicated: single - blob disk per storage account Managed: azure managed - data disk (only in managed availability set). defaults - to shared' type: string readOnly: - description: readOnly Defaults to false (read/write). - ReadOnly here will force the ReadOnly setting in - VolumeMounts. type: boolean required: - diskName - diskURI type: object azureFile: - description: azureFile represents an Azure File Service - mount on the host and bind mount to the pod. properties: readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting in - VolumeMounts. type: boolean secretName: - description: secretName is the name of secret that - contains Azure Storage Account Name and Key type: string shareName: - description: shareName is the azure share Name type: string required: - secretName - shareName type: object cephfs: - description: cephFS represents a Ceph FS mount on the - host that shares a pod's lifetime properties: monitors: - description: 'monitors is Required: Monitors is a - collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic path: - description: 'path is Optional: Used as the mounted - root, rather than the full Ceph tree, default is - /' type: string readOnly: - description: 'readOnly is Optional: Defaults to false - (read/write). ReadOnly here will force the ReadOnly - setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: boolean secretFile: - description: 'secretFile is Optional: SecretFile is - the path to key ring for User, default is /etc/ceph/user.secret - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string secretRef: - description: 'secretRef is Optional: SecretRef is - reference to the authentication secret for User, - default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are almost - certainly wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is optional: User is the rados - user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string required: - monitors type: object cinder: - description: 'cinder represents a cinder volume attached - and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' properties: fsType: - description: 'fsType is the filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if unspecified. - More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string readOnly: - description: 'readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting in - VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: boolean secretRef: - description: 'secretRef is optional: points to a secret - object containing parameters used to connect to - OpenStack.' properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are almost - certainly wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeID: - description: 'volumeID used to identify the volume - in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string required: - volumeID type: object configMap: - description: configMap represents a configMap that should - populate this volume properties: defaultMode: - description: 'defaultMode is optional: mode bits used - to set permissions on created files by default. - Must be an octal value between 0000 and 0777 or - a decimal value between 0 and 511. YAML accepts - both octal and decimal values, JSON requires decimal - values for mode bits. Defaults to 0644. Directories - within the path are not affected by this setting. - This might be in conflict with other options that - affect the file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer items: - description: items if unspecified, each key-value - pair in the Data field of the referenced ConfigMap - will be projected into the volume as a file whose - name is the key and content is the value. If specified, - the listed keys will be projected into the specified - paths, and unlisted keys will not be present. If - a key is specified which is not present in the ConfigMap, - the volume setup will error unless it is marked - optional. Paths must be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key to a path within - a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: mode bits used - to set permissions on this file. Must be an - octal value between 0000 and 0777 or a decimal - value between 0 and 511. YAML accepts both - octal and decimal values, JSON requires decimal - values for mode bits. If not specified, the - volume defaultMode will be used. This might - be in conflict with other options that affect - the file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative path of the - file to map the key to. May not be an absolute - path. May not contain the path element '..'. - May not start with the string '..'. type: string required: - key @@ -678,156 +359,67 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. This field is - effectively required, but due to backwards compatibility - is allowed to be empty. Instances of this type with - an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, - uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether the ConfigMap - or its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic csi: - description: csi (Container Storage Interface) represents - ephemeral storage that is handled by certain external - CSI drivers (Beta feature). properties: driver: - description: driver is the name of the CSI driver - that handles this volume. Consult with your admin - for the correct name as registered in the cluster. type: string fsType: - description: fsType to mount. Ex. "ext4", "xfs", "ntfs". - If not provided, the empty value is passed to the - associated CSI driver which will determine the default - filesystem to apply. type: string nodePublishSecretRef: - description: nodePublishSecretRef is a reference to - the secret object containing sensitive information - to pass to the CSI driver to complete the CSI NodePublishVolume - and NodeUnpublishVolume calls. This field is optional, - and may be empty if no secret is required. If the - secret object contains more than one secret, all - secret references are passed. properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are almost - certainly wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic readOnly: - description: readOnly specifies a read-only configuration - for the volume. Defaults to false (read/write). type: boolean volumeAttributes: additionalProperties: type: string - description: volumeAttributes stores driver-specific - properties that are passed to the CSI driver. Consult - your driver's documentation for supported values. type: object required: - driver type: object downwardAPI: - description: downwardAPI represents downward API about - the pod that should populate this volume properties: defaultMode: - description: 'Optional: mode bits to use on created - files by default. Must be a Optional: mode bits - used to set permissions on created files by default. - Must be an octal value between 0000 and 0777 or - a decimal value between 0 and 511. YAML accepts - both octal and decimal values, JSON requires decimal - values for mode bits. Defaults to 0644. Directories - within the path are not affected by this setting. - This might be in conflict with other options that - affect the file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer items: - description: Items is a list of downward API volume - file items: - description: DownwardAPIVolumeFile represents information - to create the file containing the pod field properties: fieldRef: - description: 'Required: Selects a field of the - pod: only annotations, labels, name, namespace - and uid are supported.' properties: apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". type: string fieldPath: - description: Path of the field to select - in the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode bits used to set - permissions on this file, must be an octal - value between 0000 and 0777 or a decimal value - between 0 and 511. YAML accepts both octal - and decimal values, JSON requires decimal - values for mode bits. If not specified, the - volume defaultMode will be used. This might - be in conflict with other options that affect - the file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: 'Required: Path is the relative - path name of the file to be created. Must - not be absolute or contain the ''..'' path. - Must be utf-8 encoded. The first item of the - relative path must not start with ''..''' type: string resourceFieldRef: - description: 'Selects a resource of the container: - only resources limits and requests (limits.cpu, - limits.memory, requests.cpu and requests.memory) - are currently supported.' properties: containerName: - description: 'Container name: required for - volumes, optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output format - of the exposed resources, defaults to - "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource to select' type: string required: - resource @@ -840,192 +432,50 @@ spec: x-kubernetes-list-type: atomic type: object emptyDir: - description: 'emptyDir represents a temporary directory - that shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' properties: medium: - description: 'medium represents what type of storage - medium should back this directory. The default is - "" which means to use the node''s default medium. - Must be an empty string (default) or Memory. More - info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' type: string sizeLimit: anyOf: - type: integer - type: string - description: 'sizeLimit is the total amount of local - storage required for this EmptyDir volume. The size - limit is also applicable for memory medium. The - maximum usage on memory medium EmptyDir would be - the minimum value between the SizeLimit specified - here and the sum of memory limits of all containers - in a pod. The default is nil which means that the - limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object ephemeral: - description: "ephemeral represents a volume that is handled - by a cluster storage driver. The volume's lifecycle - is tied to the pod that defines it - it will be created - before the pod starts, and deleted when the pod is removed. - \n Use this if: a) the volume is only needed while the - pod runs, b) features of normal volumes like restoring - from snapshot or capacity tracking are needed, c) the - storage driver is specified through a storage class, - and d) the storage driver supports dynamic volume provisioning - through a PersistentVolumeClaim (see EphemeralVolumeSource - for more information on the connection between this - volume type and PersistentVolumeClaim). \n Use PersistentVolumeClaim - or one of the vendor-specific APIs for volumes that - persist for longer than the lifecycle of an individual - pod. \n Use CSI for light-weight local ephemeral volumes - if the CSI driver is meant to be used that way - see - the documentation of the driver for more information. - \n A pod can use both types of ephemeral volumes and - persistent volumes at the same time." properties: volumeClaimTemplate: - description: "Will be used to create a stand-alone - PVC to provision the volume. The pod in which this - EphemeralVolumeSource is embedded will be the owner - of the PVC, i.e. the PVC will be deleted together - with the pod. The name of the PVC will be `-` where `` is the - name from the `PodSpec.Volumes` array entry. Pod - validation will reject the pod if the concatenated - name is not valid for a PVC (for example, too long). - \n An existing PVC with that name that is not owned - by the pod will *not* be used for the pod to avoid - using an unrelated volume by mistake. Starting the - pod is then blocked until the unrelated PVC is removed. - If such a pre-created PVC is meant to be used by - the pod, the PVC has to updated with an owner reference - to the pod once the pod exists. Normally this should - not be necessary, but it may be useful when manually - reconstructing a broken cluster. \n This field is - read-only and no changes will be made by Kubernetes - to the PVC after it has been created. \n Required, - must not be nil." properties: metadata: - description: May contain labels and annotations - that will be copied into the PVC when creating - it. No other fields are allowed and will be - rejected during validation. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured - key value map stored with a resource that - may be set by external tools to store and - retrieve arbitrary metadata. They are not - queryable and should be preserved when modifying - objects. More info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName is an optional - prefix, used by the server, to generate - a unique name ONLY IF the Name field has - not been provided. If this field is used, - the name returned to the client will be - different than the name passed. This value - will also be combined with a unique suffix. - The provided value has the same validation - rules as the Name field, and may be truncated - by the length of the suffix required to - make the value unique on the server. \n - If this field is specified and the generated - name exists, the server will NOT return - a 409 - instead, it will either return 201 - Created or 500 with Reason ServerTimeout - indicating a unique name could not be found - in the time allotted, and the client should - retry (optionally after the time indicated - in the Retry-After header). \n Applied only - if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string keys and values - that can be used to organize and categorize - (scope and select) objects. May match selectors - of replication controllers and services. - More info: http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must be unique within a - namespace. Is required when creating resources, - although some resources may allow a client - to request the generation of an appropriate - name automatically. Name is primarily intended - for creation idempotence and configuration - definition. Cannot be updated. More info: - http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace defines the space - within each name must be unique. An empty - namespace is equivalent to the \"default\" - namespace, but \"default\" is the canonical - representation. Not all objects are required - to be scoped to a namespace - the value - of this field for those objects will be - empty. \n Must be a DNS_LABEL. Cannot be - updated. More info: http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects depended by this - object. If ALL objects in the list have - been deleted, this object will be garbage - collected. If this object is managed by - a controller, then an entry in this list - will point to this controller, with the - controller field set to true. There cannot - be more than one managing controller. items: - description: OwnerReference contains enough - information to let you identify an owning - object. An owning object must be in the - same namespace as the dependent, or be - cluster-scoped, so there is no namespace - field. properties: apiVersion: - description: API version of the referent. type: string blockOwnerDeletion: - description: If true, AND if the owner - has the "foregroundDeletion" finalizer, - then the owner cannot be deleted from - the key-value store until this reference - is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage collector interacts - with this field and enforces the foreground - deletion. Defaults to false. To set - this field, a user needs "delete" - permission of the owner, otherwise - 422 (Unprocessable Entity) will be - returned. type: boolean controller: - description: If true, this reference - points to the managing controller. type: boolean kind: - description: 'Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the referent. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -1037,51 +487,19 @@ spec: type: array type: object spec: - description: The specification for the PersistentVolumeClaim. - The entire content is copied unchanged into - the PVC that gets created from this template. - The same fields as in a PersistentVolumeClaim - are also valid here. properties: accessModes: - description: 'accessModes contains the desired - access modes the volume should have. More - info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource field can be used - to specify either: * An existing VolumeSnapshot - object (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an external controller - can support the specified data source, it - will create a new volume based on the contents - of the specified data source. When the AnyVolumeDataSource - feature gate is enabled, dataSource contents - will be copied to dataSourceRef, and dataSourceRef - contents will be copied to dataSource when - dataSourceRef.namespace is not specified. - If the namespace is specified, then dataSourceRef - will not be copied to dataSource.' properties: apiGroup: - description: APIGroup is the group for - the resource being referenced. If APIGroup - is not specified, the specified Kind - must be in the core API group. For any - other third-party types, APIGroup is - required. type: string kind: - description: Kind is the type of resource - being referenced type: string name: - description: Name is the name of resource - being referenced type: string required: - kind @@ -1089,82 +507,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef specifies the - object from which to populate the volume - with data, if a non-empty volume is desired. - This may be any object from a non-empty - API group (non core object) or a PersistentVolumeClaim - object. When this field is specified, volume - binding will only succeed if the type of - the specified object matches some installed - volume populator or dynamic provisioner. - This field will replace the functionality - of the dataSource field and as such if both - fields are non-empty, they must have the - same value. For backwards compatibility, - when namespace isn''t specified in dataSourceRef, - both fields (dataSource and dataSourceRef) - will be set to the same value automatically - if one of them is empty and the other is - non-empty. When namespace is specified in - dataSourceRef, dataSource isn''t set to - the same value and must be empty. There - are three important differences between - dataSource and dataSourceRef: * While dataSource - only allows two specific types of objects, - dataSourceRef allows any non-core object, - as well as PersistentVolumeClaim objects. - * While dataSource ignores disallowed values - (dropping them), dataSourceRef preserves - all values, and generates an error if a - disallowed value is specified. * While dataSource - only allows local objects, dataSourceRef - allows objects in any namespaces. (Beta) - Using this field requires the AnyVolumeDataSource - feature gate to be enabled. (Alpha) Using - the namespace field of dataSourceRef requires - the CrossNamespaceVolumeDataSource feature - gate to be enabled.' properties: apiGroup: - description: APIGroup is the group for - the resource being referenced. If APIGroup - is not specified, the specified Kind - must be in the core API group. For any - other third-party types, APIGroup is - required. type: string kind: - description: Kind is the type of resource - being referenced type: string name: - description: Name is the name of resource - being referenced type: string namespace: - description: Namespace is the namespace - of resource being referenced Note that - when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant - object is required in the referent namespace - to allow that namespace's owner to accept - the reference. See the ReferenceGrant - documentation for details. (Alpha) This - field requires the CrossNamespaceVolumeDataSource - feature gate to be enabled. type: string required: - kind - name type: object resources: - description: 'resources represents the minimum - resources the volume should have. If RecoverVolumeExpansionFailure - feature is enabled users are allowed to - specify resource requirements that are lower - than previous value but must still be higher - than capacity recorded in the status field - of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -1173,9 +529,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum - amount of compute resources allowed. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -1184,48 +537,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum - amount of compute resources required. - If Requests is omitted for a container, - it defaults to Limits if that is explicitly - specified, otherwise to an implementation-defined - value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is a label query over - volumes to consider for binding. properties: matchExpressions: - description: matchExpressions is a list - of label selector requirements. The - requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label key - that the selector applies to. type: string operator: - description: operator represents - a key's relationship to a set - of values. Valid operators are - In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array - of string values. If the operator - is In or NotIn, the values array - must be non-empty. If the operator - is Exists or DoesNotExist, the - values array must be empty. This - array is replaced during a strategic - merge patch. items: type: string type: array @@ -1239,53 +562,16 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName is the name - of the StorageClass required by the claim. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName may - be used to set the VolumeAttributesClass - used by this claim. If specified, the CSI - driver will create or update the volume - with the attributes defined in the corresponding - VolumeAttributesClass. This has a different - purpose than storageClassName, it can be - changed after the claim is created. An empty - string value means that no VolumeAttributesClass - will be applied to the claim but it''s not - allowed to reset this field to empty string - once it is set. If unspecified and the PersistentVolumeClaim - is unbound, the default VolumeAttributesClass - will be set by the persistentvolume controller - if it exists. If the resource referred to - by volumeAttributesClass does not exist, - this PersistentVolumeClaim will be set to - a Pending state, as reflected by the modifyVolumeStatus - field, until such as a resource exists. - More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires the VolumeAttributesClass - feature gate to be enabled.' type: string volumeMode: - description: volumeMode defines what type - of volume is required by the claim. Value - of Filesystem is implied when not included - in claim spec. type: string volumeName: - description: volumeName is the binding reference - to the PersistentVolume backing this claim. type: string type: object required: @@ -1293,87 +579,41 @@ spec: type: object type: object fc: - description: fc represents a Fibre Channel resource that - is attached to a kubelet's host machine and then exposed - to the pod. properties: fsType: - description: 'fsType is the filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. TODO: how - do we prevent errors in the filesystem from compromising - the machine' type: string lun: - description: 'lun is Optional: FC target lun number' format: int32 type: integer readOnly: - description: 'readOnly is Optional: Defaults to false - (read/write). ReadOnly here will force the ReadOnly - setting in VolumeMounts.' type: boolean targetWWNs: - description: 'targetWWNs is Optional: FC target worldwide - names (WWNs)' items: type: string type: array x-kubernetes-list-type: atomic wwids: - description: 'wwids Optional: FC volume world wide - identifiers (wwids) Either wwids or combination - of targetWWNs and lun must be set, but not both - simultaneously.' items: type: string type: array x-kubernetes-list-type: atomic type: object flexVolume: - description: flexVolume represents a generic volume resource - that is provisioned/attached using an exec based plugin. properties: driver: - description: driver is the name of the driver to use - for this volume. type: string fsType: - description: fsType is the filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". The - default filesystem depends on FlexVolume script. type: string options: additionalProperties: type: string - description: 'options is Optional: this field holds - extra command options if any.' type: object readOnly: - description: 'readOnly is Optional: defaults to false - (read/write). ReadOnly here will force the ReadOnly - setting in VolumeMounts.' type: boolean secretRef: - description: 'secretRef is Optional: secretRef is - reference to the secret object containing sensitive - information to pass to the plugin scripts. This - may be empty if no secret object is specified. If - the secret object contains more than one secret, - all secrets are passed to the plugin scripts.' properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are almost - certainly wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic @@ -1381,176 +621,79 @@ spec: - driver type: object flocker: - description: flocker represents a Flocker volume attached - to a kubelet's host machine. This depends on the Flocker - control service being running properties: datasetName: - description: datasetName is Name of the dataset stored - as metadata -> name on the dataset for Flocker should - be considered as deprecated type: string datasetUUID: - description: datasetUUID is the UUID of the dataset. - This is unique identifier of a Flocker dataset type: string type: object gcePersistentDisk: - description: 'gcePersistentDisk represents a GCE Disk - resource that is attached to a kubelet''s host machine - and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' properties: fsType: - description: 'fsType is filesystem type of the volume - that you want to mount. Tip: Ensure that the filesystem - type is supported by the host operating system. - Examples: "ext4", "xfs", "ntfs". Implicitly inferred - to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string partition: - description: 'partition is the partition in the volume - that you want to mount. If omitted, the default - is to mount by volume name. Examples: For volume - /dev/sda1, you specify the partition as "1". Similarly, - the volume partition for /dev/sda is "0" (or you - can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' format: int32 type: integer pdName: - description: 'pdName is unique name of the PD resource - in GCE. Used to identify the disk in GCE. More info: - https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: string readOnly: - description: 'readOnly here will force the ReadOnly - setting in VolumeMounts. Defaults to false. More - info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: boolean required: - pdName type: object glusterfs: - description: 'glusterfs represents a Glusterfs mount on - the host that shares a pod''s lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md' properties: endpoints: - description: 'endpoints is the endpoint name that - details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string path: - description: 'path is the Glusterfs volume path. More - info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string readOnly: - description: 'readOnly here will force the Glusterfs - volume to be mounted with read-only permissions. - Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: boolean required: - endpoints - path type: object hostPath: - description: 'hostPath represents a pre-existing file - or directory on the host machine that is directly exposed - to the container. This is generally used for system - agents or other privileged things that are allowed to - see the host machine. Most containers will NOT need - this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- TODO(jonesdl) We need to restrict who can use host - directory mounts and who can/can not mount host directories - as read/write.' properties: path: - description: 'path of the directory on the host. If - the path is a symlink, it will follow the link to - the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string type: - description: 'type for HostPath Volume Defaults to - "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string required: - path type: object iscsi: - description: 'iscsi represents an ISCSI Disk resource - that is attached to a kubelet''s host machine and then - exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md' properties: chapAuthDiscovery: - description: chapAuthDiscovery defines whether support - iSCSI Discovery CHAP authentication type: boolean chapAuthSession: - description: chapAuthSession defines whether support - iSCSI Session CHAP authentication type: boolean fsType: - description: 'fsType is the filesystem type of the - volume that you want to mount. Tip: Ensure that - the filesystem type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string initiatorName: - description: initiatorName is the custom iSCSI Initiator - Name. If initiatorName is specified with iscsiInterface - simultaneously, new iSCSI interface : will be created for the connection. type: string iqn: - description: iqn is the target iSCSI Qualified Name. type: string iscsiInterface: - description: iscsiInterface is the interface Name - that uses an iSCSI transport. Defaults to 'default' - (tcp). type: string lun: - description: lun represents iSCSI Target Lun number. format: int32 type: integer portals: - description: portals is the iSCSI Target Portal List. - The portal is either an IP or ip_addr:port if the - port is other than default (typically TCP ports - 860 and 3260). items: type: string type: array x-kubernetes-list-type: atomic readOnly: - description: readOnly here will force the ReadOnly - setting in VolumeMounts. Defaults to false. type: boolean secretRef: - description: secretRef is the CHAP Secret for iSCSI - target and initiator authentication properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are almost - certainly wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic targetPortal: - description: targetPortal is iSCSI Target Portal. - The Portal is either an IP or ip_addr:port if the - port is other than default (typically TCP ports - 860 and 3260). type: string required: - iqn @@ -1558,163 +701,68 @@ spec: - targetPortal type: object name: - description: 'name of the volume. Must be a DNS_LABEL - and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string nfs: - description: 'nfs represents an NFS mount on the host - that shares a pod''s lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' properties: path: - description: 'path that is exported by the NFS server. - More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string readOnly: - description: 'readOnly here will force the NFS export - to be mounted with read-only permissions. Defaults - to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: boolean server: - description: 'server is the hostname or IP address - of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string required: - path - server type: object persistentVolumeClaim: - description: 'persistentVolumeClaimVolumeSource represents - a reference to a PersistentVolumeClaim in the same namespace. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: claimName: - description: 'claimName is the name of a PersistentVolumeClaim - in the same namespace as the pod using this volume. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' type: string readOnly: - description: readOnly Will force the ReadOnly setting - in VolumeMounts. Default false. type: boolean required: - claimName type: object photonPersistentDisk: - description: photonPersistentDisk represents a PhotonController - persistent disk attached and mounted on kubelets host - machine properties: fsType: - description: fsType is the filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string pdID: - description: pdID is the ID that identifies Photon - Controller persistent disk type: string required: - pdID type: object portworxVolume: - description: portworxVolume represents a portworx volume - attached and mounted on kubelets host machine properties: fsType: - description: fSType represents the filesystem type - to mount Must be a filesystem type supported by - the host operating system. Ex. "ext4", "xfs". Implicitly - inferred to be "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting in - VolumeMounts. type: boolean volumeID: - description: volumeID uniquely identifies a Portworx - volume type: string required: - volumeID type: object projected: - description: projected items for all in one resources - secrets, configmaps, and downward API properties: defaultMode: - description: defaultMode are the mode bits used to - set permissions on created files by default. Must - be an octal value between 0000 and 0777 or a decimal - value between 0 and 511. YAML accepts both octal - and decimal values, JSON requires decimal values - for mode bits. Directories within the path are not - affected by this setting. This might be in conflict - with other options that affect the file mode, like - fsGroup, and the result can be other mode bits set. format: int32 type: integer sources: - description: sources is the list of volume projections items: - description: Projection that may be projected along - with other supported volume types properties: clusterTrustBundle: - description: "ClusterTrustBundle allows a pod - to access the `.spec.trustBundle` field of - ClusterTrustBundle objects in an auto-updating - file. \n Alpha, gated by the ClusterTrustBundleProjection - feature gate. \n ClusterTrustBundle objects - can either be selected by name, or by the - combination of signer name and a label selector. - \n Kubelet performs aggressive normalization - of the PEM contents written into the pod filesystem. - \ Esoteric PEM features such as inter-block - comments and block headers are stripped. Certificates - are deduplicated. The ordering of certificates - within the file is arbitrary, and Kubelet - may change the order over time." properties: labelSelector: - description: Select all ClusterTrustBundles - that match this label selector. Only - has effect if signerName is set. Mutually-exclusive - with name. If unset, interpreted as "match - nothing". If set but empty, interpreted - as "match everything". properties: matchExpressions: - description: matchExpressions is a list - of label selector requirements. The - requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to a set - of values. Valid operators are - In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array - of string values. If the operator - is In or NotIn, the values array - must be non-empty. If the operator - is Exists or DoesNotExist, the - values array must be empty. - This array is replaced during - a strategic merge patch. items: type: string type: array @@ -1728,93 +776,31 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of - {key,value} pairs. A single {key,value} - in the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic name: - description: Select a single ClusterTrustBundle - by object name. Mutually-exclusive with - signerName and labelSelector. type: string optional: - description: If true, don't block pod startup - if the referenced ClusterTrustBundle(s) - aren't available. If using name, then - the named ClusterTrustBundle is allowed - not to exist. If using signerName, then - the combination of signerName and labelSelector - is allowed to match zero ClusterTrustBundles. type: boolean path: - description: Relative path from the volume - root to write the bundle. type: string signerName: - description: Select all ClusterTrustBundles - that match this signer name. Mutually-exclusive - with name. The contents of all selected - ClusterTrustBundles will be unified and - deduplicated. type: string required: - path type: object configMap: - description: configMap information about the - configMap data to project properties: items: - description: items if unspecified, each - key-value pair in the Data field of the - referenced ConfigMap will be projected - into the volume as a file whose name is - the key and content is the value. If specified, - the listed keys will be projected into - the specified paths, and unlisted keys - will not be present. If a key is specified - which is not present in the ConfigMap, - the volume setup will error unless it - is marked optional. Paths must be relative - and may not contain the '..' path or start - with '..'. items: - description: Maps a string key to a path - within a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: mode - bits used to set permissions on - this file. Must be an octal value - between 0000 and 0777 or a decimal - value between 0 and 511. YAML accepts - both octal and decimal values, JSON - requires decimal values for mode - bits. If not specified, the volume - defaultMode will be used. This might - be in conflict with other options - that affect the file mode, like - fsGroup, and the result can be other - mode bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the key - to. May not be an absolute path. - May not contain the path element - '..'. May not start with the string - '..'. type: string required: - key @@ -1824,103 +810,42 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type with - an empty value here are almost certainly - wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether the - ConfigMap or its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic downwardAPI: - description: downwardAPI information about the - downwardAPI data to project properties: items: - description: Items is a list of DownwardAPIVolume - file items: - description: DownwardAPIVolumeFile represents - information to create the file containing - the pod field properties: fieldRef: - description: 'Required: Selects a - field of the pod: only annotations, - labels, name, namespace and uid - are supported.' properties: apiVersion: - description: Version of the schema - the FieldPath is written in - terms of, defaults to "v1". type: string fieldPath: - description: Path of the field - to select in the specified API - version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode bits - used to set permissions on this - file, must be an octal value between - 0000 and 0777 or a decimal value - between 0 and 511. YAML accepts - both octal and decimal values, JSON - requires decimal values for mode - bits. If not specified, the volume - defaultMode will be used. This might - be in conflict with other options - that affect the file mode, like - fsGroup, and the result can be other - mode bits set.' format: int32 type: integer path: - description: 'Required: Path is the - relative path name of the file to - be created. Must not be absolute - or contain the ''..'' path. Must - be utf-8 encoded. The first item - of the relative path must not start - with ''..''' type: string resourceFieldRef: - description: 'Selects a resource of - the container: only resources limits - and requests (limits.cpu, limits.memory, - requests.cpu and requests.memory) - are currently supported.' properties: containerName: - description: 'Container name: - required for volumes, optional - for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource - to select' type: string required: - resource @@ -1933,53 +858,16 @@ spec: x-kubernetes-list-type: atomic type: object secret: - description: secret information about the secret - data to project properties: items: - description: items if unspecified, each - key-value pair in the Data field of the - referenced Secret will be projected into - the volume as a file whose name is the - key and content is the value. If specified, - the listed keys will be projected into - the specified paths, and unlisted keys - will not be present. If a key is specified - which is not present in the Secret, the - volume setup will error unless it is marked - optional. Paths must be relative and may - not contain the '..' path or start with - '..'. items: - description: Maps a string key to a path - within a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: mode - bits used to set permissions on - this file. Must be an octal value - between 0000 and 0777 or a decimal - value between 0 and 511. YAML accepts - both octal and decimal values, JSON - requires decimal values for mode - bits. If not specified, the volume - defaultMode will be used. This might - be in conflict with other options - that affect the file mode, like - fsGroup, and the result can be other - mode bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the key - to. May not be an absolute path. - May not contain the path element - '..'. May not start with the string - '..'. type: string required: - key @@ -1989,51 +877,19 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type with - an empty value here are almost certainly - wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional field specify whether - the Secret or its key must be defined type: boolean type: object x-kubernetes-map-type: atomic serviceAccountToken: - description: serviceAccountToken is information - about the serviceAccountToken data to project properties: audience: - description: audience is the intended audience - of the token. A recipient of a token must - identify itself with an identifier specified - in the audience of the token, and otherwise - should reject the token. The audience - defaults to the identifier of the apiserver. type: string expirationSeconds: - description: expirationSeconds is the requested - duration of validity of the service account - token. As the token approaches expiration, - the kubelet volume plugin will proactively - rotate the service account token. The - kubelet will start trying to rotate the - token if the token is older than 80 percent - of its time to live or if the token is - older than 24 hours.Defaults to 1 hour - and must be at least 10 minutes. format: int64 type: integer path: - description: path is the path relative to - the mount point of the file to project - the token into. type: string required: - path @@ -2043,170 +899,79 @@ spec: x-kubernetes-list-type: atomic type: object quobyte: - description: quobyte represents a Quobyte mount on the - host that shares a pod's lifetime properties: group: - description: group to map volume access to Default - is no group type: string readOnly: - description: readOnly here will force the Quobyte - volume to be mounted with read-only permissions. - Defaults to false. type: boolean registry: - description: registry represents a single or multiple - Quobyte Registry services specified as a string - as host:port pair (multiple entries are separated - with commas) which acts as the central registry - for volumes type: string tenant: - description: tenant owning the given Quobyte volume - in the Backend Used with dynamically provisioned - Quobyte volumes, value is set by the plugin type: string user: - description: user to map volume access to Defaults - to serivceaccount user type: string volume: - description: volume is a string that references an - already created Quobyte volume by name. type: string required: - registry - volume type: object rbd: - description: 'rbd represents a Rados Block Device mount - on the host that shares a pod''s lifetime. More info: - https://examples.k8s.io/volumes/rbd/README.md' properties: fsType: - description: 'fsType is the filesystem type of the - volume that you want to mount. Tip: Ensure that - the filesystem type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string image: - description: 'image is the rados image name. More - info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string keyring: - description: 'keyring is the path to key ring for - RBDUser. Default is /etc/ceph/keyring. More info: - https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string monitors: - description: 'monitors is a collection of Ceph monitors. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic pool: - description: 'pool is the rados pool name. Default - is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string readOnly: - description: 'readOnly here will force the ReadOnly - setting in VolumeMounts. Defaults to false. More - info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: boolean secretRef: - description: 'secretRef is name of the authentication - secret for RBDUser. If provided overrides keyring. - Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are almost - certainly wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is the rados user name. Default - is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string required: - image - monitors type: object scaleIO: - description: scaleIO represents a ScaleIO persistent volume - attached and mounted on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". Default - is "xfs". type: string gateway: - description: gateway is the host address of the ScaleIO - API Gateway. type: string protectionDomain: - description: protectionDomain is the name of the ScaleIO - Protection Domain for the configured storage. type: string readOnly: - description: readOnly Defaults to false (read/write). - ReadOnly here will force the ReadOnly setting in - VolumeMounts. type: boolean secretRef: - description: secretRef references to the secret for - ScaleIO user and other sensitive information. If - this is not provided, Login operation will fail. properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are almost - certainly wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic sslEnabled: - description: sslEnabled Flag enable/disable SSL communication - with Gateway, default false type: boolean storageMode: - description: storageMode indicates whether the storage - for a volume should be ThickProvisioned or ThinProvisioned. - Default is ThinProvisioned. type: string storagePool: - description: storagePool is the ScaleIO Storage Pool - associated with the protection domain. type: string system: - description: system is the name of the storage system - as configured in ScaleIO. type: string volumeName: - description: volumeName is the name of a volume already - created in the ScaleIO system that is associated - with this volume source. type: string required: - gateway @@ -2214,58 +979,19 @@ spec: - system type: object secret: - description: 'secret represents a secret that should populate - this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' properties: defaultMode: - description: 'defaultMode is Optional: mode bits used - to set permissions on created files by default. - Must be an octal value between 0000 and 0777 or - a decimal value between 0 and 511. YAML accepts - both octal and decimal values, JSON requires decimal - values for mode bits. Defaults to 0644. Directories - within the path are not affected by this setting. - This might be in conflict with other options that - affect the file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer items: - description: items If unspecified, each key-value - pair in the Data field of the referenced Secret - will be projected into the volume as a file whose - name is the key and content is the value. If specified, - the listed keys will be projected into the specified - paths, and unlisted keys will not be present. If - a key is specified which is not present in the Secret, - the volume setup will error unless it is marked - optional. Paths must be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key to a path within - a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: mode bits used - to set permissions on this file. Must be an - octal value between 0000 and 0777 or a decimal - value between 0 and 511. YAML accepts both - octal and decimal values, JSON requires decimal - values for mode bits. If not specified, the - volume defaultMode will be used. This might - be in conflict with other options that affect - the file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative path of the - file to map the key to. May not be an absolute - path. May not contain the path element '..'. - May not start with the string '..'. type: string required: - key @@ -2274,86 +1000,37 @@ spec: type: array x-kubernetes-list-type: atomic optional: - description: optional field specify whether the Secret - or its keys must be defined type: boolean secretName: - description: 'secretName is the name of the secret - in the pod''s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' type: string type: object storageos: - description: storageOS represents a StorageOS volume attached - and mounted on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting in - VolumeMounts. type: boolean secretRef: - description: secretRef specifies the secret to use - for obtaining the StorageOS API credentials. If - not specified, default values will be attempted. properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are almost - certainly wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeName: - description: volumeName is the human-readable name - of the StorageOS volume. Volume names are only - unique within a namespace. type: string volumeNamespace: - description: volumeNamespace specifies the scope of - the volume within StorageOS. If no namespace is - specified then the Pod's namespace will be used. This - allows the Kubernetes name scoping to be mirrored - within StorageOS for tighter integration. Set VolumeName - to any name to override the default behaviour. Set - to "default" if you are not using namespaces within - StorageOS. Namespaces that do not pre-exist within - StorageOS will be created. type: string type: object vsphereVolume: - description: vsphereVolume represents a vSphere volume - attached and mounted on kubelets host machine properties: fsType: - description: fsType is filesystem type to mount. Must - be a filesystem type supported by the host operating - system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred - to be "ext4" if unspecified. type: string storagePolicyID: - description: storagePolicyID is the storage Policy - Based Management (SPBM) profile ID associated with - the StoragePolicyName. type: string storagePolicyName: - description: storagePolicyName is the storage Policy - Based Management (SPBM) profile name. type: string volumePath: - description: volumePath is the path that identifies - vSphere volume vmdk type: string required: - volumePath @@ -2364,38 +1041,20 @@ spec: type: array type: object pod: - description: Pod specifies the criteria to use to select the hook - executor pods properties: owner: - description: Owner specifies a template for owner reference - that will be used to filter the selected pods. properties: apiVersion: - description: API version of the referent. type: string blockOwnerDeletion: - description: If true, AND if the owner has the "foregroundDeletion" - finalizer, then the owner cannot be deleted from the key-value - store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage collector interacts with this field - and enforces the foreground deletion. Defaults to false. - To set this field, a user needs "delete" permission of - the owner, otherwise 422 (Unprocessable Entity) will be - returned. type: boolean controller: - description: If true, this reference points to the managing - controller. type: boolean kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -2405,30 +1064,15 @@ spec: type: object x-kubernetes-map-type: atomic selector: - description: Selector specifies list of key value pair that - will be used as label selector to select the desired pods. - You can use comma to separate multiple labels (i.e. "app=my-app,env=prod") type: string strategy: default: ExecuteOnOne - description: 'Strategy specifies what should be the behavior - when multiple pods are selected Valid values are: - "ExecuteOnOne": - Execute hook on only one of the selected pods. This is default - behavior - "ExecuteOnAll": Execute hook on all the selected - pods.' enum: - ExecuteOnOne - ExecuteOnAll type: string type: object type: - description: 'Type indicate the types of entity that will execute - the hook. Valid values are: - "Function": KubeStash will create - a job with the provided information in `function` section. The - job will execute the hook. - "Pod": KubeStash will select the - pod that matches the selector provided in `pod` section. This - pod(s) will execute the hook. - "Operator": KubeStash operator - itself will execute the hook.' enum: - Function - Pod @@ -2436,79 +1080,39 @@ spec: type: string type: object params: - description: Params defines a list of parameters that is used by the - HookTemplate to execute its logic. items: - description: ParameterDefinition defines the parameter names, their - usage, their requirements etc. properties: default: - description: Default specifies a default value for the parameter type: string name: - description: Name specifies the name of the parameter type: string required: - description: Required specify whether this parameter is required - or not type: boolean usage: - description: Usage specifies the usage of this parameter type: string type: object type: array usagePolicy: - description: "UsagePolicy specifies a policy of how this HookTemplate - will be used. For example, you can use `allowedNamespaces` policy - to restrict the usage of this HookTemplate to particular namespaces. - \n This field is optional. If you don't provide the usagePolicy, then - it can be used only from the current namespace." properties: allowedNamespaces: - description: AllowedNamespaces specifies which namespaces are allowed - to use the resource properties: from: default: Same - description: 'From indicates how to select the namespaces that - are allowed to use this resource. Possible values are: * All: - All namespaces can use this resource. * Selector: Namespaces - that matches the selector can use this resource. * Same: Only - current namespace can use the resource.' enum: - All - Selector - Same type: string selector: - description: Selector must be specified when From is set to - "Selector". In that case, only the selected namespaces are - allowed to use this resource. This field is ignored for other - values of "From". properties: matchExpressions: - description: matchExpressions is a list of label selector - requirements. The requirements are ANDed. items: - description: A label selector requirement is a selector - that contains values, a key, and an operator that relates - the key and values. properties: key: - description: key is the label key that the selector - applies to. type: string operator: - description: operator represents a key's relationship - to a set of values. Valid operators are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values is an array of string values. - If the operator is In or NotIn, the values array - must be non-empty. If the operator is Exists or - DoesNotExist, the values array must be empty. This - array is replaced during a strategic merge patch. items: type: string type: array @@ -2522,11 +1126,6 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} pairs. - A single {key,value} in the matchLabels map is equivalent - to an element of matchExpressions, whose key field is - "key", the operator is "In", and the values array contains - only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/core.kubestash.com/v1alpha1/restoresessions.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/core.kubestash.com/v1alpha1/restoresessions.yaml index e7c2e1096..5a7f799c1 100644 --- a/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/core.kubestash.com/v1alpha1/restoresessions.yaml +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/core.kubestash.com/v1alpha1/restoresessions.yaml @@ -114,17 +114,10 @@ spec: version: v1alpha1 validation: openAPIV3Schema: - description: RestoreSession represents one restore run for the targeted application properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: properties: @@ -160,136 +153,67 @@ spec: type: object type: object spec: - description: RestoreSessionSpec specifies the necessary configurations for - restoring data into a target properties: addon: - description: Addon specifies addon configuration that will be used to - restore the target. properties: containerRuntimeSettings: - description: ContainerRuntimeSettings specifies runtime settings - for the backup/restore executor container properties: env: - description: List of environment variables to set in the container. - Cannot be updated. items: - description: EnvVar represents an environment variable present - in a Container. properties: name: - description: Name of the environment variable. Must be - a C_IDENTIFIER. type: string value: - description: 'Variable references $(VAR_NAME) are expanded - using the previously defined environment variables in - the container and any service environment variables. - If a variable cannot be resolved, the reference in the - input string will be unchanged. Double $$ are reduced - to a single $, which allows for escaping the $(VAR_NAME) - syntax: i.e. "$$(VAR_NAME)" will produce the string - literal "$(VAR_NAME)". Escaped references will never - be expanded, regardless of whether the variable exists - or not. Defaults to "".' type: string valueFrom: - description: Source for the environment variable's value. - Cannot be used if value is not empty. properties: configMapKeyRef: - description: Selects a key of a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are almost - certainly wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap or - its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field of the pod: supports - metadata.name, metadata.namespace, `metadata.labels['''']`, - `metadata.annotations['''']`, spec.nodeName, - spec.serviceAccountName, status.hostIP, status.podIP, - status.podIPs.' properties: apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". type: string fieldPath: - description: Path of the field to select in the - specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource of the container: - only resources limits and requests (limits.cpu, - limits.memory, limits.ephemeral-storage, requests.cpu, - requests.memory and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: required for volumes, - optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource to select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret in the pod's - namespace properties: key: - description: The key of the secret to select from. Must - be a valid secret key. type: string name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are almost - certainly wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret or its - key must be defined type: boolean required: - key @@ -301,66 +225,31 @@ spec: type: object type: array envFrom: - description: List of sources to populate environment variables - in the container. The keys defined within a source must be - a C_IDENTIFIER. All invalid keys will be reported as an event - when the container is starting. When a key exists in multiple - sources, the value associated with the last source will take - precedence. Values defined by an Env with a duplicate key - will take precedence. Cannot be updated. items: - description: EnvFromSource represents the source of a set - of ConfigMaps properties: configMapRef: - description: The ConfigMap to select from properties: name: default: "" - description: 'Name of the referent. This field is - effectively required, but due to backwards compatibility - is allowed to be empty. Instances of this type with - an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, - uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap must be - defined type: boolean type: object x-kubernetes-map-type: atomic prefix: - description: An optional identifier to prepend to each - key in the ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: - description: The Secret to select from properties: name: default: "" - description: 'Name of the referent. This field is - effectively required, but due to backwards compatibility - is allowed to be empty. Instances of this type with - an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, - uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array ionice: - description: 'Settings to configure `ionice` to throttle the - load on disk. More info: http://kennystechtalk.blogspot.com/2015/04/throttling-cpu-usage-with-linux-cgroups.html - More info: https://oakbytes.wordpress.com/2012/06/06/linux-scheduler-cfs-and-nice/' properties: class: format: int32 @@ -370,56 +259,27 @@ spec: type: integer type: object lifecycle: - description: Actions that the management system should take - in response to container lifecycle events. Cannot be updated. properties: postStart: - description: 'PostStart is called immediately after a container - is created. If the handler fails, the container is terminated - and restarted according to its restart policy. Other management - of the container blocks until the hook completes. More - info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action to take. properties: command: - description: Command is the command line to execute - inside the container, the working directory for - the command is root ('/') in the container's - filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions - ('|', etc) won't work. To use a shell, you need - to explicitly call out to that shell. Exit status - of 0 is treated as live/healthy and non-zero is - unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http request to perform. properties: host: - description: Host name to connect to, defaults to - the pod IP. You probably want to set "Host" in - httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in the request. - HTTP allows repeated headers. items: - description: HTTPHeader describes a custom header - to be used in HTTP probes properties: name: - description: The header field name. This will - be canonicalized upon output, so case-variant - names will be understood as the same header. type: string value: - description: The header field value type: string required: - name @@ -428,110 +288,58 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port to access - on the container. Number must be in the range - 1 to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting to the - host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration that the - container should sleep before being terminated. properties: seconds: - description: Seconds is the number of seconds to - sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is NOT supported - as a LifecycleHandler and kept for the backward compatibility. - There are no validation of this field and lifecycle - hooks will fail in runtime when tcp handler is specified. properties: host: - description: 'Optional: Host name to connect to, - defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port to access - on the container. Number must be in the range - 1 to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object type: object preStop: - description: 'PreStop is called immediately before a container - is terminated due to an API request or management event - such as liveness/startup probe failure, preemption, resource - contention, etc. The handler is not called if the container - crashes or exits. The Pod''s termination grace period - countdown begins before the PreStop hook is executed. - Regardless of the outcome of the handler, the container - will eventually terminate within the Pod''s termination - grace period (unless delayed by finalizers). Other management - of the container blocks until the hook completes or until - the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action to take. properties: command: - description: Command is the command line to execute - inside the container, the working directory for - the command is root ('/') in the container's - filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions - ('|', etc) won't work. To use a shell, you need - to explicitly call out to that shell. Exit status - of 0 is treated as live/healthy and non-zero is - unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http request to perform. properties: host: - description: Host name to connect to, defaults to - the pod IP. You probably want to set "Host" in - httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in the request. - HTTP allows repeated headers. items: - description: HTTPHeader describes a custom header - to be used in HTTP probes properties: name: - description: The header field name. This will - be canonicalized upon output, so case-variant - names will be understood as the same header. type: string value: - description: The header field value type: string required: - name @@ -540,52 +348,33 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port to access - on the container. Number must be in the range - 1 to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting to the - host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration that the - container should sleep before being terminated. properties: seconds: - description: Seconds is the number of seconds to - sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is NOT supported - as a LifecycleHandler and kept for the backward compatibility. - There are no validation of this field and lifecycle - hooks will fail in runtime when tcp handler is specified. properties: host: - description: 'Optional: Host name to connect to, - defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port to access - on the container. Number must be in the range - 1 to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port @@ -593,72 +382,38 @@ spec: type: object type: object livenessProbe: - description: 'Periodic probe of container liveness. Container - will be restarted if the probe fails. Cannot be updated. More - info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to take. properties: command: - description: Command is the command line to execute - inside the container, the working directory for the - command is root ('/') in the container's filesystem. - The command is simply exec'd, it is not run inside - a shell, so traditional shell instructions ('|', etc) - won't work. To use a shell, you need to explicitly - call out to that shell. Exit status of 0 is treated - as live/healthy and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures for the probe - to be considered failed after having succeeded. Defaults - to 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving a GRPC port. properties: port: - description: Port number of the gRPC service. Number - must be in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name of the service to - place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default behavior - is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http request to perform. properties: host: - description: Host name to connect to, defaults to the - pod IP. You probably want to set "Host" in httpHeaders - instead. type: string httpHeaders: - description: Custom headers to set in the request. HTTP - allows repeated headers. items: - description: HTTPHeader describes a custom header - to be used in HTTP probes properties: name: - description: The header field name. This will - be canonicalized upon output, so case-variant - names will be understood as the same header. type: string value: - description: The header field value type: string required: - name @@ -667,160 +422,84 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port to access on - the container. Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting to the host. - Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the container has - started before liveness probes are initiated. More info: - https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform the probe. - Default to 10 seconds. Minimum value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes for the probe - to be considered successful after having failed. Defaults - to 1. Must be 1 for liveness and startup. Minimum value - is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action involving a TCP - port. properties: host: - description: 'Optional: Host name to connect to, defaults - to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port to access on - the container. Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds the pod needs - to terminate gracefully upon probe failure. The grace - period is the duration in seconds after the processes - running in the pod are sent a termination signal and the - time when the processes are forcibly halted with a kill - signal. Set this value longer than the expected cleanup - time for your process. If this value is nil, the pod's - terminationGracePeriodSeconds will be used. Otherwise, - this value overrides the value provided by the pod spec. - Value must be non-negative integer. The value zero indicates - stop immediately via the kill signal (no opportunity to - shut down). This is a beta field and requires enabling - ProbeTerminationGracePeriod feature gate. Minimum value - is 1. spec.terminationGracePeriodSeconds is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which the probe times - out. Defaults to 1 second. Minimum value is 1. More info: - https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object nice: - description: 'Settings to configure `nice` to throttle the load - on cpu. More info: http://kennystechtalk.blogspot.com/2015/04/throttling-cpu-usage-with-linux-cgroups.html - More info: https://oakbytes.wordpress.com/2012/06/06/linux-scheduler-cfs-and-nice/' properties: adjustment: format: int32 type: integer type: object readinessProbe: - description: 'Periodic probe of container service readiness. - Container will be removed from service endpoints if the probe - fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to take. properties: command: - description: Command is the command line to execute - inside the container, the working directory for the - command is root ('/') in the container's filesystem. - The command is simply exec'd, it is not run inside - a shell, so traditional shell instructions ('|', etc) - won't work. To use a shell, you need to explicitly - call out to that shell. Exit status of 0 is treated - as live/healthy and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures for the probe - to be considered failed after having succeeded. Defaults - to 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving a GRPC port. properties: port: - description: Port number of the gRPC service. Number - must be in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name of the service to - place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default behavior - is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http request to perform. properties: host: - description: Host name to connect to, defaults to the - pod IP. You probably want to set "Host" in httpHeaders - instead. type: string httpHeaders: - description: Custom headers to set in the request. HTTP - allows repeated headers. items: - description: HTTPHeader describes a custom header - to be used in HTTP probes properties: name: - description: The header field name. This will - be canonicalized upon output, so case-variant - names will be understood as the same header. type: string value: - description: The header field value type: string required: - name @@ -829,102 +508,51 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port to access on - the container. Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting to the host. - Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the container has - started before liveness probes are initiated. More info: - https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform the probe. - Default to 10 seconds. Minimum value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes for the probe - to be considered successful after having failed. Defaults - to 1. Must be 1 for liveness and startup. Minimum value - is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action involving a TCP - port. properties: host: - description: 'Optional: Host name to connect to, defaults - to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port to access on - the container. Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds the pod needs - to terminate gracefully upon probe failure. The grace - period is the duration in seconds after the processes - running in the pod are sent a termination signal and the - time when the processes are forcibly halted with a kill - signal. Set this value longer than the expected cleanup - time for your process. If this value is nil, the pod's - terminationGracePeriodSeconds will be used. Otherwise, - this value overrides the value provided by the pod spec. - Value must be non-negative integer. The value zero indicates - stop immediately via the kill signal (no opportunity to - shut down). This is a beta field and requires enabling - ProbeTerminationGracePeriod feature gate. Minimum value - is 1. spec.terminationGracePeriodSeconds is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which the probe times - out. Defaults to 1 second. Minimum value is 1. More info: - https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object resources: - description: 'Compute Resources required by container. Cannot - be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' properties: claims: - description: "Claims lists the names of resources, defined - in spec.resourceClaims, that are used by this container. - \n This is an alpha field and requires enabling the DynamicResourceAllocation - feature gate. \n This field is immutable. It can only - be set for containers." items: - description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry - in pod.spec.resourceClaims of the Pod where this - field is used. It makes that resource available - inside a container. type: string required: - name @@ -940,8 +568,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -950,323 +576,124 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, - otherwise to an implementation-defined value. Requests - cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object securityContext: - description: 'Security options the pod should run with. More - info: https://kubernetes.io/docs/concepts/policy/security-context/ - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: allowPrivilegeEscalation: - description: 'AllowPrivilegeEscalation controls whether - a process can gain more privileges than its parent process. - This bool directly controls if the no_new_privs flag will - be set on the container process. AllowPrivilegeEscalation - is true always when the container is: 1) run as Privileged - 2) has CAP_SYS_ADMIN Note that this field cannot be set - when spec.os.name is windows.' type: boolean appArmorProfile: - description: appArmorProfile is the AppArmor options to - use by this container. If set, this profile overrides - the pod's appArmorProfile. Note that this field cannot - be set when spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates a profile loaded - on the node that should be used. The profile must - be preconfigured on the node to work. Must match the - loaded name of the profile. Must be set if and only - if type is "Localhost". type: string type: - description: 'type indicates which kind of AppArmor - profile will be applied. Valid options are: Localhost - - a profile pre-loaded on the node. RuntimeDefault - - the container runtime''s default profile. Unconfined - - no AppArmor enforcement.' type: string required: - type type: object capabilities: - description: The capabilities to add/drop when running containers. - Defaults to the default set of capabilities granted by - the container runtime. Note that this field cannot be - set when spec.os.name is windows. properties: add: - description: Added capabilities items: - description: Capability represent POSIX capabilities - type type: string type: array x-kubernetes-list-type: atomic drop: - description: Removed capabilities items: - description: Capability represent POSIX capabilities - type type: string type: array x-kubernetes-list-type: atomic type: object privileged: - description: Run container in privileged mode. Processes - in privileged containers are essentially equivalent to - root on the host. Defaults to false. Note that this field - cannot be set when spec.os.name is windows. type: boolean procMount: - description: procMount denotes the type of proc mount to - use for the containers. The default is DefaultProcMount - which uses the container runtime defaults for readonly - paths and masked paths. This requires the ProcMountType - feature flag to be enabled. Note that this field cannot - be set when spec.os.name is windows. type: string readOnlyRootFilesystem: - description: Whether this container has a read-only root - filesystem. Default is false. Note that this field cannot - be set when spec.os.name is windows. type: boolean runAsGroup: - description: The GID to run the entrypoint of the container - process. Uses runtime default if unset. May also be set - in PodSecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified in SecurityContext - takes precedence. Note that this field cannot be set when - spec.os.name is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container must run as a - non-root user. If true, the Kubelet will validate the - image at runtime to ensure that it does not run as UID - 0 (root) and fail to start the container if it does. If - unset or false, no such validation will be performed. - May also be set in PodSecurityContext. If set in both - SecurityContext and PodSecurityContext, the value specified - in SecurityContext takes precedence. type: boolean runAsUser: - description: The UID to run the entrypoint of the container - process. Defaults to user specified in image metadata - if unspecified. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, the - value specified in SecurityContext takes precedence. Note - that this field cannot be set when spec.os.name is windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be applied to the container. - If unspecified, the container runtime will allocate a - random SELinux context for each container. May also be - set in PodSecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified in SecurityContext - takes precedence. Note that this field cannot be set when - spec.os.name is windows. properties: level: - description: Level is SELinux level label that applies - to the container. type: string role: - description: Role is a SELinux role label that applies - to the container. type: string type: - description: Type is a SELinux type label that applies - to the container. type: string user: - description: User is a SELinux user label that applies - to the container. type: string type: object seccompProfile: - description: The seccomp options to use by this container. - If seccomp options are provided at both the pod & container - level, the container options override the pod options. - Note that this field cannot be set when spec.os.name is - windows. properties: localhostProfile: - description: localhostProfile indicates a profile defined - in a file on the node should be used. The profile - must be preconfigured on the node to work. Must be - a descending path, relative to the kubelet's configured - seccomp profile location. Must be set if type is "Localhost". - Must NOT be set for any other type. type: string type: - description: "type indicates which kind of seccomp profile - will be applied. Valid options are: \n Localhost - - a profile defined in a file on the node should be - used. RuntimeDefault - the container runtime default - profile should be used. Unconfined - no profile should - be applied." type: string required: - type type: object windowsOptions: - description: The Windows specific settings applied to all - containers. If unspecified, the options from the PodSecurityContext - will be used. If set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes precedence. - Note that this field cannot be set when spec.os.name is - linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is where the GMSA admission - webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA credential spec named - by the GMSACredentialSpecName field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName is the name of the - GMSA credential spec to use. type: string hostProcess: - description: HostProcess determines if a container should - be run as a 'Host Process' container. All of a Pod's - containers must have the same effective HostProcess - value (it is not allowed to have a mix of HostProcess - containers and non-HostProcess containers). In addition, - if HostProcess is true then HostNetwork must also - be set to true. type: boolean runAsUserName: - description: The UserName in Windows to run the entrypoint - of the container process. Defaults to the user specified - in image metadata if unspecified. May also be set - in PodSecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified in SecurityContext - takes precedence. type: string type: object type: object type: object jobTemplate: - description: JobTemplate specifies runtime configurations for the - backup/restore Job properties: controller: - description: 'Workload controller''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value map - stored with a resource that may be set by external tools - to store and retrieve arbitrary metadata. They are not - queryable and should be preserved when modifying objects. - More info: http://kubernetes.io/docs/user-guide/annotations' type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that can be - used to organize and categorize (scope and select) objects. - May match selectors of replication controllers and services. - More info: http://kubernetes.io/docs/user-guide/labels' type: object type: object metadata: - description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value map - stored with a resource that may be set by external tools - to store and retrieve arbitrary metadata. They are not - queryable and should be preserved when modifying objects. - More info: http://kubernetes.io/docs/user-guide/annotations' type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that can be - used to organize and categorize (scope and select) objects. - May match selectors of replication controllers and services. - More info: http://kubernetes.io/docs/user-guide/labels' type: object type: object spec: - description: 'Specification of the desired behavior of the pod. - More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' properties: affinity: - description: If specified, the pod's scheduling constraints properties: nodeAffinity: - description: Describes node affinity scheduling rules - for the pod. properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer to schedule - pods to nodes that satisfy the affinity expressions - specified by this field, but it may choose a node - that violates one or more of the expressions. - The node that is most preferred is the one with - the greatest sum of weights, i.e. for each node - that meets all of the scheduling requirements - (resource request, requiredDuringScheduling affinity - expressions, etc.), compute a sum by iterating - through the elements of this field and adding - "weight" to the sum if the node matches the corresponding - matchExpressions; the node(s) with the highest - sum are the most preferred. items: - description: An empty preferred scheduling term - matches all objects with implicit weight 0 (i.e. - it's a no-op). A null preferred scheduling term - matches no objects (i.e. is also a no-op). properties: preference: - description: A node selector term, associated - with the corresponding weight. properties: matchExpressions: - description: A list of node selector requirements - by node's labels. items: - description: A node selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: The label key that - the selector applies to. type: string operator: - description: Represents a key's - relationship to a set of values. - Valid operators are In, NotIn, - Exists, DoesNotExist. Gt, and - Lt. type: string values: - description: An array of string - values. If the operator is In - or NotIn, the values array must - be non-empty. If the operator - is Exists or DoesNotExist, the - values array must be empty. If - the operator is Gt or Lt, the - values array must have a single - element, which will be interpreted - as an integer. This array is replaced - during a strategic merge patch. items: type: string type: array @@ -1278,37 +705,13 @@ spec: type: array x-kubernetes-list-type: atomic matchFields: - description: A list of node selector requirements - by node's fields. items: - description: A node selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: The label key that - the selector applies to. type: string operator: - description: Represents a key's - relationship to a set of values. - Valid operators are In, NotIn, - Exists, DoesNotExist. Gt, and - Lt. type: string values: - description: An array of string - values. If the operator is In - or NotIn, the values array must - be non-empty. If the operator - is Exists or DoesNotExist, the - values array must be empty. If - the operator is Gt or Lt, the - values array must have a single - element, which will be interpreted - as an integer. This array is replaced - during a strategic merge patch. items: type: string type: array @@ -1322,9 +725,6 @@ spec: type: object x-kubernetes-map-type: atomic weight: - description: Weight associated with matching - the corresponding nodeSelectorTerm, in the - range 1-100. format: int32 type: integer required: @@ -1334,55 +734,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements specified - by this field are not met at scheduling time, - the pod will not be scheduled onto the node. If - the affinity requirements specified by this field - cease to be met at some point during pod execution - (e.g. due to an update), the system may or may - not try to eventually evict the pod from its node. properties: nodeSelectorTerms: - description: Required. A list of node selector - terms. The terms are ORed. items: - description: A null or empty node selector - term matches no objects. The requirements - of them are ANDed. The TopologySelectorTerm - type implements a subset of the NodeSelectorTerm. properties: matchExpressions: - description: A list of node selector requirements - by node's labels. items: - description: A node selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: The label key that - the selector applies to. type: string operator: - description: Represents a key's - relationship to a set of values. - Valid operators are In, NotIn, - Exists, DoesNotExist. Gt, and - Lt. type: string values: - description: An array of string - values. If the operator is In - or NotIn, the values array must - be non-empty. If the operator - is Exists or DoesNotExist, the - values array must be empty. If - the operator is Gt or Lt, the - values array must have a single - element, which will be interpreted - as an integer. This array is replaced - during a strategic merge patch. items: type: string type: array @@ -1394,37 +757,13 @@ spec: type: array x-kubernetes-list-type: atomic matchFields: - description: A list of node selector requirements - by node's fields. items: - description: A node selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: The label key that - the selector applies to. type: string operator: - description: Represents a key's - relationship to a set of values. - Valid operators are In, NotIn, - Exists, DoesNotExist. Gt, and - Lt. type: string values: - description: An array of string - values. If the operator is In - or NotIn, the values array must - be non-empty. If the operator - is Exists or DoesNotExist, the - values array must be empty. If - the operator is Gt or Lt, the - values array must have a single - element, which will be interpreted - as an integer. This array is replaced - during a strategic merge patch. items: type: string type: array @@ -1445,71 +784,22 @@ spec: x-kubernetes-map-type: atomic type: object podAffinity: - description: Describes pod affinity scheduling rules - (e.g. co-locate this pod in the same node, zone, etc. - as some other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer to schedule - pods to nodes that satisfy the affinity expressions - specified by this field, but it may choose a node - that violates one or more of the expressions. - The node that is most preferred is the one with - the greatest sum of weights, i.e. for each node - that meets all of the scheduling requirements - (resource request, requiredDuringScheduling affinity - expressions, etc.), compute a sum by iterating - through the elements of this field and adding - "weight" to the sum if the node has pods which - matches the corresponding podAffinityTerm; the - node(s) with the highest sum are the most preferred. items: - description: The weights of all of the matched - WeightedPodAffinityTerm fields are added per-node - to find the most preferred node(s) properties: podAffinityTerm: - description: Required. A pod affinity term, - associated with the corresponding weight. properties: labelSelector: - description: A label query over a set - of resources, in this case pods. If - it's null, this PodAffinityTerm matches - with no Pods. properties: matchExpressions: - description: matchExpressions is a - list of label selector requirements. - The requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to a - set of values. Valid operators - are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an array - of string values. If the operator - is In or NotIn, the values - array must be non-empty. If - the operator is Exists or - DoesNotExist, the values array - must be empty. This array - is replaced during a strategic - merge patch. items: type: string type: array @@ -1523,106 +813,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map - of {key,value} pairs. A single {key,value} - in the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is a set of - pod label keys to select which pods - will be taken into consideration. The - keys are used to lookup values from - the incoming pod labels, those key-value - labels are merged with `labelSelector` - as `key in (value)` to select the group - of existing pods which pods will be - taken into consideration for the incoming - pod's pod (anti) affinity. Keys that - don't exist in the incoming pod labels - will be ignored. The default value is - empty. The same key is forbidden to - exist in both matchLabelKeys and labelSelector. - Also, matchLabelKeys cannot be set when - labelSelector isn't set. This is an - alpha field and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys is a set - of pod label keys to select which pods - will be taken into consideration. The - keys are used to lookup values from - the incoming pod labels, those key-value - labels are merged with `labelSelector` - as `key notin (value)` to select the - group of existing pods which pods will - be taken into consideration for the - incoming pod's pod (anti) affinity. - Keys that don't exist in the incoming - pod labels will be ignored. The default - value is empty. The same key is forbidden - to exist in both mismatchLabelKeys and - labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector isn't - set. This is an alpha field and requires - enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over the set - of namespaces that the term applies - to. The term is applied to the union - of the namespaces selected by this field - and the ones listed in the namespaces - field. null selector and null or empty - namespaces list means "this pod's namespace". - An empty selector ({}) matches all namespaces. properties: matchExpressions: - description: matchExpressions is a - list of label selector requirements. - The requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to a - set of values. Valid operators - are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an array - of string values. If the operator - is In or NotIn, the values - array must be non-empty. If - the operator is Exists or - DoesNotExist, the values array - must be empty. This array - is replaced during a strategic - merge patch. items: type: string type: array @@ -1636,48 +849,20 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map - of {key,value} pairs. A single {key,value} - in the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies a static - list of namespace names that the term - applies to. The term is applied to the - union of the namespaces listed in this - field and the ones selected by namespaceSelector. - null or empty namespaces list and null - namespaceSelector means "this pod's - namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be co-located - (affinity) or not co-located (anti-affinity) - with the pods matching the labelSelector - in the specified namespaces, where co-located - is defined as running on a node whose - value of the label with key topologyKey - matches that of any node on which any - of the selected pods is running. Empty - topologyKey is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated with matching - the corresponding podAffinityTerm, in the - range 1-100. format: int32 type: integer required: @@ -1687,60 +872,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements specified - by this field are not met at scheduling time, - the pod will not be scheduled onto the node. If - the affinity requirements specified by this field - cease to be met at some point during pod execution - (e.g. due to a pod label update), the system may - or may not try to eventually evict the pod from - its node. When there are multiple elements, the - lists of nodes corresponding to each podAffinityTerm - are intersected, i.e. all terms must be satisfied. items: - description: Defines a set of pods (namely those - matching the labelSelector relative to the given - namespace(s)) that this pod should be co-located - (affinity) or not co-located (anti-affinity) - with, where co-located is defined as running - on a node whose value of the label with key - matches that of any node on which - a pod of the set of pods is running properties: labelSelector: - description: A label query over a set of resources, - in this case pods. If it's null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions is a list - of label selector requirements. The - requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label key - that the selector applies to. type: string operator: - description: operator represents - a key's relationship to a set - of values. Valid operators are - In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array - of string values. If the operator - is In or NotIn, the values array - must be non-empty. If the operator - is Exists or DoesNotExist, the - values array must be empty. This - array is replaced during a strategic - merge patch. items: type: string type: array @@ -1754,97 +897,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is a set of pod - label keys to select which pods will be - taken into consideration. The keys are used - to lookup values from the incoming pod labels, - those key-value labels are merged with `labelSelector` - as `key in (value)` to select the group - of existing pods which pods will be taken - into consideration for the incoming pod's - pod (anti) affinity. Keys that don't exist - in the incoming pod labels will be ignored. - The default value is empty. The same key - is forbidden to exist in both matchLabelKeys - and labelSelector. Also, matchLabelKeys - cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling - MatchLabelKeysInPodAffinity feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys is a set of - pod label keys to select which pods will - be taken into consideration. The keys are - used to lookup values from the incoming - pod labels, those key-value labels are merged - with `labelSelector` as `key notin (value)` - to select the group of existing pods which - pods will be taken into consideration for - the incoming pod's pod (anti) affinity. - Keys that don't exist in the incoming pod - labels will be ignored. The default value - is empty. The same key is forbidden to exist - in both mismatchLabelKeys and labelSelector. - Also, mismatchLabelKeys cannot be set when - labelSelector isn't set. This is an alpha - field and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over the set of - namespaces that the term applies to. The - term is applied to the union of the namespaces - selected by this field and the ones listed - in the namespaces field. null selector and - null or empty namespaces list means "this - pod's namespace". An empty selector ({}) - matches all namespaces. properties: matchExpressions: - description: matchExpressions is a list - of label selector requirements. The - requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label key - that the selector applies to. type: string operator: - description: operator represents - a key's relationship to a set - of values. Valid operators are - In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array - of string values. If the operator - is In or NotIn, the values array - must be non-empty. If the operator - is Exists or DoesNotExist, the - values array must be empty. This - array is replaced during a strategic - merge patch. items: type: string type: array @@ -1858,37 +933,15 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies a static - list of namespace names that the term applies - to. The term is applied to the union of - the namespaces listed in this field and - the ones selected by namespaceSelector. - null or empty namespaces list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be co-located - (affinity) or not co-located (anti-affinity) - with the pods matching the labelSelector - in the specified namespaces, where co-located - is defined as running on a node whose value - of the label with key topologyKey matches - that of any node on which any of the selected - pods is running. Empty topologyKey is not - allowed. type: string required: - topologyKey @@ -1897,71 +950,22 @@ spec: x-kubernetes-list-type: atomic type: object podAntiAffinity: - description: Describes pod anti-affinity scheduling - rules (e.g. avoid putting this pod in the same node, - zone, etc. as some other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer to schedule - pods to nodes that satisfy the anti-affinity expressions - specified by this field, but it may choose a node - that violates one or more of the expressions. - The node that is most preferred is the one with - the greatest sum of weights, i.e. for each node - that meets all of the scheduling requirements - (resource request, requiredDuringScheduling anti-affinity - expressions, etc.), compute a sum by iterating - through the elements of this field and adding - "weight" to the sum if the node has pods which - matches the corresponding podAffinityTerm; the - node(s) with the highest sum are the most preferred. items: - description: The weights of all of the matched - WeightedPodAffinityTerm fields are added per-node - to find the most preferred node(s) properties: podAffinityTerm: - description: Required. A pod affinity term, - associated with the corresponding weight. properties: labelSelector: - description: A label query over a set - of resources, in this case pods. If - it's null, this PodAffinityTerm matches - with no Pods. properties: matchExpressions: - description: matchExpressions is a - list of label selector requirements. - The requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to a - set of values. Valid operators - are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an array - of string values. If the operator - is In or NotIn, the values - array must be non-empty. If - the operator is Exists or - DoesNotExist, the values array - must be empty. This array - is replaced during a strategic - merge patch. items: type: string type: array @@ -1975,106 +979,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map - of {key,value} pairs. A single {key,value} - in the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is a set of - pod label keys to select which pods - will be taken into consideration. The - keys are used to lookup values from - the incoming pod labels, those key-value - labels are merged with `labelSelector` - as `key in (value)` to select the group - of existing pods which pods will be - taken into consideration for the incoming - pod's pod (anti) affinity. Keys that - don't exist in the incoming pod labels - will be ignored. The default value is - empty. The same key is forbidden to - exist in both matchLabelKeys and labelSelector. - Also, matchLabelKeys cannot be set when - labelSelector isn't set. This is an - alpha field and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys is a set - of pod label keys to select which pods - will be taken into consideration. The - keys are used to lookup values from - the incoming pod labels, those key-value - labels are merged with `labelSelector` - as `key notin (value)` to select the - group of existing pods which pods will - be taken into consideration for the - incoming pod's pod (anti) affinity. - Keys that don't exist in the incoming - pod labels will be ignored. The default - value is empty. The same key is forbidden - to exist in both mismatchLabelKeys and - labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector isn't - set. This is an alpha field and requires - enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over the set - of namespaces that the term applies - to. The term is applied to the union - of the namespaces selected by this field - and the ones listed in the namespaces - field. null selector and null or empty - namespaces list means "this pod's namespace". - An empty selector ({}) matches all namespaces. properties: matchExpressions: - description: matchExpressions is a - list of label selector requirements. - The requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to a - set of values. Valid operators - are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an array - of string values. If the operator - is In or NotIn, the values - array must be non-empty. If - the operator is Exists or - DoesNotExist, the values array - must be empty. This array - is replaced during a strategic - merge patch. items: type: string type: array @@ -2088,48 +1015,20 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map - of {key,value} pairs. A single {key,value} - in the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies a static - list of namespace names that the term - applies to. The term is applied to the - union of the namespaces listed in this - field and the ones selected by namespaceSelector. - null or empty namespaces list and null - namespaceSelector means "this pod's - namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be co-located - (affinity) or not co-located (anti-affinity) - with the pods matching the labelSelector - in the specified namespaces, where co-located - is defined as running on a node whose - value of the label with key topologyKey - matches that of any node on which any - of the selected pods is running. Empty - topologyKey is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated with matching - the corresponding podAffinityTerm, in the - range 1-100. format: int32 type: integer required: @@ -2139,61 +1038,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the anti-affinity requirements specified - by this field are not met at scheduling time, - the pod will not be scheduled onto the node. If - the anti-affinity requirements specified by this - field cease to be met at some point during pod - execution (e.g. due to a pod label update), the - system may or may not try to eventually evict - the pod from its node. When there are multiple - elements, the lists of nodes corresponding to - each podAffinityTerm are intersected, i.e. all - terms must be satisfied. items: - description: Defines a set of pods (namely those - matching the labelSelector relative to the given - namespace(s)) that this pod should be co-located - (affinity) or not co-located (anti-affinity) - with, where co-located is defined as running - on a node whose value of the label with key - matches that of any node on which - a pod of the set of pods is running properties: labelSelector: - description: A label query over a set of resources, - in this case pods. If it's null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions is a list - of label selector requirements. The - requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label key - that the selector applies to. type: string operator: - description: operator represents - a key's relationship to a set - of values. Valid operators are - In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array - of string values. If the operator - is In or NotIn, the values array - must be non-empty. If the operator - is Exists or DoesNotExist, the - values array must be empty. This - array is replaced during a strategic - merge patch. items: type: string type: array @@ -2207,97 +1063,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is a set of pod - label keys to select which pods will be - taken into consideration. The keys are used - to lookup values from the incoming pod labels, - those key-value labels are merged with `labelSelector` - as `key in (value)` to select the group - of existing pods which pods will be taken - into consideration for the incoming pod's - pod (anti) affinity. Keys that don't exist - in the incoming pod labels will be ignored. - The default value is empty. The same key - is forbidden to exist in both matchLabelKeys - and labelSelector. Also, matchLabelKeys - cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling - MatchLabelKeysInPodAffinity feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys is a set of - pod label keys to select which pods will - be taken into consideration. The keys are - used to lookup values from the incoming - pod labels, those key-value labels are merged - with `labelSelector` as `key notin (value)` - to select the group of existing pods which - pods will be taken into consideration for - the incoming pod's pod (anti) affinity. - Keys that don't exist in the incoming pod - labels will be ignored. The default value - is empty. The same key is forbidden to exist - in both mismatchLabelKeys and labelSelector. - Also, mismatchLabelKeys cannot be set when - labelSelector isn't set. This is an alpha - field and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over the set of - namespaces that the term applies to. The - term is applied to the union of the namespaces - selected by this field and the ones listed - in the namespaces field. null selector and - null or empty namespaces list means "this - pod's namespace". An empty selector ({}) - matches all namespaces. properties: matchExpressions: - description: matchExpressions is a list - of label selector requirements. The - requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label key - that the selector applies to. type: string operator: - description: operator represents - a key's relationship to a set - of values. Valid operators are - In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array - of string values. If the operator - is In or NotIn, the values array - must be non-empty. If the operator - is Exists or DoesNotExist, the - values array must be empty. This - array is replaced during a strategic - merge patch. items: type: string type: array @@ -2311,37 +1099,15 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies a static - list of namespace names that the term applies - to. The term is applied to the union of - the namespaces listed in this field and - the ones selected by namespaceSelector. - null or empty namespaces list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be co-located - (affinity) or not co-located (anti-affinity) - with the pods matching the labelSelector - in the specified namespaces, where co-located - is defined as running on a node whose value - of the label with key topologyKey matches - that of any node on which any of the selected - pods is running. Empty topologyKey is not - allowed. type: string required: - topologyKey @@ -2351,242 +1117,92 @@ spec: type: object type: object args: - description: 'Arguments to the entrypoint. The docker image''s - CMD is used if this is not provided. Variable references - $(VAR_NAME) are expanded using the container''s environment. - If a variable cannot be resolved, the reference in the - input string will be unchanged. The $(VAR_NAME) syntax - can be escaped with a double $$, ie: $$(VAR_NAME). Escaped - references will never be expanded, regardless of whether - the variable exists or not. Cannot be updated. More info: - https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' items: type: string type: array containerSecurityContext: - description: 'Security options the pod should run with. - More info: https://kubernetes.io/docs/concepts/policy/security-context/ - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: allowPrivilegeEscalation: - description: 'AllowPrivilegeEscalation controls whether - a process can gain more privileges than its parent - process. This bool directly controls if the no_new_privs - flag will be set on the container process. AllowPrivilegeEscalation - is true always when the container is: 1) run as Privileged - 2) has CAP_SYS_ADMIN Note that this field cannot be - set when spec.os.name is windows.' type: boolean appArmorProfile: - description: appArmorProfile is the AppArmor options - to use by this container. If set, this profile overrides - the pod's appArmorProfile. Note that this field cannot - be set when spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates a profile - loaded on the node that should be used. The profile - must be preconfigured on the node to work. Must - match the loaded name of the profile. Must be - set if and only if type is "Localhost". type: string type: - description: 'type indicates which kind of AppArmor - profile will be applied. Valid options are: Localhost - - a profile pre-loaded on the node. RuntimeDefault - - the container runtime''s default profile. Unconfined - - no AppArmor enforcement.' type: string required: - type type: object capabilities: - description: The capabilities to add/drop when running - containers. Defaults to the default set of capabilities - granted by the container runtime. Note that this field - cannot be set when spec.os.name is windows. properties: add: - description: Added capabilities items: - description: Capability represent POSIX capabilities - type type: string type: array x-kubernetes-list-type: atomic drop: - description: Removed capabilities items: - description: Capability represent POSIX capabilities - type type: string type: array x-kubernetes-list-type: atomic type: object privileged: - description: Run container in privileged mode. Processes - in privileged containers are essentially equivalent - to root on the host. Defaults to false. Note that - this field cannot be set when spec.os.name is windows. type: boolean procMount: - description: procMount denotes the type of proc mount - to use for the containers. The default is DefaultProcMount - which uses the container runtime defaults for readonly - paths and masked paths. This requires the ProcMountType - feature flag to be enabled. Note that this field cannot - be set when spec.os.name is windows. type: string readOnlyRootFilesystem: - description: Whether this container has a read-only - root filesystem. Default is false. Note that this - field cannot be set when spec.os.name is windows. type: boolean runAsGroup: - description: The GID to run the entrypoint of the container - process. Uses runtime default if unset. May also be - set in PodSecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified in SecurityContext - takes precedence. Note that this field cannot be set - when spec.os.name is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container must run as - a non-root user. If true, the Kubelet will validate - the image at runtime to ensure that it does not run - as UID 0 (root) and fail to start the container if - it does. If unset or false, no such validation will - be performed. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes precedence. type: boolean runAsUser: - description: The UID to run the entrypoint of the container - process. Defaults to user specified in image metadata - if unspecified. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes precedence. - Note that this field cannot be set when spec.os.name - is windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be applied to the - container. If unspecified, the container runtime will - allocate a random SELinux context for each container. May - also be set in PodSecurityContext. If set in both - SecurityContext and PodSecurityContext, the value - specified in SecurityContext takes precedence. Note - that this field cannot be set when spec.os.name is - windows. properties: level: - description: Level is SELinux level label that applies - to the container. type: string role: - description: Role is a SELinux role label that applies - to the container. type: string type: - description: Type is a SELinux type label that applies - to the container. type: string user: - description: User is a SELinux user label that applies - to the container. type: string type: object seccompProfile: - description: The seccomp options to use by this container. - If seccomp options are provided at both the pod & - container level, the container options override the - pod options. Note that this field cannot be set when - spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates a profile - defined in a file on the node should be used. - The profile must be preconfigured on the node - to work. Must be a descending path, relative to - the kubelet's configured seccomp profile location. - Must be set if type is "Localhost". Must NOT be - set for any other type. type: string type: - description: "type indicates which kind of seccomp - profile will be applied. Valid options are: \n - Localhost - a profile defined in a file on the - node should be used. RuntimeDefault - the container - runtime default profile should be used. Unconfined - - no profile should be applied." type: string required: - type type: object windowsOptions: - description: The Windows specific settings applied to - all containers. If unspecified, the options from the - PodSecurityContext will be used. If set in both SecurityContext - and PodSecurityContext, the value specified in SecurityContext - takes precedence. Note that this field cannot be set - when spec.os.name is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is where the GMSA - admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA credential spec - named by the GMSACredentialSpecName field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName is the name - of the GMSA credential spec to use. type: string hostProcess: - description: HostProcess determines if a container - should be run as a 'Host Process' container. All - of a Pod's containers must have the same effective - HostProcess value (it is not allowed to have a - mix of HostProcess containers and non-HostProcess - containers). In addition, if HostProcess is true - then HostNetwork must also be set to true. type: boolean runAsUserName: - description: The UserName in Windows to run the - entrypoint of the container process. Defaults - to the user specified in image metadata if unspecified. - May also be set in PodSecurityContext. If set - in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes precedence. type: string type: object type: object dnsConfig: - description: Specifies the DNS parameters of a pod. Parameters - specified here will be merged to the generated DNS configuration - based on DNSPolicy. properties: nameservers: - description: A list of DNS name server IP addresses. - This will be appended to the base nameservers generated - from DNSPolicy. Duplicated nameservers will be removed. items: type: string type: array x-kubernetes-list-type: atomic options: - description: A list of DNS resolver options. This will - be merged with the base options generated from DNSPolicy. - Duplicated entries will be removed. Resolution options - given in Options will override those that appear in - the base DNSPolicy. items: - description: PodDNSConfigOption defines DNS resolver - options of a pod. properties: name: - description: Required. type: string value: type: string @@ -2594,151 +1210,71 @@ spec: type: array x-kubernetes-list-type: atomic searches: - description: A list of DNS search domains for host-name - lookup. This will be appended to the base search paths - generated from DNSPolicy. Duplicated search paths - will be removed. items: type: string type: array x-kubernetes-list-type: atomic type: object dnsPolicy: - description: Set DNS policy for the pod. Defaults to "ClusterFirst". - Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', - 'Default' or 'None'. DNS parameters given in DNSConfig - will be merged with the policy selected with DNSPolicy. - To have DNS options set along with hostNetwork, you have - to specify DNS policy explicitly to 'ClusterFirstWithHostNet'. type: string enableServiceLinks: - description: 'EnableServiceLinks indicates whether information - about services should be injected into pod''s environment - variables, matching the syntax of Docker links. Optional: - Defaults to true.' type: boolean env: - description: List of environment variables to set in the - container. Cannot be updated. items: - description: EnvVar represents an environment variable - present in a Container. properties: name: - description: Name of the environment variable. Must - be a C_IDENTIFIER. type: string value: - description: 'Variable references $(VAR_NAME) are - expanded using the previously defined environment - variables in the container and any service environment - variables. If a variable cannot be resolved, the - reference in the input string will be unchanged. - Double $$ are reduced to a single $, which allows - for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" - will produce the string literal "$(VAR_NAME)". Escaped - references will never be expanded, regardless of - whether the variable exists or not. Defaults to - "".' type: string valueFrom: - description: Source for the environment variable's - value. Cannot be used if value is not empty. properties: configMapKeyRef: - description: Selects a key of a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other - useful fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap - or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field of the pod: supports - metadata.name, metadata.namespace, `metadata.labels['''']`, - `metadata.annotations['''']`, spec.nodeName, - spec.serviceAccountName, status.hostIP, status.podIP, - status.podIPs.' properties: apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". type: string fieldPath: - description: Path of the field to select in - the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource of the container: - only resources limits and requests (limits.cpu, - limits.memory, limits.ephemeral-storage, requests.cpu, - requests.memory and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: required for - volumes, optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output format of - the exposed resources, defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource to select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret in the - pod's namespace properties: key: - description: The key of the secret to select - from. Must be a valid secret key. type: string name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other - useful fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret or - its key must be defined type: boolean required: - key @@ -2750,225 +1286,89 @@ spec: type: object type: array hostIPC: - description: 'Use the host''s ipc namespace. Optional: Default - to false.' type: boolean hostNetwork: - description: Host networking requested for this pod. Use - the host's network namespace. If this option is set, the - ports that will be used must be specified. Default to - false. type: boolean hostPID: - description: 'Use the host''s pid namespace. Optional: Default - to false.' type: boolean imagePullSecrets: - description: 'ImagePullSecrets is an optional list of references - to secrets in the same namespace to use for pulling any - of the images used by this PodSpec. If specified, these - secrets will be passed to individual puller implementations - for them to use. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod' items: - description: LocalObjectReference contains enough information - to let you locate the referenced object inside the same - namespace. properties: name: default: "" - description: 'Name of the referent. This field is - effectively required, but due to backwards compatibility - is allowed to be empty. Instances of this type with - an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, - uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic type: array initContainers: - description: 'List of initialization containers belonging - to the pod. Init containers are executed in order prior - to containers being started. If any init container fails, - the pod is considered to have failed and is handled according - to its restartPolicy. The name for an init container or - normal container must be unique among all containers. - Init containers may not have Lifecycle actions, Readiness - probes, or Liveness probes. The resourceRequirements of - an init container are taken into account during scheduling - by finding the highest request/limit for each resource - type, and then using the max of of that value or the sum - of the normal containers. Limits are applied to init containers - in a similar fashion. Init containers cannot currently - be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/' items: - description: A single application container that you want - to run within a pod. properties: args: - description: 'Arguments to the entrypoint. The container - image''s CMD is used if this is not provided. Variable - references $(VAR_NAME) are expanded using the container''s - environment. If a variable cannot be resolved, the - reference in the input string will be unchanged. - Double $$ are reduced to a single $, which allows - for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" - will produce the string literal "$(VAR_NAME)". Escaped - references will never be expanded, regardless of - whether the variable exists or not. Cannot be updated. - More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' items: type: string type: array x-kubernetes-list-type: atomic command: - description: 'Entrypoint array. Not executed within - a shell. The container image''s ENTRYPOINT is used - if this is not provided. Variable references $(VAR_NAME) - are expanded using the container''s environment. - If a variable cannot be resolved, the reference - in the input string will be unchanged. Double $$ - are reduced to a single $, which allows for escaping - the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will - produce the string literal "$(VAR_NAME)". Escaped - references will never be expanded, regardless of - whether the variable exists or not. Cannot be updated. - More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' items: type: string type: array x-kubernetes-list-type: atomic env: - description: List of environment variables to set - in the container. Cannot be updated. items: - description: EnvVar represents an environment variable - present in a Container. properties: name: - description: Name of the environment variable. - Must be a C_IDENTIFIER. type: string value: - description: 'Variable references $(VAR_NAME) - are expanded using the previously defined - environment variables in the container and - any service environment variables. If a variable - cannot be resolved, the reference in the input - string will be unchanged. Double $$ are reduced - to a single $, which allows for escaping the - $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will - produce the string literal "$(VAR_NAME)". - Escaped references will never be expanded, - regardless of whether the variable exists - or not. Defaults to "".' type: string valueFrom: - description: Source for the environment variable's - value. Cannot be used if value is not empty. properties: configMapKeyRef: - description: Selects a key of a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value here - are almost certainly wrong. TODO: - Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap - or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field of the pod: - supports metadata.name, metadata.namespace, - `metadata.labels['''']`, `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, - status.hostIP, status.podIP, status.podIPs.' properties: apiVersion: - description: Version of the schema the - FieldPath is written in terms of, - defaults to "v1". type: string fieldPath: - description: Path of the field to select - in the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource of the - container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, - requests.cpu, requests.memory and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: required - for volumes, optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output format - of the exposed resources, defaults - to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource to - select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret in - the pod's namespace properties: key: - description: The key of the secret to - select from. Must be a valid secret - key. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value here - are almost certainly wrong. TODO: - Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret - or its key must be defined type: boolean required: - key @@ -2983,61 +1383,25 @@ spec: - name x-kubernetes-list-type: map envFrom: - description: List of sources to populate environment - variables in the container. The keys defined within - a source must be a C_IDENTIFIER. All invalid keys - will be reported as an event when the container - is starting. When a key exists in multiple sources, - the value associated with the last source will take - precedence. Values defined by an Env with a duplicate - key will take precedence. Cannot be updated. items: - description: EnvFromSource represents the source - of a set of ConfigMaps properties: configMapRef: - description: The ConfigMap to select from properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type with - an empty value here are almost certainly - wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap - must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: - description: An optional identifier to prepend - to each key in the ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: - description: The Secret to select from properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type with - an empty value here are almost certainly - wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret - must be defined type: boolean type: object x-kubernetes-map-type: atomic @@ -3045,76 +1409,31 @@ spec: type: array x-kubernetes-list-type: atomic image: - description: 'Container image name. More info: https://kubernetes.io/docs/concepts/containers/images - This field is optional to allow higher level config - management to default or override container images - in workload controllers like Deployments and StatefulSets.' type: string imagePullPolicy: - description: 'Image pull policy. One of Always, Never, - IfNotPresent. Defaults to Always if :latest tag - is specified, or IfNotPresent otherwise. Cannot - be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images' type: string lifecycle: - description: Actions that the management system should - take in response to container lifecycle events. - Cannot be updated. properties: postStart: - description: 'PostStart is called immediately - after a container is created. If the handler - fails, the container is terminated and restarted - according to its restart policy. Other management - of the container blocks until the hook completes. - More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action to - take. properties: command: - description: Command is the command line - to execute inside the container, the - working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it is - not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to explicitly - call out to that shell. Exit status - of 0 is treated as live/healthy and - non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http request - to perform. properties: host: - description: Host name to connect to, - defaults to the pod IP. You probably - want to set "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated headers. items: - description: HTTPHeader describes a - custom header to be used in HTTP probes properties: name: - description: The header field name. - This will be canonicalized upon - output, so case-variant names - will be understood as the same - header. type: string value: - description: The header field value type: string required: - name @@ -3123,125 +1442,58 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP - server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration - that the container should sleep before being - terminated. properties: seconds: - description: Seconds is the number of - seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is NOT - supported as a LifecycleHandler and kept - for the backward compatibility. There are - no validation of this field and lifecycle - hooks will fail in runtime when tcp handler - is specified. properties: host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object type: object preStop: - description: 'PreStop is called immediately before - a container is terminated due to an API request - or management event such as liveness/startup - probe failure, preemption, resource contention, - etc. The handler is not called if the container - crashes or exits. The Pod''s termination grace - period countdown begins before the PreStop hook - is executed. Regardless of the outcome of the - handler, the container will eventually terminate - within the Pod''s termination grace period (unless - delayed by finalizers). Other management of - the container blocks until the hook completes - or until the termination grace period is reached. - More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action to - take. properties: command: - description: Command is the command line - to execute inside the container, the - working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it is - not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to explicitly - call out to that shell. Exit status - of 0 is treated as live/healthy and - non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http request - to perform. properties: host: - description: Host name to connect to, - defaults to the pod IP. You probably - want to set "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated headers. items: - description: HTTPHeader describes a - custom header to be used in HTTP probes properties: name: - description: The header field name. - This will be canonicalized upon - output, so case-variant names - will be understood as the same - header. type: string value: - description: The header field value type: string required: - name @@ -3250,58 +1502,33 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP - server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration - that the container should sleep before being - terminated. properties: seconds: - description: Seconds is the number of - seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is NOT - supported as a LifecycleHandler and kept - for the backward compatibility. There are - no validation of this field and lifecycle - hooks will fail in runtime when tcp handler - is specified. properties: host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port @@ -3309,78 +1536,38 @@ spec: type: object type: object livenessProbe: - description: 'Periodic probe of container liveness. - Container will be restarted if the probe fails. - Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to take. properties: command: - description: Command is the command line to - execute inside the container, the working - directory for the command is root ('/') - in the container's filesystem. The command - is simply exec'd, it is not run inside a - shell, so traditional shell instructions - ('|', etc) won't work. To use a shell, you - need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures for - the probe to be considered failed after having - succeeded. Defaults to 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving - a GRPC port. properties: port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name of the service - to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default - behavior is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http request - to perform. properties: host: - description: Host name to connect to, defaults - to the pod IP. You probably want to set - "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in the - request. HTTP allows repeated headers. items: - description: HTTPHeader describes a custom - header to be used in HTTP probes properties: name: - description: The header field name. - This will be canonicalized upon output, - so case-variant names will be understood - as the same header. type: string value: - description: The header field value type: string required: - name @@ -3389,136 +1576,62 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port to - access on the container. Number must be - in the range 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the container - has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform - the probe. Default to 10 seconds. Minimum value - is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes for - the probe to be considered successful after - having failed. Defaults to 1. Must be 1 for - liveness and startup. Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. properties: host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port to - access on the container. Number must be - in the range 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds the - pod needs to terminate gracefully upon probe - failure. The grace period is the duration in - seconds after the processes running in the pod - are sent a termination signal and the time when - the processes are forcibly halted with a kill - signal. Set this value longer than the expected - cleanup time for your process. If this value - is nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value overrides - the value provided by the pod spec. Value must - be non-negative integer. The value zero indicates - stop immediately via the kill signal (no opportunity - to shut down). This is a beta field and requires - enabling ProbeTerminationGracePeriod feature - gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which the - probe times out. Defaults to 1 second. Minimum - value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object name: - description: Name of the container specified as a - DNS_LABEL. Each container in a pod must have a unique - name (DNS_LABEL). Cannot be updated. type: string ports: - description: List of ports to expose from the container. - Not specifying a port here DOES NOT prevent that - port from being exposed. Any port which is listening - on the default "0.0.0.0" address inside a container - will be accessible from the network. Modifying this - array with strategic merge patch may corrupt the - data. For more information See https://github.com/kubernetes/kubernetes/issues/108255. - Cannot be updated. items: - description: ContainerPort represents a network - port in a single container. properties: containerPort: - description: Number of port to expose on the - pod's IP address. This must be a valid port - number, 0 < x < 65536. format: int32 type: integer hostIP: - description: What host IP to bind the external - port to. type: string hostPort: - description: Number of port to expose on the - host. If specified, this must be a valid port - number, 0 < x < 65536. If HostNetwork is specified, - this must match ContainerPort. Most containers - do not need this. format: int32 type: integer name: - description: If specified, this must be an IANA_SVC_NAME - and unique within the pod. Each named port - in a pod must have a unique name. Name for - the port that can be referred to by services. type: string protocol: default: TCP - description: Protocol for port. Must be UDP, - TCP, or SCTP. Defaults to "TCP". type: string required: - containerPort @@ -3529,79 +1642,38 @@ spec: - protocol x-kubernetes-list-type: map readinessProbe: - description: 'Periodic probe of container service - readiness. Container will be removed from service - endpoints if the probe fails. Cannot be updated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to take. properties: command: - description: Command is the command line to - execute inside the container, the working - directory for the command is root ('/') - in the container's filesystem. The command - is simply exec'd, it is not run inside a - shell, so traditional shell instructions - ('|', etc) won't work. To use a shell, you - need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures for - the probe to be considered failed after having - succeeded. Defaults to 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving - a GRPC port. properties: port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name of the service - to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default - behavior is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http request - to perform. properties: host: - description: Host name to connect to, defaults - to the pod IP. You probably want to set - "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in the - request. HTTP allows repeated headers. items: - description: HTTPHeader describes a custom - header to be used in HTTP probes properties: name: - description: The header field name. - This will be canonicalized upon output, - so case-variant names will be understood - as the same header. type: string value: - description: The header field value type: string required: - name @@ -3610,105 +1682,51 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port to - access on the container. Number must be - in the range 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the container - has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform - the probe. Default to 10 seconds. Minimum value - is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes for - the probe to be considered successful after - having failed. Defaults to 1. Must be 1 for - liveness and startup. Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. properties: host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port to - access on the container. Number must be - in the range 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds the - pod needs to terminate gracefully upon probe - failure. The grace period is the duration in - seconds after the processes running in the pod - are sent a termination signal and the time when - the processes are forcibly halted with a kill - signal. Set this value longer than the expected - cleanup time for your process. If this value - is nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value overrides - the value provided by the pod spec. Value must - be non-negative integer. The value zero indicates - stop immediately via the kill signal (no opportunity - to shut down). This is a beta field and requires - enabling ProbeTerminationGracePeriod feature - gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which the - probe times out. Defaults to 1 second. Minimum - value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object resizePolicy: - description: Resources resize policy for the container. items: - description: ContainerResizePolicy represents resource - resize policy for the container. properties: resourceName: - description: 'Name of the resource to which - this resource resize policy applies. Supported - values: cpu, memory.' type: string restartPolicy: - description: Restart policy to apply when specified - resource is resized. If not specified, it - defaults to NotRequired. type: string required: - resourceName @@ -3717,25 +1735,11 @@ spec: type: array x-kubernetes-list-type: atomic resources: - description: 'Compute Resources required by this container. - Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' properties: claims: - description: "Claims lists the names of resources, - defined in spec.resourceClaims, that are used - by this container. \n This is an alpha field - and requires enabling the DynamicResourceAllocation - feature gate. \n This field is immutable. It - can only be set for containers." items: - description: ResourceClaim references one entry - in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of - one entry in pod.spec.resourceClaims of - the Pod where this field is used. It makes - that resource available inside a container. type: string required: - name @@ -3751,8 +1755,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount - of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -3761,337 +1763,115 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount - of compute resources required. If Requests is - omitted for a container, it defaults to Limits - if that is explicitly specified, otherwise to - an implementation-defined value. Requests cannot - exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object restartPolicy: - description: 'RestartPolicy defines the restart behavior - of individual containers in a pod. This field may - only be set for init containers, and the only allowed - value is "Always". For non-init containers or when - this field is not specified, the restart behavior - is defined by the Pod''s restart policy and the - container type. Setting the RestartPolicy as "Always" - for the init container will have the following effect: - this init container will be continually restarted - on exit until all regular containers have terminated. - Once all regular containers have completed, all - init containers with restartPolicy "Always" will - be shut down. This lifecycle differs from normal - init containers and is often referred to as a "sidecar" - container. Although this init container still starts - in the init container sequence, it does not wait - for the container to complete before proceeding - to the next init container. Instead, the next init - container starts immediately after this init container - is started, or after any startupProbe has successfully - completed.' type: string securityContext: - description: 'SecurityContext defines the security - options the container should be run with. If set, - the fields of SecurityContext override the equivalent - fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: allowPrivilegeEscalation: - description: 'AllowPrivilegeEscalation controls - whether a process can gain more privileges than - its parent process. This bool directly controls - if the no_new_privs flag will be set on the - container process. AllowPrivilegeEscalation - is true always when the container is: 1) run - as Privileged 2) has CAP_SYS_ADMIN Note that - this field cannot be set when spec.os.name is - windows.' type: boolean appArmorProfile: - description: appArmorProfile is the AppArmor options - to use by this container. If set, this profile - overrides the pod's appArmorProfile. Note that - this field cannot be set when spec.os.name is - windows. properties: localhostProfile: - description: localhostProfile indicates a - profile loaded on the node that should be - used. The profile must be preconfigured - on the node to work. Must match the loaded - name of the profile. Must be set if and - only if type is "Localhost". type: string type: - description: 'type indicates which kind of - AppArmor profile will be applied. Valid - options are: Localhost - a profile pre-loaded - on the node. RuntimeDefault - the container - runtime''s default profile. Unconfined - - no AppArmor enforcement.' type: string required: - type type: object capabilities: - description: The capabilities to add/drop when - running containers. Defaults to the default - set of capabilities granted by the container - runtime. Note that this field cannot be set - when spec.os.name is windows. properties: add: - description: Added capabilities items: - description: Capability represent POSIX - capabilities type type: string type: array x-kubernetes-list-type: atomic drop: - description: Removed capabilities items: - description: Capability represent POSIX - capabilities type type: string type: array x-kubernetes-list-type: atomic type: object privileged: - description: Run container in privileged mode. - Processes in privileged containers are essentially - equivalent to root on the host. Defaults to - false. Note that this field cannot be set when - spec.os.name is windows. type: boolean procMount: - description: procMount denotes the type of proc - mount to use for the containers. The default - is DefaultProcMount which uses the container - runtime defaults for readonly paths and masked - paths. This requires the ProcMountType feature - flag to be enabled. Note that this field cannot - be set when spec.os.name is windows. type: string readOnlyRootFilesystem: - description: Whether this container has a read-only - root filesystem. Default is false. Note that - this field cannot be set when spec.os.name is - windows. type: boolean runAsGroup: - description: The GID to run the entrypoint of - the container process. Uses runtime default - if unset. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. Note that this field cannot be set - when spec.os.name is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container must - run as a non-root user. If true, the Kubelet - will validate the image at runtime to ensure - that it does not run as UID 0 (root) and fail - to start the container if it does. If unset - or false, no such validation will be performed. - May also be set in PodSecurityContext. If set - in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. type: boolean runAsUser: - description: The UID to run the entrypoint of - the container process. Defaults to user specified - in image metadata if unspecified. May also be - set in PodSecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. Note that - this field cannot be set when spec.os.name is - windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be applied - to the container. If unspecified, the container - runtime will allocate a random SELinux context - for each container. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. Note that this field cannot be set - when spec.os.name is windows. properties: level: - description: Level is SELinux level label - that applies to the container. type: string role: - description: Role is a SELinux role label - that applies to the container. type: string type: - description: Type is a SELinux type label - that applies to the container. type: string user: - description: User is a SELinux user label - that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to use by this - container. If seccomp options are provided at - both the pod & container level, the container - options override the pod options. Note that - this field cannot be set when spec.os.name is - windows. properties: localhostProfile: - description: localhostProfile indicates a - profile defined in a file on the node should - be used. The profile must be preconfigured - on the node to work. Must be a descending - path, relative to the kubelet's configured - seccomp profile location. Must be set if - type is "Localhost". Must NOT be set for - any other type. type: string type: - description: "type indicates which kind of - seccomp profile will be applied. Valid options - are: \n Localhost - a profile defined in - a file on the node should be used. RuntimeDefault - - the container runtime default profile - should be used. Unconfined - no profile - should be applied." type: string required: - type type: object windowsOptions: - description: The Windows specific settings applied - to all containers. If unspecified, the options - from the PodSecurityContext will be used. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. Note that this field cannot be set - when spec.os.name is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is where the - GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA credential - spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName is the - name of the GMSA credential spec to use. type: string hostProcess: - description: HostProcess determines if a container - should be run as a 'Host Process' container. - All of a Pod's containers must have the - same effective HostProcess value (it is - not allowed to have a mix of HostProcess - containers and non-HostProcess containers). - In addition, if HostProcess is true then - HostNetwork must also be set to true. type: boolean runAsUserName: - description: The UserName in Windows to run - the entrypoint of the container process. - Defaults to the user specified in image - metadata if unspecified. May also be set - in PodSecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. type: string type: object type: object startupProbe: - description: 'StartupProbe indicates that the Pod - has successfully initialized. If specified, no other - probes are executed until this completes successfully. - If this probe fails, the Pod will be restarted, - just as if the livenessProbe failed. This can be - used to provide different probe parameters at the - beginning of a Pod''s lifecycle, when it might take - a long time to load data or warm a cache, than during - steady-state operation. This cannot be updated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to take. properties: command: - description: Command is the command line to - execute inside the container, the working - directory for the command is root ('/') - in the container's filesystem. The command - is simply exec'd, it is not run inside a - shell, so traditional shell instructions - ('|', etc) won't work. To use a shell, you - need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures for - the probe to be considered failed after having - succeeded. Defaults to 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving - a GRPC port. properties: port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name of the service - to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default - behavior is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http request - to perform. properties: host: - description: Host name to connect to, defaults - to the pod IP. You probably want to set - "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in the - request. HTTP allows repeated headers. items: - description: HTTPHeader describes a custom - header to be used in HTTP probes properties: name: - description: The header field name. - This will be canonicalized upon output, - so case-variant names will be understood - as the same header. type: string value: - description: The header field value type: string required: - name @@ -4100,152 +1880,61 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port to - access on the container. Number must be - in the range 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the container - has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform - the probe. Default to 10 seconds. Minimum value - is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes for - the probe to be considered successful after - having failed. Defaults to 1. Must be 1 for - liveness and startup. Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. properties: host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port to - access on the container. Number must be - in the range 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds the - pod needs to terminate gracefully upon probe - failure. The grace period is the duration in - seconds after the processes running in the pod - are sent a termination signal and the time when - the processes are forcibly halted with a kill - signal. Set this value longer than the expected - cleanup time for your process. If this value - is nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value overrides - the value provided by the pod spec. Value must - be non-negative integer. The value zero indicates - stop immediately via the kill signal (no opportunity - to shut down). This is a beta field and requires - enabling ProbeTerminationGracePeriod feature - gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which the - probe times out. Defaults to 1 second. Minimum - value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object stdin: - description: Whether this container should allocate - a buffer for stdin in the container runtime. If - this is not set, reads from stdin in the container - will always result in EOF. Default is false. type: boolean stdinOnce: - description: Whether the container runtime should - close the stdin channel after it has been opened - by a single attach. When stdin is true the stdin - stream will remain open across multiple attach sessions. - If stdinOnce is set to true, stdin is opened on - container start, is empty until the first client - attaches to stdin, and then remains open and accepts - data until the client disconnects, at which time - stdin is closed and remains closed until the container - is restarted. If this flag is false, a container - processes that reads from stdin will never receive - an EOF. Default is false type: boolean terminationMessagePath: - description: 'Optional: Path at which the file to - which the container''s termination message will - be written is mounted into the container''s filesystem. - Message written is intended to be brief final status, - such as an assertion failure message. Will be truncated - by the node if greater than 4096 bytes. The total - message length across all containers will be limited - to 12kb. Defaults to /dev/termination-log. Cannot - be updated.' type: string terminationMessagePolicy: - description: Indicate how the termination message - should be populated. File will use the contents - of terminationMessagePath to populate the container - status message on both success and failure. FallbackToLogsOnError - will use the last chunk of container log output - if the termination message file is empty and the - container exited with an error. The log output is - limited to 2048 bytes or 80 lines, whichever is - smaller. Defaults to File. Cannot be updated. type: string tty: - description: Whether this container should allocate - a TTY for itself, also requires 'stdin' to be true. - Default is false. type: boolean volumeDevices: - description: volumeDevices is the list of block devices - to be used by the container. items: - description: volumeDevice describes a mapping of - a raw block device within a container. properties: devicePath: - description: devicePath is the path inside of - the container that the device will be mapped - to. type: string name: - description: name must match the name of a persistentVolumeClaim - in the pod type: string required: - devicePath @@ -4256,68 +1945,21 @@ spec: - devicePath x-kubernetes-list-type: map volumeMounts: - description: Pod volumes to mount into the container's - filesystem. Cannot be updated. items: - description: VolumeMount describes a mounting of - a Volume within a container. properties: mountPath: - description: Path within the container at which - the volume should be mounted. Must not contain - ':'. type: string mountPropagation: - description: mountPropagation determines how - mounts are propagated from the host to container - and the other way around. When not set, MountPropagationNone - is used. This field is beta in 1.10. When - RecursiveReadOnly is set to IfPossible or - to Enabled, MountPropagation must be None - or unspecified (which defaults to None). type: string name: - description: This must match the Name of a Volume. type: string readOnly: - description: Mounted read-only if true, read-write - otherwise (false or unspecified). Defaults - to false. type: boolean recursiveReadOnly: - description: "RecursiveReadOnly specifies whether - read-only mounts should be handled recursively. - \n If ReadOnly is false, this field has no - meaning and must be unspecified. \n If ReadOnly - is true, and this field is set to Disabled, - the mount is not made recursively read-only. - \ If this field is set to IfPossible, the - mount is made recursively read-only, if it - is supported by the container runtime. If - this field is set to Enabled, the mount is - made recursively read-only if it is supported - by the container runtime, otherwise the pod - will not be started and an error will be generated - to indicate the reason. \n If this field is - set to IfPossible or Enabled, MountPropagation - must be set to None (or be unspecified, which - defaults to None). \n If this field is not - specified, it is treated as an equivalent - of Disabled." type: string subPath: - description: Path within the volume from which - the container's volume should be mounted. - Defaults to "" (volume's root). type: string subPathExpr: - description: Expanded path within the volume - from which the container's volume should be - mounted. Behaves similarly to SubPath but - environment variable references $(VAR_NAME) - are expanded using the container's environment. - Defaults to "" (volume's root). SubPathExpr - and SubPath are mutually exclusive. type: string required: - mountPath @@ -4328,68 +1970,33 @@ spec: - mountPath x-kubernetes-list-type: map workingDir: - description: Container's working directory. If not - specified, the container runtime's default will - be used, which might be configured in the container - image. Cannot be updated. type: string required: - name type: object type: array lifecycle: - description: Actions that the management system should take - in response to container lifecycle events. Cannot be updated. properties: postStart: - description: 'PostStart is called immediately after - a container is created. If the handler fails, the - container is terminated and restarted according to - its restart policy. Other management of the container - blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action to take. properties: command: - description: Command is the command line to - execute inside the container, the working - directory for the command is root ('/') in - the container's filesystem. The command is - simply exec'd, it is not run inside a shell, - so traditional shell instructions ('|', etc) - won't work. To use a shell, you need to explicitly - call out to that shell. Exit status of 0 is - treated as live/healthy and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http request - to perform. properties: host: - description: Host name to connect to, defaults - to the pod IP. You probably want to set "Host" - in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in the request. - HTTP allows repeated headers. items: - description: HTTPHeader describes a custom - header to be used in HTTP probes properties: name: - description: The header field name. This - will be canonicalized upon output, so - case-variant names will be understood - as the same header. type: string value: - description: The header field value type: string required: - name @@ -4398,114 +2005,58 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port to access - on the container. Number must be in the range - 1 to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting to - the host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration that - the container should sleep before being terminated. properties: seconds: - description: Seconds is the number of seconds - to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is NOT supported - as a LifecycleHandler and kept for the backward - compatibility. There are no validation of this - field and lifecycle hooks will fail in runtime - when tcp handler is specified. properties: host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port to access - on the container. Number must be in the range - 1 to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object type: object preStop: - description: 'PreStop is called immediately before a - container is terminated due to an API request or management - event such as liveness/startup probe failure, preemption, - resource contention, etc. The handler is not called - if the container crashes or exits. The Pod''s termination - grace period countdown begins before the PreStop hook - is executed. Regardless of the outcome of the handler, - the container will eventually terminate within the - Pod''s termination grace period (unless delayed by - finalizers). Other management of the container blocks - until the hook completes or until the termination - grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action to take. properties: command: - description: Command is the command line to - execute inside the container, the working - directory for the command is root ('/') in - the container's filesystem. The command is - simply exec'd, it is not run inside a shell, - so traditional shell instructions ('|', etc) - won't work. To use a shell, you need to explicitly - call out to that shell. Exit status of 0 is - treated as live/healthy and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http request - to perform. properties: host: - description: Host name to connect to, defaults - to the pod IP. You probably want to set "Host" - in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in the request. - HTTP allows repeated headers. items: - description: HTTPHeader describes a custom - header to be used in HTTP probes properties: name: - description: The header field name. This - will be canonicalized upon output, so - case-variant names will be understood - as the same header. type: string value: - description: The header field value type: string required: - name @@ -4514,53 +2065,33 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port to access - on the container. Number must be in the range - 1 to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting to - the host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration that - the container should sleep before being terminated. properties: seconds: - description: Seconds is the number of seconds - to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is NOT supported - as a LifecycleHandler and kept for the backward - compatibility. There are no validation of this - field and lifecycle hooks will fail in runtime - when tcp handler is specified. properties: host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port to access - on the container. Number must be in the range - 1 to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port @@ -4568,76 +2099,38 @@ spec: type: object type: object livenessProbe: - description: 'Periodic probe of container liveness. Container - will be restarted if the probe fails. Controllers may - set default LivenessProbe if no liveness probe is provided. - To ignore defaulting, set the value to empty LivenessProbe - "{}". Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to take. properties: command: - description: Command is the command line to execute - inside the container, the working directory for - the command is root ('/') in the container's - filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions - ('|', etc) won't work. To use a shell, you need - to explicitly call out to that shell. Exit status - of 0 is treated as live/healthy and non-zero is - unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures for the probe - to be considered failed after having succeeded. Defaults - to 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving a GRPC - port. properties: port: - description: Port number of the gRPC service. Number - must be in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name of the service - to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default behavior - is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http request to perform. properties: host: - description: Host name to connect to, defaults to - the pod IP. You probably want to set "Host" in - httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in the request. - HTTP allows repeated headers. items: - description: HTTPHeader describes a custom header - to be used in HTTP probes properties: name: - description: The header field name. This will - be canonicalized upon output, so case-variant - names will be understood as the same header. type: string value: - description: The header field value type: string required: - name @@ -4646,200 +2139,95 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port to access - on the container. Number must be in the range - 1 to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting to the - host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the container - has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform the probe. - Default to 10 seconds. Minimum value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes for the probe - to be considered successful after having failed. Defaults - to 1. Must be 1 for liveness and startup. Minimum - value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. properties: host: - description: 'Optional: Host name to connect to, - defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port to access - on the container. Number must be in the range - 1 to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds the pod needs - to terminate gracefully upon probe failure. The grace - period is the duration in seconds after the processes - running in the pod are sent a termination signal and - the time when the processes are forcibly halted with - a kill signal. Set this value longer than the expected - cleanup time for your process. If this value is nil, - the pod's terminationGracePeriodSeconds will be used. - Otherwise, this value overrides the value provided - by the pod spec. Value must be non-negative integer. - The value zero indicates stop immediately via the - kill signal (no opportunity to shut down). This is - a beta field and requires enabling ProbeTerminationGracePeriod - feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which the probe - times out. Defaults to 1 second. Minimum value is - 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object nodeSelector: additionalProperties: type: string - description: 'NodeSelector is a selector which must be true - for the pod to fit on a node. Selector which must match - a node''s labels for the pod to be scheduled on that node. - More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/' type: object x-kubernetes-map-type: atomic podPlacementPolicy: - description: PodPlacementPolicy is the reference of the - podPlacementPolicy properties: name: default: "" - description: 'Name of the referent. This field is effectively - required, but due to backwards compatibility is allowed - to be empty. Instances of this type with an empty - value here are almost certainly wrong. TODO: Add other - useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic priority: - description: The priority value. Various system components - use this field to find the priority of the pod. When Priority - Admission Controller is enabled, it prevents users from - setting this field. The admission controller populates - this field from PriorityClassName. The higher the value, - the higher the priority. format: int32 type: integer priorityClassName: - description: If specified, indicates the pod's priority. - "system-node-critical" and "system-cluster-critical" are - two special keywords which indicate the highest priorities - with the former being the highest priority. Any other - name must be defined by creating a PriorityClass object - with that name. If not specified, the pod priority will - be default or zero if there is no default. type: string readinessProbe: - description: 'Periodic probe of container service readiness. - Container will be removed from service endpoints if the - probe fails. Cannot be updated. Controllers may set default - ReadinessProbe if no readyness probe is provided. To ignore - defaulting, set the value to empty ReadynessProbe "{}". - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to take. properties: command: - description: Command is the command line to execute - inside the container, the working directory for - the command is root ('/') in the container's - filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions - ('|', etc) won't work. To use a shell, you need - to explicitly call out to that shell. Exit status - of 0 is treated as live/healthy and non-zero is - unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures for the probe - to be considered failed after having succeeded. Defaults - to 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving a GRPC - port. properties: port: - description: Port number of the gRPC service. Number - must be in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name of the service - to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default behavior - is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http request to perform. properties: host: - description: Host name to connect to, defaults to - the pod IP. You probably want to set "Host" in - httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in the request. - HTTP allows repeated headers. items: - description: HTTPHeader describes a custom header - to be used in HTTP probes properties: name: - description: The header field name. This will - be canonicalized upon output, so case-variant - names will be understood as the same header. type: string value: - description: The header field value type: string required: - name @@ -4848,103 +2236,51 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port to access - on the container. Number must be in the range - 1 to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting to the - host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the container - has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform the probe. - Default to 10 seconds. Minimum value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes for the probe - to be considered successful after having failed. Defaults - to 1. Must be 1 for liveness and startup. Minimum - value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. properties: host: - description: 'Optional: Host name to connect to, - defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port to access - on the container. Number must be in the range - 1 to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds the pod needs - to terminate gracefully upon probe failure. The grace - period is the duration in seconds after the processes - running in the pod are sent a termination signal and - the time when the processes are forcibly halted with - a kill signal. Set this value longer than the expected - cleanup time for your process. If this value is nil, - the pod's terminationGracePeriodSeconds will be used. - Otherwise, this value overrides the value provided - by the pod spec. Value must be non-negative integer. - The value zero indicates stop immediately via the - kill signal (no opportunity to shut down). This is - a beta field and requires enabling ProbeTerminationGracePeriod - feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which the probe - times out. Defaults to 1 second. Minimum value is - 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object resources: - description: Compute Resources required by the sidecar container. properties: claims: - description: "Claims lists the names of resources, defined - in spec.resourceClaims, that are used by this container. - \n This is an alpha field and requires enabling the - DynamicResourceAllocation feature gate. \n This field - is immutable. It can only be set for containers." items: - description: ResourceClaim references one entry in - PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry - in pod.spec.resourceClaims of the Pod where - this field is used. It makes that resource available - inside a container. type: string required: - name @@ -4960,8 +2296,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of - compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -4970,189 +2304,68 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount - of compute resources required. If Requests is omitted - for a container, it defaults to Limits if that is - explicitly specified, otherwise to an implementation-defined - value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object runtimeClassName: - description: 'RuntimeClassName refers to a RuntimeClass - object in the node.k8s.io group, which should be used - to run this pod. If no RuntimeClass resource matches - the named class, the pod will not be run. If unset or - empty, the "legacy" RuntimeClass will be used, which is - an implicit class with an empty definition that uses the - default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class' type: string schedulerName: - description: If specified, the pod will be dispatched by - specified scheduler. If not specified, the pod will be - dispatched by default scheduler. type: string securityContext: - description: 'SecurityContext holds pod-level security attributes - and common container settings. Optional: Defaults to empty. See - type description for default values of each field.' properties: appArmorProfile: - description: appArmorProfile is the AppArmor options - to use by the containers in this pod. Note that this - field cannot be set when spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates a profile - loaded on the node that should be used. The profile - must be preconfigured on the node to work. Must - match the loaded name of the profile. Must be - set if and only if type is "Localhost". type: string type: - description: 'type indicates which kind of AppArmor - profile will be applied. Valid options are: Localhost - - a profile pre-loaded on the node. RuntimeDefault - - the container runtime''s default profile. Unconfined - - no AppArmor enforcement.' type: string required: - type type: object fsGroup: - description: "A special supplemental group that applies - to all containers in a pod. Some volume types allow - the Kubelet to change the ownership of that volume - to be owned by the pod: \n 1. The owning GID will - be the FSGroup 2. The setgid bit is set (new files - created in the volume will be owned by FSGroup) 3. - The permission bits are OR'd with rw-rw---- \n If - unset, the Kubelet will not modify the ownership and - permissions of any volume. Note that this field cannot - be set when spec.os.name is windows." format: int64 type: integer fsGroupChangePolicy: - description: 'fsGroupChangePolicy defines behavior of - changing ownership and permission of the volume before - being exposed inside Pod. This field will only apply - to volume types which support fsGroup based ownership(and - permissions). It will have no effect on ephemeral - volume types such as: secret, configmaps and emptydir. - Valid values are "OnRootMismatch" and "Always". If - not specified, "Always" is used. Note that this field - cannot be set when spec.os.name is windows.' type: string runAsGroup: - description: The GID to run the entrypoint of the container - process. Uses runtime default if unset. May also be - set in SecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified in SecurityContext - takes precedence for that container. Note that this - field cannot be set when spec.os.name is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container must run as - a non-root user. If true, the Kubelet will validate - the image at runtime to ensure that it does not run - as UID 0 (root) and fail to start the container if - it does. If unset or false, no such validation will - be performed. May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes precedence. type: boolean runAsUser: - description: The UID to run the entrypoint of the container - process. Defaults to user specified in image metadata - if unspecified. May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes precedence - for that container. Note that this field cannot be - set when spec.os.name is windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be applied to all - containers. If unspecified, the container runtime - will allocate a random SELinux context for each container. May - also be set in SecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified in SecurityContext - takes precedence for that container. Note that this - field cannot be set when spec.os.name is windows. properties: level: - description: Level is SELinux level label that applies - to the container. type: string role: - description: Role is a SELinux role label that applies - to the container. type: string type: - description: Type is a SELinux type label that applies - to the container. type: string user: - description: User is a SELinux user label that applies - to the container. type: string type: object seccompProfile: - description: The seccomp options to use by the containers - in this pod. Note that this field cannot be set when - spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates a profile - defined in a file on the node should be used. - The profile must be preconfigured on the node - to work. Must be a descending path, relative to - the kubelet's configured seccomp profile location. - Must be set if type is "Localhost". Must NOT be - set for any other type. type: string type: - description: "type indicates which kind of seccomp - profile will be applied. Valid options are: \n - Localhost - a profile defined in a file on the - node should be used. RuntimeDefault - the container - runtime default profile should be used. Unconfined - - no profile should be applied." type: string required: - type type: object supplementalGroups: - description: A list of groups applied to the first process - run in each container, in addition to the container's - primary GID, the fsGroup (if specified), and group - memberships defined in the container image for the - uid of the container process. If unspecified, no additional - groups are added to any container. Note that group - memberships defined in the container image for the - uid of the container process are still effective, - even if they are not included in this list. Note that - this field cannot be set when spec.os.name is windows. items: format: int64 type: integer type: array x-kubernetes-list-type: atomic sysctls: - description: Sysctls hold a list of namespaced sysctls - used for the pod. Pods with unsupported sysctls (by - the container runtime) might fail to launch. Note - that this field cannot be set when spec.os.name is - windows. items: - description: Sysctl defines a kernel parameter to - be set properties: name: - description: Name of a property to set type: string value: - description: Value of a property to set type: string required: - name @@ -5161,152 +2374,53 @@ spec: type: array x-kubernetes-list-type: atomic windowsOptions: - description: The Windows specific settings applied to - all containers. If unspecified, the options within - a container's SecurityContext will be used. If set - in both SecurityContext and PodSecurityContext, the - value specified in SecurityContext takes precedence. - Note that this field cannot be set when spec.os.name - is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is where the GMSA - admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA credential spec - named by the GMSACredentialSpecName field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName is the name - of the GMSA credential spec to use. type: string hostProcess: - description: HostProcess determines if a container - should be run as a 'Host Process' container. All - of a Pod's containers must have the same effective - HostProcess value (it is not allowed to have a - mix of HostProcess containers and non-HostProcess - containers). In addition, if HostProcess is true - then HostNetwork must also be set to true. type: boolean runAsUserName: - description: The UserName in Windows to run the - entrypoint of the container process. Defaults - to the user specified in image metadata if unspecified. - May also be set in PodSecurityContext. If set - in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes precedence. type: string type: object type: object serviceAccountName: - description: 'ServiceAccountName is the name of the ServiceAccount - to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/' type: string shareProcessNamespace: - description: 'Share a single process namespace between all - of the containers in a pod. When this is set containers - will be able to view and signal processes from other containers - in the same pod, and the first process in each container - will not be assigned PID 1. HostPID and ShareProcessNamespace - cannot both be set. Optional: Default to false.' type: boolean terminationGracePeriodSeconds: - description: Optional duration in seconds the pod needs - to terminate gracefully. May be decreased in delete request. - Value must be non-negative integer. The value zero indicates - stop immediately via the kill signal (no opportunity to - shut down). If this value is nil, the default grace period - will be used instead. The grace period is the duration - in seconds after the processes running in the pod are - sent a termination signal and the time when the processes - are forcibly halted with a kill signal. Set this value - longer than the expected cleanup time for your process. - Defaults to 30 seconds. format: int64 type: integer tolerations: - description: If specified, the pod's tolerations. items: - description: The pod this Toleration is attached to tolerates - any taint that matches the triple - using the matching operator . properties: effect: - description: Effect indicates the taint effect to - match. Empty means match all taint effects. When - specified, allowed values are NoSchedule, PreferNoSchedule - and NoExecute. type: string key: - description: Key is the taint key that the toleration - applies to. Empty means match all taint keys. If - the key is empty, operator must be Exists; this - combination means to match all values and all keys. type: string operator: - description: Operator represents a key's relationship - to the value. Valid operators are Exists and Equal. - Defaults to Equal. Exists is equivalent to wildcard - for value, so that a pod can tolerate all taints - of a particular category. type: string tolerationSeconds: - description: TolerationSeconds represents the period - of time the toleration (which must be of effect - NoExecute, otherwise this field is ignored) tolerates - the taint. By default, it is not set, which means - tolerate the taint forever (do not evict). Zero - and negative values will be treated as 0 (evict - immediately) by the system. format: int64 type: integer value: - description: Value is the taint value the toleration - matches to. If the operator is Exists, the value - should be empty, otherwise just a regular string. type: string type: object type: array topologySpreadConstraints: - description: TopologySpreadConstraints describes how a group - of pods ought to spread across topology domains. Scheduler - will schedule pods in a way which abides by the constraints. - All topologySpreadConstraints are ANDed. items: - description: TopologySpreadConstraint specifies how to - spread matching pods among the given topology. properties: labelSelector: - description: LabelSelector is used to find matching - pods. Pods that match this label selector are counted - to determine the number of pods in their corresponding - topology domain. properties: matchExpressions: - description: matchExpressions is a list of label - selector requirements. The requirements are - ANDed. items: - description: A label selector requirement is - a selector that contains values, a key, and - an operator that relates the key and values. properties: key: - description: key is the label key that the - selector applies to. type: string operator: - description: operator represents a key's - relationship to a set of values. Valid - operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string - values. If the operator is In or NotIn, - the values array must be non-empty. If - the operator is Exists or DoesNotExist, - the values array must be empty. This array - is replaced during a strategic merge patch. items: type: string type: array @@ -5320,142 +2434,27 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator is "In", - and the values array contains only "value". - The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: "MatchLabelKeys is a set of pod label - keys to select the pods over which spreading will - be calculated. The keys are used to lookup values - from the incoming pod labels, those key-value labels - are ANDed with labelSelector to select the group - of existing pods over which spreading will be calculated - for the incoming pod. The same key is forbidden - to exist in both MatchLabelKeys and LabelSelector. - MatchLabelKeys cannot be set when LabelSelector - isn't set. Keys that don't exist in the incoming - pod labels will be ignored. A null or empty list - means only match against labelSelector. \n This - is a beta field and requires the MatchLabelKeysInPodTopologySpread - feature gate to be enabled (enabled by default)." items: type: string type: array x-kubernetes-list-type: atomic maxSkew: - description: 'MaxSkew describes the degree to which - pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, - it is the maximum permitted difference between the - number of matching pods in the target topology and - the global minimum. The global minimum is the minimum - number of matching pods in an eligible domain or - zero if the number of eligible domains is less than - MinDomains. For example, in a 3-zone cluster, MaxSkew - is set to 1, and pods with the same labelSelector - spread as 2/2/1: In this case, the global minimum - is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - - if MaxSkew is 1, incoming pod can only be scheduled - to zone3 to become 2/2/2; scheduling it onto zone1(zone2) - would make the ActualSkew(3-1) on zone1(zone2) violate - MaxSkew(1). - if MaxSkew is 2, incoming pod can - be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, - it is used to give higher precedence to topologies - that satisfy it. It''s a required field. Default - value is 1 and 0 is not allowed.' format: int32 type: integer minDomains: - description: "MinDomains indicates a minimum number - of eligible domains. When the number of eligible - domains with matching topology keys is less than - minDomains, Pod Topology Spread treats \"global - minimum\" as 0, and then the calculation of Skew - is performed. And when the number of eligible domains - with matching topology keys equals or greater than - minDomains, this value has no effect on scheduling. - As a result, when the number of eligible domains - is less than minDomains, scheduler won't schedule - more than maxSkew Pods to those domains. If value - is nil, the constraint behaves as if MinDomains - is equal to 1. Valid values are integers greater - than 0. When value is not nil, WhenUnsatisfiable - must be DoNotSchedule. \n For example, in a 3-zone - cluster, MaxSkew is set to 2, MinDomains is set - to 5 and pods with the same labelSelector spread - as 2/2/2: | zone1 | zone2 | zone3 | | P P | P - P | P P | The number of domains is less than - 5(MinDomains), so \"global minimum\" is treated - as 0. In this situation, new pod with the same labelSelector - cannot be scheduled, because computed skew will - be 3(3 - 0) if new Pod is scheduled to any of the - three zones, it will violate MaxSkew." format: int32 type: integer nodeAffinityPolicy: - description: "NodeAffinityPolicy indicates how we - will treat Pod's nodeAffinity/nodeSelector when - calculating pod topology spread skew. Options are: - - Honor: only nodes matching nodeAffinity/nodeSelector - are included in the calculations. - Ignore: nodeAffinity/nodeSelector - are ignored. All nodes are included in the calculations. - \n If this value is nil, the behavior is equivalent - to the Honor policy. This is a beta-level feature - default enabled by the NodeInclusionPolicyInPodTopologySpread - feature flag." type: string nodeTaintsPolicy: - description: "NodeTaintsPolicy indicates how we will - treat node taints when calculating pod topology - spread skew. Options are: - Honor: nodes without - taints, along with tainted nodes for which the incoming - pod has a toleration, are included. - Ignore: node - taints are ignored. All nodes are included. \n If - this value is nil, the behavior is equivalent to - the Ignore policy. This is a beta-level feature - default enabled by the NodeInclusionPolicyInPodTopologySpread - feature flag." type: string topologyKey: - description: TopologyKey is the key of node labels. - Nodes that have a label with this key and identical - values are considered to be in the same topology. - We consider each as a "bucket", and - try to put balanced number of pods into each bucket. - We define a domain as a particular instance of a - topology. Also, we define an eligible domain as - a domain whose nodes meet the requirements of nodeAffinityPolicy - and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname", - each Node is a domain of that topology. And, if - TopologyKey is "topology.kubernetes.io/zone", each - zone is a domain of that topology. It's a required - field. type: string whenUnsatisfiable: - description: 'WhenUnsatisfiable indicates how to deal - with a pod if it doesn''t satisfy the spread constraint. - - DoNotSchedule (default) tells the scheduler not - to schedule it. - ScheduleAnyway tells the scheduler - to schedule the pod in any location, but giving - higher precedence to topologies that would help - reduce the skew. A constraint is considered "Unsatisfiable" - for an incoming pod if and only if every possible - node assignment for that pod would violate "MaxSkew" - on some topology. For example, in a 3-zone cluster, - MaxSkew is set to 1, and pods with the same labelSelector - spread as 3/1/1: | zone1 | zone2 | zone3 | | P P - P | P | P | If WhenUnsatisfiable is set - to DoNotSchedule, incoming pod can only be scheduled - to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) - on zone2(zone3) satisfies MaxSkew(1). In other words, - the cluster can still be imbalanced, but scheduler - won''t make it *more* imbalanced. It''s a required - field.' type: string required: - maxSkew @@ -5468,62 +2467,21 @@ spec: - whenUnsatisfiable x-kubernetes-list-type: map volumeMounts: - description: Pod volumes to mount into the container's filesystem. - Cannot be updated. items: - description: VolumeMount describes a mounting of a Volume - within a container. properties: mountPath: - description: Path within the container at which the - volume should be mounted. Must not contain ':'. type: string mountPropagation: - description: mountPropagation determines how mounts - are propagated from the host to container and the - other way around. When not set, MountPropagationNone - is used. This field is beta in 1.10. When RecursiveReadOnly - is set to IfPossible or to Enabled, MountPropagation - must be None or unspecified (which defaults to None). type: string name: - description: This must match the Name of a Volume. type: string readOnly: - description: Mounted read-only if true, read-write - otherwise (false or unspecified). Defaults to false. type: boolean recursiveReadOnly: - description: "RecursiveReadOnly specifies whether - read-only mounts should be handled recursively. - \n If ReadOnly is false, this field has no meaning - and must be unspecified. \n If ReadOnly is true, - and this field is set to Disabled, the mount is - not made recursively read-only. If this field is - set to IfPossible, the mount is made recursively - read-only, if it is supported by the container runtime. - \ If this field is set to Enabled, the mount is - made recursively read-only if it is supported by - the container runtime, otherwise the pod will not - be started and an error will be generated to indicate - the reason. \n If this field is set to IfPossible - or Enabled, MountPropagation must be set to None - (or be unspecified, which defaults to None). \n - If this field is not specified, it is treated as - an equivalent of Disabled." type: string subPath: - description: Path within the volume from which the - container's volume should be mounted. Defaults to - "" (volume's root). type: string subPathExpr: - description: Expanded path within the volume from - which the container's volume should be mounted. - Behaves similarly to SubPath but environment variable - references $(VAR_NAME) are expanded using the container's - environment. Defaults to "" (volume's root). SubPathExpr - and SubPath are mutually exclusive. type: string required: - mountPath @@ -5531,263 +2489,109 @@ spec: type: object type: array volumes: - description: 'List of volumes that can be mounted by containers - belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes' items: - description: Volume represents a named volume in a pod - that may be accessed by any container in the pod. properties: awsElasticBlockStore: - description: 'awsElasticBlockStore represents an AWS - Disk resource that is attached to a kubelet''s host - machine and then exposed to the pod. More info: - https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' properties: fsType: - description: 'fsType is the filesystem type of - the volume that you want to mount. Tip: Ensure - that the filesystem type is supported by the - host operating system. Examples: "ext4", "xfs", - "ntfs". Implicitly inferred to be "ext4" if - unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string partition: - description: 'partition is the partition in the - volume that you want to mount. If omitted, the - default is to mount by volume name. Examples: - For volume /dev/sda1, you specify the partition - as "1". Similarly, the volume partition for - /dev/sda is "0" (or you can leave the property - empty).' format: int32 type: integer readOnly: - description: 'readOnly value true will force the - readOnly setting in VolumeMounts. More info: - https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: boolean volumeID: - description: 'volumeID is unique ID of the persistent - disk resource in AWS (Amazon EBS volume). More - info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: string required: - volumeID type: object azureDisk: - description: azureDisk represents an Azure Data Disk - mount on the host and bind mount to the pod. properties: cachingMode: - description: 'cachingMode is the Host Caching - mode: None, Read Only, Read Write.' type: string diskName: - description: diskName is the Name of the data - disk in the blob storage type: string diskURI: - description: diskURI is the URI of data disk in - the blob storage type: string fsType: - description: fsType is Filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if unspecified. type: string kind: - description: 'kind expected values are Shared: - multiple blob disks per storage account Dedicated: - single blob disk per storage account Managed: - azure managed data disk (only in managed availability - set). defaults to shared' type: string readOnly: - description: readOnly Defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean required: - diskName - diskURI type: object azureFile: - description: azureFile represents an Azure File Service - mount on the host and bind mount to the pod. properties: readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean secretName: - description: secretName is the name of secret - that contains Azure Storage Account Name and - Key type: string shareName: - description: shareName is the azure share Name type: string required: - secretName - shareName type: object cephfs: - description: cephFS represents a Ceph FS mount on - the host that shares a pod's lifetime properties: monitors: - description: 'monitors is Required: Monitors is - a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic path: - description: 'path is Optional: Used as the mounted - root, rather than the full Ceph tree, default - is /' type: string readOnly: - description: 'readOnly is Optional: Defaults to - false (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. More info: - https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: boolean secretFile: - description: 'secretFile is Optional: SecretFile - is the path to key ring for User, default is - /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string secretRef: - description: 'secretRef is Optional: SecretRef - is reference to the authentication secret for - User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other - useful fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is optional: User is the rados - user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string required: - monitors type: object cinder: - description: 'cinder represents a cinder volume attached - and mounted on kubelets host machine. More info: - https://examples.k8s.io/mysql-cinder-pd/README.md' properties: fsType: - description: 'fsType is the filesystem type to - mount. Must be a filesystem type supported by - the host operating system. Examples: "ext4", - "xfs", "ntfs". Implicitly inferred to be "ext4" - if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string readOnly: - description: 'readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: boolean secretRef: - description: 'secretRef is optional: points to - a secret object containing parameters used to - connect to OpenStack.' properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other - useful fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeID: - description: 'volumeID used to identify the volume - in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string required: - volumeID type: object configMap: - description: configMap represents a configMap that - should populate this volume properties: defaultMode: - description: 'defaultMode is optional: mode bits - used to set permissions on created files by - default. Must be an octal value between 0000 - and 0777 or a decimal value between 0 and 511. - YAML accepts both octal and decimal values, - JSON requires decimal values for mode bits. - Defaults to 0644. Directories within the path - are not affected by this setting. This might - be in conflict with other options that affect - the file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer items: - description: items if unspecified, each key-value - pair in the Data field of the referenced ConfigMap - will be projected into the volume as a file - whose name is the key and content is the value. - If specified, the listed keys will be projected - into the specified paths, and unlisted keys - will not be present. If a key is specified which - is not present in the ConfigMap, the volume - setup will error unless it is marked optional. - Paths must be relative and may not contain the - '..' path or start with '..'. items: - description: Maps a string key to a path within - a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: mode bits - used to set permissions on this file. - Must be an octal value between 0000 and - 0777 or a decimal value between 0 and - 511. YAML accepts both octal and decimal - values, JSON requires decimal values for - mode bits. If not specified, the volume - defaultMode will be used. This might be - in conflict with other options that affect - the file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative path of - the file to map the key to. May not be - an absolute path. May not contain the - path element '..'. May not start with - the string '..'. type: string required: - key @@ -5797,166 +2601,67 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are almost - certainly wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether the ConfigMap - or its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic csi: - description: csi (Container Storage Interface) represents - ephemeral storage that is handled by certain external - CSI drivers (Beta feature). properties: driver: - description: driver is the name of the CSI driver - that handles this volume. Consult with your - admin for the correct name as registered in - the cluster. type: string fsType: - description: fsType to mount. Ex. "ext4", "xfs", - "ntfs". If not provided, the empty value is - passed to the associated CSI driver which will - determine the default filesystem to apply. type: string nodePublishSecretRef: - description: nodePublishSecretRef is a reference - to the secret object containing sensitive information - to pass to the CSI driver to complete the CSI - NodePublishVolume and NodeUnpublishVolume calls. - This field is optional, and may be empty if - no secret is required. If the secret object - contains more than one secret, all secret references - are passed. properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other - useful fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic readOnly: - description: readOnly specifies a read-only configuration - for the volume. Defaults to false (read/write). type: boolean volumeAttributes: additionalProperties: type: string - description: volumeAttributes stores driver-specific - properties that are passed to the CSI driver. - Consult your driver's documentation for supported - values. type: object required: - driver type: object downwardAPI: - description: downwardAPI represents downward API about - the pod that should populate this volume properties: defaultMode: - description: 'Optional: mode bits to use on created - files by default. Must be a Optional: mode bits - used to set permissions on created files by - default. Must be an octal value between 0000 - and 0777 or a decimal value between 0 and 511. - YAML accepts both octal and decimal values, - JSON requires decimal values for mode bits. - Defaults to 0644. Directories within the path - are not affected by this setting. This might - be in conflict with other options that affect - the file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer items: - description: Items is a list of downward API volume - file items: - description: DownwardAPIVolumeFile represents - information to create the file containing - the pod field properties: fieldRef: - description: 'Required: Selects a field - of the pod: only annotations, labels, - name, namespace and uid are supported.' properties: apiVersion: - description: Version of the schema the - FieldPath is written in terms of, - defaults to "v1". type: string fieldPath: - description: Path of the field to select - in the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode bits used to - set permissions on this file, must be - an octal value between 0000 and 0777 or - a decimal value between 0 and 511. YAML - accepts both octal and decimal values, - JSON requires decimal values for mode - bits. If not specified, the volume defaultMode - will be used. This might be in conflict - with other options that affect the file - mode, like fsGroup, and the result can - be other mode bits set.' format: int32 type: integer path: - description: 'Required: Path is the relative - path name of the file to be created. Must - not be absolute or contain the ''..'' - path. Must be utf-8 encoded. The first - item of the relative path must not start - with ''..''' type: string resourceFieldRef: - description: 'Selects a resource of the - container: only resources limits and requests - (limits.cpu, limits.memory, requests.cpu - and requests.memory) are currently supported.' properties: containerName: - description: 'Container name: required - for volumes, optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output format - of the exposed resources, defaults - to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource to - select' type: string required: - resource @@ -5969,204 +2674,50 @@ spec: x-kubernetes-list-type: atomic type: object emptyDir: - description: 'emptyDir represents a temporary directory - that shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' properties: medium: - description: 'medium represents what type of storage - medium should back this directory. The default - is "" which means to use the node''s default - medium. Must be an empty string (default) or - Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' type: string sizeLimit: anyOf: - type: integer - type: string - description: 'sizeLimit is the total amount of - local storage required for this EmptyDir volume. - The size limit is also applicable for memory - medium. The maximum usage on memory medium EmptyDir - would be the minimum value between the SizeLimit - specified here and the sum of memory limits - of all containers in a pod. The default is nil - which means that the limit is undefined. More - info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object ephemeral: - description: "ephemeral represents a volume that is - handled by a cluster storage driver. The volume's - lifecycle is tied to the pod that defines it - it - will be created before the pod starts, and deleted - when the pod is removed. \n Use this if: a) the - volume is only needed while the pod runs, b) features - of normal volumes like restoring from snapshot or - capacity tracking are needed, c) the storage driver - is specified through a storage class, and d) the - storage driver supports dynamic volume provisioning - through a PersistentVolumeClaim (see EphemeralVolumeSource - for more information on the connection between this - volume type and PersistentVolumeClaim). \n Use PersistentVolumeClaim - or one of the vendor-specific APIs for volumes that - persist for longer than the lifecycle of an individual - pod. \n Use CSI for light-weight local ephemeral - volumes if the CSI driver is meant to be used that - way - see the documentation of the driver for more - information. \n A pod can use both types of ephemeral - volumes and persistent volumes at the same time." properties: volumeClaimTemplate: - description: "Will be used to create a stand-alone - PVC to provision the volume. The pod in which - this EphemeralVolumeSource is embedded will - be the owner of the PVC, i.e. the PVC will be - deleted together with the pod. The name of - the PVC will be `-` where - `` is the name from the `PodSpec.Volumes` - array entry. Pod validation will reject the - pod if the concatenated name is not valid for - a PVC (for example, too long). \n An existing - PVC with that name that is not owned by the - pod will *not* be used for the pod to avoid - using an unrelated volume by mistake. Starting - the pod is then blocked until the unrelated - PVC is removed. If such a pre-created PVC is - meant to be used by the pod, the PVC has to - updated with an owner reference to the pod once - the pod exists. Normally this should not be - necessary, but it may be useful when manually - reconstructing a broken cluster. \n This field - is read-only and no changes will be made by - Kubernetes to the PVC after it has been created. - \n Required, must not be nil." properties: metadata: - description: May contain labels and annotations - that will be copied into the PVC when creating - it. No other fields are allowed and will - be rejected during validation. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured - key value map stored with a resource - that may be set by external tools to - store and retrieve arbitrary metadata. - They are not queryable and should be - preserved when modifying objects. More - info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName is an optional - prefix, used by the server, to generate - a unique name ONLY IF the Name field - has not been provided. If this field - is used, the name returned to the client - will be different than the name passed. - This value will also be combined with - a unique suffix. The provided value - has the same validation rules as the - Name field, and may be truncated by - the length of the suffix required to - make the value unique on the server. - \n If this field is specified and the - generated name exists, the server will - NOT return a 409 - instead, it will - either return 201 Created or 500 with - Reason ServerTimeout indicating a unique - name could not be found in the time - allotted, and the client should retry - (optionally after the time indicated - in the Retry-After header). \n Applied - only if Name is not specified. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string keys and values - that can be used to organize and categorize - (scope and select) objects. May match - selectors of replication controllers - and services. More info: http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must be unique within - a namespace. Is required when creating - resources, although some resources may - allow a client to request the generation - of an appropriate name automatically. - Name is primarily intended for creation - idempotence and configuration definition. - Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace defines the space - within each name must be unique. An - empty namespace is equivalent to the - \"default\" namespace, but \"default\" - is the canonical representation. Not - all objects are required to be scoped - to a namespace - the value of this field - for those objects will be empty. \n - Must be a DNS_LABEL. Cannot be updated. - More info: http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects depended - by this object. If ALL objects in the - list have been deleted, this object - will be garbage collected. If this object - is managed by a controller, then an - entry in this list will point to this - controller, with the controller field - set to true. There cannot be more than - one managing controller. items: - description: OwnerReference contains - enough information to let you identify - an owning object. An owning object - must be in the same namespace as the - dependent, or be cluster-scoped, so - there is no namespace field. properties: apiVersion: - description: API version of the - referent. type: string blockOwnerDeletion: - description: If true, AND if the - owner has the "foregroundDeletion" - finalizer, then the owner cannot - be deleted from the key-value - store until this reference is - removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage collector - interacts with this field and - enforces the foreground deletion. - Defaults to false. To set this - field, a user needs "delete" permission - of the owner, otherwise 422 (Unprocessable - Entity) will be returned. type: boolean controller: - description: If true, this reference - points to the managing controller. type: boolean kind: - description: 'Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -6178,53 +2729,19 @@ spec: type: array type: object spec: - description: The specification for the PersistentVolumeClaim. - The entire content is copied unchanged into - the PVC that gets created from this template. - The same fields as in a PersistentVolumeClaim - are also valid here. properties: accessModes: - description: 'accessModes contains the - desired access modes the volume should - have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource field can be - used to specify either: * An existing - VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an external controller - can support the specified data source, - it will create a new volume based on - the contents of the specified data source. - When the AnyVolumeDataSource feature - gate is enabled, dataSource contents - will be copied to dataSourceRef, and - dataSourceRef contents will be copied - to dataSource when dataSourceRef.namespace - is not specified. If the namespace is - specified, then dataSourceRef will not - be copied to dataSource.' properties: apiGroup: - description: APIGroup is the group - for the resource being referenced. - If APIGroup is not specified, the - specified Kind must be in the core - API group. For any other third-party - types, APIGroup is required. type: string kind: - description: Kind is the type of resource - being referenced type: string name: - description: Name is the name of resource - being referenced type: string required: - kind @@ -6232,88 +2749,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef specifies - the object from which to populate the - volume with data, if a non-empty volume - is desired. This may be any object from - a non-empty API group (non core object) - or a PersistentVolumeClaim object. When - this field is specified, volume binding - will only succeed if the type of the - specified object matches some installed - volume populator or dynamic provisioner. - This field will replace the functionality - of the dataSource field and as such - if both fields are non-empty, they must - have the same value. For backwards compatibility, - when namespace isn''t specified in dataSourceRef, - both fields (dataSource and dataSourceRef) - will be set to the same value automatically - if one of them is empty and the other - is non-empty. When namespace is specified - in dataSourceRef, dataSource isn''t - set to the same value and must be empty. - There are three important differences - between dataSource and dataSourceRef: - * While dataSource only allows two specific - types of objects, dataSourceRef allows - any non-core object, as well as PersistentVolumeClaim - objects. * While dataSource ignores - disallowed values (dropping them), dataSourceRef - preserves all values, and generates - an error if a disallowed value is specified. - * While dataSource only allows local - objects, dataSourceRef allows objects - in any namespaces. (Beta) Using this - field requires the AnyVolumeDataSource - feature gate to be enabled. (Alpha) - Using the namespace field of dataSourceRef - requires the CrossNamespaceVolumeDataSource - feature gate to be enabled.' properties: apiGroup: - description: APIGroup is the group - for the resource being referenced. - If APIGroup is not specified, the - specified Kind must be in the core - API group. For any other third-party - types, APIGroup is required. type: string kind: - description: Kind is the type of resource - being referenced type: string name: - description: Name is the name of resource - being referenced type: string namespace: - description: Namespace is the namespace - of resource being referenced Note - that when a namespace is specified, - a gateway.networking.k8s.io/ReferenceGrant - object is required in the referent - namespace to allow that namespace's - owner to accept the reference. See - the ReferenceGrant documentation - for details. (Alpha) This field - requires the CrossNamespaceVolumeDataSource - feature gate to be enabled. type: string required: - kind - name type: object resources: - description: 'resources represents the - minimum resources the volume should - have. If RecoverVolumeExpansionFailure - feature is enabled users are allowed - to specify resource requirements that - are lower than previous value but must - still be higher than capacity recorded - in the status field of the claim. More - info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -6322,9 +2771,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the - maximum amount of compute resources - allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -6333,52 +2779,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the - minimum amount of compute resources - required. If Requests is omitted - for a container, it defaults to - Limits if that is explicitly specified, - otherwise to an implementation-defined - value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is a label query - over volumes to consider for binding. properties: matchExpressions: - description: matchExpressions is a - list of label selector requirements. - The requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to a - set of values. Valid operators - are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an array - of string values. If the operator - is In or NotIn, the values - array must be non-empty. If - the operator is Exists or - DoesNotExist, the values array - must be empty. This array - is replaced during a strategic - merge patch. items: type: string type: array @@ -6392,60 +2804,16 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map - of {key,value} pairs. A single {key,value} - in the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName is the - name of the StorageClass required by - the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName - may be used to set the VolumeAttributesClass - used by this claim. If specified, the - CSI driver will create or update the - volume with the attributes defined in - the corresponding VolumeAttributesClass. - This has a different purpose than storageClassName, - it can be changed after the claim is - created. An empty string value means - that no VolumeAttributesClass will be - applied to the claim but it''s not allowed - to reset this field to empty string - once it is set. If unspecified and the - PersistentVolumeClaim is unbound, the - default VolumeAttributesClass will be - set by the persistentvolume controller - if it exists. If the resource referred - to by volumeAttributesClass does not - exist, this PersistentVolumeClaim will - be set to a Pending state, as reflected - by the modifyVolumeStatus field, until - such as a resource exists. More info: - https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires the - VolumeAttributesClass feature gate to - be enabled.' type: string volumeMode: - description: volumeMode defines what type - of volume is required by the claim. - Value of Filesystem is implied when - not included in claim spec. type: string volumeName: - description: volumeName is the binding - reference to the PersistentVolume backing - this claim. type: string type: object required: @@ -6453,91 +2821,41 @@ spec: type: object type: object fc: - description: fc represents a Fibre Channel resource - that is attached to a kubelet's host machine and - then exposed to the pod. properties: fsType: - description: 'fsType is the filesystem type to - mount. Must be a filesystem type supported by - the host operating system. Ex. "ext4", "xfs", - "ntfs". Implicitly inferred to be "ext4" if - unspecified. TODO: how do we prevent errors - in the filesystem from compromising the machine' type: string lun: - description: 'lun is Optional: FC target lun number' format: int32 type: integer readOnly: - description: 'readOnly is Optional: Defaults to - false (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts.' type: boolean targetWWNs: - description: 'targetWWNs is Optional: FC target - worldwide names (WWNs)' items: type: string type: array x-kubernetes-list-type: atomic wwids: - description: 'wwids Optional: FC volume world - wide identifiers (wwids) Either wwids or combination - of targetWWNs and lun must be set, but not both - simultaneously.' items: type: string type: array x-kubernetes-list-type: atomic type: object flexVolume: - description: flexVolume represents a generic volume - resource that is provisioned/attached using an exec - based plugin. properties: driver: - description: driver is the name of the driver - to use for this volume. type: string fsType: - description: fsType is the filesystem type to - mount. Must be a filesystem type supported by - the host operating system. Ex. "ext4", "xfs", - "ntfs". The default filesystem depends on FlexVolume - script. type: string options: additionalProperties: type: string - description: 'options is Optional: this field - holds extra command options if any.' type: object readOnly: - description: 'readOnly is Optional: defaults to - false (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts.' type: boolean secretRef: - description: 'secretRef is Optional: secretRef - is reference to the secret object containing - sensitive information to pass to the plugin - scripts. This may be empty if no secret object - is specified. If the secret object contains - more than one secret, all secrets are passed - to the plugin scripts.' properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other - useful fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic @@ -6545,182 +2863,79 @@ spec: - driver type: object flocker: - description: flocker represents a Flocker volume attached - to a kubelet's host machine. This depends on the - Flocker control service being running properties: datasetName: - description: datasetName is Name of the dataset - stored as metadata -> name on the dataset for - Flocker should be considered as deprecated type: string datasetUUID: - description: datasetUUID is the UUID of the dataset. - This is unique identifier of a Flocker dataset type: string type: object gcePersistentDisk: - description: 'gcePersistentDisk represents a GCE Disk - resource that is attached to a kubelet''s host machine - and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' properties: fsType: - description: 'fsType is filesystem type of the - volume that you want to mount. Tip: Ensure that - the filesystem type is supported by the host - operating system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if unspecified. - More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string partition: - description: 'partition is the partition in the - volume that you want to mount. If omitted, the - default is to mount by volume name. Examples: - For volume /dev/sda1, you specify the partition - as "1". Similarly, the volume partition for - /dev/sda is "0" (or you can leave the property - empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' format: int32 type: integer pdName: - description: 'pdName is unique name of the PD - resource in GCE. Used to identify the disk in - GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: string readOnly: - description: 'readOnly here will force the ReadOnly - setting in VolumeMounts. Defaults to false. - More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: boolean required: - pdName type: object glusterfs: - description: 'glusterfs represents a Glusterfs mount - on the host that shares a pod''s lifetime. More - info: https://examples.k8s.io/volumes/glusterfs/README.md' properties: endpoints: - description: 'endpoints is the endpoint name that - details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string path: - description: 'path is the Glusterfs volume path. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string readOnly: - description: 'readOnly here will force the Glusterfs - volume to be mounted with read-only permissions. - Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: boolean required: - endpoints - path type: object hostPath: - description: 'hostPath represents a pre-existing file - or directory on the host machine that is directly - exposed to the container. This is generally used - for system agents or other privileged things that - are allowed to see the host machine. Most containers - will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- TODO(jonesdl) We need to restrict who can use - host directory mounts and who can/can not mount - host directories as read/write.' properties: path: - description: 'path of the directory on the host. - If the path is a symlink, it will follow the - link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string type: - description: 'type for HostPath Volume Defaults - to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string required: - path type: object iscsi: - description: 'iscsi represents an ISCSI Disk resource - that is attached to a kubelet''s host machine and - then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md' properties: chapAuthDiscovery: - description: chapAuthDiscovery defines whether - support iSCSI Discovery CHAP authentication type: boolean chapAuthSession: - description: chapAuthSession defines whether support - iSCSI Session CHAP authentication type: boolean fsType: - description: 'fsType is the filesystem type of - the volume that you want to mount. Tip: Ensure - that the filesystem type is supported by the - host operating system. Examples: "ext4", "xfs", - "ntfs". Implicitly inferred to be "ext4" if - unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string initiatorName: - description: initiatorName is the custom iSCSI - Initiator Name. If initiatorName is specified - with iscsiInterface simultaneously, new iSCSI - interface : will - be created for the connection. type: string iqn: - description: iqn is the target iSCSI Qualified - Name. type: string iscsiInterface: - description: iscsiInterface is the interface Name - that uses an iSCSI transport. Defaults to 'default' - (tcp). type: string lun: - description: lun represents iSCSI Target Lun number. format: int32 type: integer portals: - description: portals is the iSCSI Target Portal - List. The portal is either an IP or ip_addr:port - if the port is other than default (typically - TCP ports 860 and 3260). items: type: string type: array x-kubernetes-list-type: atomic readOnly: - description: readOnly here will force the ReadOnly - setting in VolumeMounts. Defaults to false. type: boolean secretRef: - description: secretRef is the CHAP Secret for - iSCSI target and initiator authentication properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other - useful fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic targetPortal: - description: targetPortal is iSCSI Target Portal. - The Portal is either an IP or ip_addr:port if - the port is other than default (typically TCP - ports 860 and 3260). type: string required: - iqn @@ -6728,171 +2943,68 @@ spec: - targetPortal type: object name: - description: 'name of the volume. Must be a DNS_LABEL - and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string nfs: - description: 'nfs represents an NFS mount on the host - that shares a pod''s lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' properties: path: - description: 'path that is exported by the NFS - server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string readOnly: - description: 'readOnly here will force the NFS - export to be mounted with read-only permissions. - Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: boolean server: - description: 'server is the hostname or IP address - of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string required: - path - server type: object persistentVolumeClaim: - description: 'persistentVolumeClaimVolumeSource represents - a reference to a PersistentVolumeClaim in the same - namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: claimName: - description: 'claimName is the name of a PersistentVolumeClaim - in the same namespace as the pod using this - volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' type: string readOnly: - description: readOnly Will force the ReadOnly - setting in VolumeMounts. Default false. type: boolean required: - claimName type: object photonPersistentDisk: - description: photonPersistentDisk represents a PhotonController - persistent disk attached and mounted on kubelets - host machine properties: fsType: - description: fsType is the filesystem type to - mount. Must be a filesystem type supported by - the host operating system. Ex. "ext4", "xfs", - "ntfs". Implicitly inferred to be "ext4" if - unspecified. type: string pdID: - description: pdID is the ID that identifies Photon - Controller persistent disk type: string required: - pdID type: object portworxVolume: - description: portworxVolume represents a portworx - volume attached and mounted on kubelets host machine properties: fsType: - description: fSType represents the filesystem - type to mount Must be a filesystem type supported - by the host operating system. Ex. "ext4", "xfs". - Implicitly inferred to be "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean volumeID: - description: volumeID uniquely identifies a Portworx - volume type: string required: - volumeID type: object projected: - description: projected items for all in one resources - secrets, configmaps, and downward API properties: defaultMode: - description: defaultMode are the mode bits used - to set permissions on created files by default. - Must be an octal value between 0000 and 0777 - or a decimal value between 0 and 511. YAML accepts - both octal and decimal values, JSON requires - decimal values for mode bits. Directories within - the path are not affected by this setting. This - might be in conflict with other options that - affect the file mode, like fsGroup, and the - result can be other mode bits set. format: int32 type: integer sources: - description: sources is the list of volume projections items: - description: Projection that may be projected - along with other supported volume types properties: clusterTrustBundle: - description: "ClusterTrustBundle allows - a pod to access the `.spec.trustBundle` - field of ClusterTrustBundle objects in - an auto-updating file. \n Alpha, gated - by the ClusterTrustBundleProjection feature - gate. \n ClusterTrustBundle objects can - either be selected by name, or by the - combination of signer name and a label - selector. \n Kubelet performs aggressive - normalization of the PEM contents written - into the pod filesystem. Esoteric PEM - features such as inter-block comments - and block headers are stripped. Certificates - are deduplicated. The ordering of certificates - within the file is arbitrary, and Kubelet - may change the order over time." properties: labelSelector: - description: Select all ClusterTrustBundles - that match this label selector. Only - has effect if signerName is set. Mutually-exclusive - with name. If unset, interpreted - as "match nothing". If set but empty, - interpreted as "match everything". properties: matchExpressions: - description: matchExpressions is - a list of label selector requirements. - The requirements are ANDed. items: - description: A label selector - requirement is a selector that - contains values, a key, and - an operator that relates the - key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to - a set of values. Valid operators - are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an - array of string values. - If the operator is In or - NotIn, the values array - must be non-empty. If the - operator is Exists or DoesNotExist, - the values array must be - empty. This array is replaced - during a strategic merge - patch. items: type: string type: array @@ -6906,99 +3018,31 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map - of {key,value} pairs. A single - {key,value} in the matchLabels - map is equivalent to an element - of matchExpressions, whose key - field is "key", the operator is - "In", and the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic name: - description: Select a single ClusterTrustBundle - by object name. Mutually-exclusive - with signerName and labelSelector. type: string optional: - description: If true, don't block pod - startup if the referenced ClusterTrustBundle(s) - aren't available. If using name, - then the named ClusterTrustBundle - is allowed not to exist. If using - signerName, then the combination of - signerName and labelSelector is allowed - to match zero ClusterTrustBundles. type: boolean path: - description: Relative path from the - volume root to write the bundle. type: string signerName: - description: Select all ClusterTrustBundles - that match this signer name. Mutually-exclusive - with name. The contents of all selected - ClusterTrustBundles will be unified - and deduplicated. type: string required: - path type: object configMap: - description: configMap information about - the configMap data to project properties: items: - description: items if unspecified, each - key-value pair in the Data field of - the referenced ConfigMap will be projected - into the volume as a file whose name - is the key and content is the value. - If specified, the listed keys will - be projected into the specified paths, - and unlisted keys will not be present. - If a key is specified which is not - present in the ConfigMap, the volume - setup will error unless it is marked - optional. Paths must be relative and - may not contain the '..' path or start - with '..'. items: - description: Maps a string key to - a path within a volume. properties: key: - description: key is the key to - project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an octal - value between 0000 and 0777 - or a decimal value between 0 - and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. - If not specified, the volume - defaultMode will be used. This - might be in conflict with other - options that affect the file - mode, like fsGroup, and the - result can be other mode bits - set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the - key to. May not be an absolute - path. May not contain the path - element '..'. May not start - with the string '..'. type: string required: - key @@ -7008,108 +3052,42 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value here - are almost certainly wrong. TODO: - Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether - the ConfigMap or its keys must be - defined type: boolean type: object x-kubernetes-map-type: atomic downwardAPI: - description: downwardAPI information about - the downwardAPI data to project properties: items: - description: Items is a list of DownwardAPIVolume - file items: - description: DownwardAPIVolumeFile - represents information to create - the file containing the pod field properties: fieldRef: - description: 'Required: Selects - a field of the pod: only annotations, - labels, name, namespace and - uid are supported.' properties: apiVersion: - description: Version of the - schema the FieldPath is - written in terms of, defaults - to "v1". type: string fieldPath: - description: Path of the field - to select in the specified - API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode bits - used to set permissions on this - file, must be an octal value - between 0000 and 0777 or a decimal - value between 0 and 511. YAML - accepts both octal and decimal - values, JSON requires decimal - values for mode bits. If not - specified, the volume defaultMode - will be used. This might be - in conflict with other options - that affect the file mode, like - fsGroup, and the result can - be other mode bits set.' format: int32 type: integer path: - description: 'Required: Path is the - relative path name of the file - to be created. Must not be absolute - or contain the ''..'' path. - Must be utf-8 encoded. The first - item of the relative path must - not start with ''..''' type: string resourceFieldRef: - description: 'Selects a resource - of the container: only resources - limits and requests (limits.cpu, - limits.memory, requests.cpu - and requests.memory) are currently - supported.' properties: containerName: - description: 'Container name: - required for volumes, optional - for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the - output format of the exposed - resources, defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource - to select' type: string required: - resource @@ -7122,57 +3100,16 @@ spec: x-kubernetes-list-type: atomic type: object secret: - description: secret information about the - secret data to project properties: items: - description: items if unspecified, each - key-value pair in the Data field of - the referenced Secret will be projected - into the volume as a file whose name - is the key and content is the value. - If specified, the listed keys will - be projected into the specified paths, - and unlisted keys will not be present. - If a key is specified which is not - present in the Secret, the volume - setup will error unless it is marked - optional. Paths must be relative and - may not contain the '..' path or start - with '..'. items: - description: Maps a string key to - a path within a volume. properties: key: - description: key is the key to - project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an octal - value between 0000 and 0777 - or a decimal value between 0 - and 511. YAML accepts both octal - and decimal values, JSON requires - decimal values for mode bits. - If not specified, the volume - defaultMode will be used. This - might be in conflict with other - options that affect the file - mode, like fsGroup, and the - result can be other mode bits - set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the - key to. May not be an absolute - path. May not contain the path - element '..'. May not start - with the string '..'. type: string required: - key @@ -7182,56 +3119,19 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value here - are almost certainly wrong. TODO: - Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional field specify - whether the Secret or its key must - be defined type: boolean type: object x-kubernetes-map-type: atomic serviceAccountToken: - description: serviceAccountToken is information - about the serviceAccountToken data to - project properties: audience: - description: audience is the intended - audience of the token. A recipient - of a token must identify itself with - an identifier specified in the audience - of the token, and otherwise should - reject the token. The audience defaults - to the identifier of the apiserver. type: string expirationSeconds: - description: expirationSeconds is the - requested duration of validity of - the service account token. As the - token approaches expiration, the kubelet - volume plugin will proactively rotate - the service account token. The kubelet - will start trying to rotate the token - if the token is older than 80 percent - of its time to live or if the token - is older than 24 hours.Defaults to - 1 hour and must be at least 10 minutes. format: int64 type: integer path: - description: path is the path relative - to the mount point of the file to - project the token into. type: string required: - path @@ -7241,174 +3141,79 @@ spec: x-kubernetes-list-type: atomic type: object quobyte: - description: quobyte represents a Quobyte mount on - the host that shares a pod's lifetime properties: group: - description: group to map volume access to Default - is no group type: string readOnly: - description: readOnly here will force the Quobyte - volume to be mounted with read-only permissions. - Defaults to false. type: boolean registry: - description: registry represents a single or multiple - Quobyte Registry services specified as a string - as host:port pair (multiple entries are separated - with commas) which acts as the central registry - for volumes type: string tenant: - description: tenant owning the given Quobyte volume - in the Backend Used with dynamically provisioned - Quobyte volumes, value is set by the plugin type: string user: - description: user to map volume access to Defaults - to serivceaccount user type: string volume: - description: volume is a string that references - an already created Quobyte volume by name. type: string required: - registry - volume type: object rbd: - description: 'rbd represents a Rados Block Device - mount on the host that shares a pod''s lifetime. - More info: https://examples.k8s.io/volumes/rbd/README.md' properties: fsType: - description: 'fsType is the filesystem type of - the volume that you want to mount. Tip: Ensure - that the filesystem type is supported by the - host operating system. Examples: "ext4", "xfs", - "ntfs". Implicitly inferred to be "ext4" if - unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string image: - description: 'image is the rados image name. More - info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string keyring: - description: 'keyring is the path to key ring - for RBDUser. Default is /etc/ceph/keyring. More - info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string monitors: - description: 'monitors is a collection of Ceph - monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic pool: - description: 'pool is the rados pool name. Default - is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string readOnly: - description: 'readOnly here will force the ReadOnly - setting in VolumeMounts. Defaults to false. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: boolean secretRef: - description: 'secretRef is name of the authentication - secret for RBDUser. If provided overrides keyring. - Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other - useful fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is the rados user name. Default - is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string required: - image - monitors type: object scaleIO: - description: scaleIO represents a ScaleIO persistent - volume attached and mounted on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem type to - mount. Must be a filesystem type supported by - the host operating system. Ex. "ext4", "xfs", - "ntfs". Default is "xfs". type: string gateway: - description: gateway is the host address of the - ScaleIO API Gateway. type: string protectionDomain: - description: protectionDomain is the name of the - ScaleIO Protection Domain for the configured - storage. type: string readOnly: - description: readOnly Defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean secretRef: - description: secretRef references to the secret - for ScaleIO user and other sensitive information. - If this is not provided, Login operation will - fail. properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other - useful fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic sslEnabled: - description: sslEnabled Flag enable/disable SSL - communication with Gateway, default false type: boolean storageMode: - description: storageMode indicates whether the - storage for a volume should be ThickProvisioned - or ThinProvisioned. Default is ThinProvisioned. type: string storagePool: - description: storagePool is the ScaleIO Storage - Pool associated with the protection domain. type: string system: - description: system is the name of the storage - system as configured in ScaleIO. type: string volumeName: - description: volumeName is the name of a volume - already created in the ScaleIO system that is - associated with this volume source. type: string required: - gateway @@ -7416,62 +3221,19 @@ spec: - system type: object secret: - description: 'secret represents a secret that should - populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' properties: defaultMode: - description: 'defaultMode is Optional: mode bits - used to set permissions on created files by - default. Must be an octal value between 0000 - and 0777 or a decimal value between 0 and 511. - YAML accepts both octal and decimal values, - JSON requires decimal values for mode bits. - Defaults to 0644. Directories within the path - are not affected by this setting. This might - be in conflict with other options that affect - the file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer items: - description: items If unspecified, each key-value - pair in the Data field of the referenced Secret - will be projected into the volume as a file - whose name is the key and content is the value. - If specified, the listed keys will be projected - into the specified paths, and unlisted keys - will not be present. If a key is specified which - is not present in the Secret, the volume setup - will error unless it is marked optional. Paths - must be relative and may not contain the '..' - path or start with '..'. items: - description: Maps a string key to a path within - a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: mode bits - used to set permissions on this file. - Must be an octal value between 0000 and - 0777 or a decimal value between 0 and - 511. YAML accepts both octal and decimal - values, JSON requires decimal values for - mode bits. If not specified, the volume - defaultMode will be used. This might be - in conflict with other options that affect - the file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative path of - the file to map the key to. May not be - an absolute path. May not contain the - path element '..'. May not start with - the string '..'. type: string required: - key @@ -7480,89 +3242,37 @@ spec: type: array x-kubernetes-list-type: atomic optional: - description: optional field specify whether the - Secret or its keys must be defined type: boolean secretName: - description: 'secretName is the name of the secret - in the pod''s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' type: string type: object storageos: - description: storageOS represents a StorageOS volume - attached and mounted on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem type to - mount. Must be a filesystem type supported by - the host operating system. Ex. "ext4", "xfs", - "ntfs". Implicitly inferred to be "ext4" if - unspecified. type: string readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean secretRef: - description: secretRef specifies the secret to - use for obtaining the StorageOS API credentials. If - not specified, default values will be attempted. properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other - useful fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeName: - description: volumeName is the human-readable - name of the StorageOS volume. Volume names - are only unique within a namespace. type: string volumeNamespace: - description: volumeNamespace specifies the scope - of the volume within StorageOS. If no namespace - is specified then the Pod's namespace will be - used. This allows the Kubernetes name scoping - to be mirrored within StorageOS for tighter - integration. Set VolumeName to any name to override - the default behaviour. Set to "default" if you - are not using namespaces within StorageOS. Namespaces - that do not pre-exist within StorageOS will - be created. type: string type: object vsphereVolume: - description: vsphereVolume represents a vSphere volume - attached and mounted on kubelets host machine properties: fsType: - description: fsType is filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if unspecified. type: string storagePolicyID: - description: storagePolicyID is the storage Policy - Based Management (SPBM) profile ID associated - with the StoragePolicyName. type: string storagePolicyName: - description: storagePolicyName is the storage - Policy Based Management (SPBM) profile name. type: string volumePath: - description: volumePath is the path that identifies - vSphere volume vmdk type: string required: - volumePath @@ -7574,287 +3284,118 @@ spec: type: object type: object name: - description: Name specifies the name of the addon that will be used - for the backup/restore purpose type: string tasks: - description: Tasks specifies a list of backup/restore tasks and - their configuration parameters items: - description: TaskReference specifies a task and its configuration - parameters properties: addonVolumes: - description: AddonVolumes lets you overwrite the volume sources - used in the VolumeTemplate section of Addon. Make sure that - name of your volume matches with the name of the volume - you want to overwrite. items: - description: AddonVolumeInfo specifies the name and the - source of volume properties: name: - description: Name specifies the name of the volume type: string source: - description: Source specifies the source of this volume. properties: awsElasticBlockStore: - description: 'awsElasticBlockStore represents an - AWS Disk resource that is attached to a kubelet''s - host machine and then exposed to the pod. More - info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' properties: fsType: - description: 'fsType is the filesystem type - of the volume that you want to mount. Tip: - Ensure that the filesystem type is supported - by the host operating system. Examples: "ext4", - "xfs", "ntfs". Implicitly inferred to be "ext4" - if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string partition: - description: 'partition is the partition in - the volume that you want to mount. If omitted, - the default is to mount by volume name. Examples: - For volume /dev/sda1, you specify the partition - as "1". Similarly, the volume partition for - /dev/sda is "0" (or you can leave the property - empty).' format: int32 type: integer readOnly: - description: 'readOnly value true will force - the readOnly setting in VolumeMounts. More - info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: boolean volumeID: - description: 'volumeID is unique ID of the persistent - disk resource in AWS (Amazon EBS volume). - More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: string required: - volumeID type: object azureDisk: - description: azureDisk represents an Azure Data - Disk mount on the host and bind mount to the pod. properties: cachingMode: - description: 'cachingMode is the Host Caching - mode: None, Read Only, Read Write.' type: string diskName: - description: diskName is the Name of the data - disk in the blob storage type: string diskURI: - description: diskURI is the URI of data disk - in the blob storage type: string fsType: - description: fsType is Filesystem type to mount. - Must be a filesystem type supported by the - host operating system. Ex. "ext4", "xfs", - "ntfs". Implicitly inferred to be "ext4" if - unspecified. type: string kind: - description: 'kind expected values are Shared: - multiple blob disks per storage account Dedicated: - single blob disk per storage account Managed: - azure managed data disk (only in managed availability - set). defaults to shared' type: string readOnly: - description: readOnly Defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean required: - diskName - diskURI type: object azureFile: - description: azureFile represents an Azure File - Service mount on the host and bind mount to the - pod. properties: readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean secretName: - description: secretName is the name of secret - that contains Azure Storage Account Name and - Key type: string shareName: - description: shareName is the azure share Name type: string required: - secretName - shareName type: object cephfs: - description: cephFS represents a Ceph FS mount on - the host that shares a pod's lifetime properties: monitors: - description: 'monitors is Required: Monitors - is a collection of Ceph monitors More info: - https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic path: - description: 'path is Optional: Used as the - mounted root, rather than the full Ceph tree, - default is /' type: string readOnly: - description: 'readOnly is Optional: Defaults - to false (read/write). ReadOnly here will - force the ReadOnly setting in VolumeMounts. - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: boolean secretFile: - description: 'secretFile is Optional: SecretFile - is the path to key ring for User, default - is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string secretRef: - description: 'secretRef is Optional: SecretRef - is reference to the authentication secret - for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type with - an empty value here are almost certainly - wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is optional: User is the - rados user name, default is admin More info: - https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string required: - monitors type: object cinder: - description: 'cinder represents a cinder volume - attached and mounted on kubelets host machine. - More info: https://examples.k8s.io/mysql-cinder-pd/README.md' properties: fsType: - description: 'fsType is the filesystem type - to mount. Must be a filesystem type supported - by the host operating system. Examples: "ext4", - "xfs", "ntfs". Implicitly inferred to be "ext4" - if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string readOnly: - description: 'readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: boolean secretRef: - description: 'secretRef is optional: points - to a secret object containing parameters used - to connect to OpenStack.' properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type with - an empty value here are almost certainly - wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeID: - description: 'volumeID used to identify the - volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string required: - volumeID type: object configMap: - description: configMap represents a configMap that - should populate this volume properties: defaultMode: - description: 'defaultMode is optional: mode - bits used to set permissions on created files - by default. Must be an octal value between - 0000 and 0777 or a decimal value between 0 - and 511. YAML accepts both octal and decimal - values, JSON requires decimal values for mode - bits. Defaults to 0644. Directories within - the path are not affected by this setting. - This might be in conflict with other options - that affect the file mode, like fsGroup, and - the result can be other mode bits set.' format: int32 type: integer items: - description: items if unspecified, each key-value - pair in the Data field of the referenced ConfigMap - will be projected into the volume as a file - whose name is the key and content is the value. - If specified, the listed keys will be projected - into the specified paths, and unlisted keys - will not be present. If a key is specified - which is not present in the ConfigMap, the - volume setup will error unless it is marked - optional. Paths must be relative and may not - contain the '..' path or start with '..'. items: - description: Maps a string key to a path within - a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: mode bits - used to set permissions on this file. - Must be an octal value between 0000 - and 0777 or a decimal value between - 0 and 511. YAML accepts both octal and - decimal values, JSON requires decimal - values for mode bits. If not specified, - the volume defaultMode will be used. - This might be in conflict with other - options that affect the file mode, like - fsGroup, and the result can be other - mode bits set.' format: int32 type: integer path: - description: path is the relative path - of the file to map the key to. May not - be an absolute path. May not contain - the path element '..'. May not start - with the string '..'. type: string required: - key @@ -7864,170 +3405,67 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether the ConfigMap - or its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic csi: - description: csi (Container Storage Interface) represents - ephemeral storage that is handled by certain external - CSI drivers (Beta feature). properties: driver: - description: driver is the name of the CSI driver - that handles this volume. Consult with your - admin for the correct name as registered in - the cluster. type: string fsType: - description: fsType to mount. Ex. "ext4", "xfs", - "ntfs". If not provided, the empty value is - passed to the associated CSI driver which - will determine the default filesystem to apply. type: string nodePublishSecretRef: - description: nodePublishSecretRef is a reference - to the secret object containing sensitive - information to pass to the CSI driver to complete - the CSI NodePublishVolume and NodeUnpublishVolume - calls. This field is optional, and may be - empty if no secret is required. If the secret - object contains more than one secret, all - secret references are passed. properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type with - an empty value here are almost certainly - wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic readOnly: - description: readOnly specifies a read-only - configuration for the volume. Defaults to - false (read/write). type: boolean volumeAttributes: additionalProperties: type: string - description: volumeAttributes stores driver-specific - properties that are passed to the CSI driver. - Consult your driver's documentation for supported - values. type: object required: - driver type: object downwardAPI: - description: downwardAPI represents downward API - about the pod that should populate this volume properties: defaultMode: - description: 'Optional: mode bits to use on - created files by default. Must be a Optional: - mode bits used to set permissions on created - files by default. Must be an octal value between - 0000 and 0777 or a decimal value between 0 - and 511. YAML accepts both octal and decimal - values, JSON requires decimal values for mode - bits. Defaults to 0644. Directories within - the path are not affected by this setting. - This might be in conflict with other options - that affect the file mode, like fsGroup, and - the result can be other mode bits set.' format: int32 type: integer items: - description: Items is a list of downward API - volume file items: - description: DownwardAPIVolumeFile represents - information to create the file containing - the pod field properties: fieldRef: - description: 'Required: Selects a field - of the pod: only annotations, labels, - name, namespace and uid are supported.' properties: apiVersion: - description: Version of the schema - the FieldPath is written in terms - of, defaults to "v1". type: string fieldPath: - description: Path of the field to - select in the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode bits used - to set permissions on this file, must - be an octal value between 0000 and 0777 - or a decimal value between 0 and 511. - YAML accepts both octal and decimal - values, JSON requires decimal values - for mode bits. If not specified, the - volume defaultMode will be used. This - might be in conflict with other options - that affect the file mode, like fsGroup, - and the result can be other mode bits - set.' format: int32 type: integer path: - description: 'Required: Path is the relative - path name of the file to be created. - Must not be absolute or contain the - ''..'' path. Must be utf-8 encoded. - The first item of the relative path - must not start with ''..''' type: string resourceFieldRef: - description: 'Selects a resource of the - container: only resources limits and - requests (limits.cpu, limits.memory, - requests.cpu and requests.memory) are - currently supported.' properties: containerName: - description: 'Container name: required - for volumes, optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource to - select' type: string required: - resource @@ -8040,210 +3478,50 @@ spec: x-kubernetes-list-type: atomic type: object emptyDir: - description: 'emptyDir represents a temporary directory - that shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' properties: medium: - description: 'medium represents what type of - storage medium should back this directory. - The default is "" which means to use the node''s - default medium. Must be an empty string (default) - or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' type: string sizeLimit: anyOf: - type: integer - type: string - description: 'sizeLimit is the total amount - of local storage required for this EmptyDir - volume. The size limit is also applicable - for memory medium. The maximum usage on memory - medium EmptyDir would be the minimum value - between the SizeLimit specified here and the - sum of memory limits of all containers in - a pod. The default is nil which means that - the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object ephemeral: - description: "ephemeral represents a volume that - is handled by a cluster storage driver. The volume's - lifecycle is tied to the pod that defines it - - it will be created before the pod starts, and - deleted when the pod is removed. \n Use this if: - a) the volume is only needed while the pod runs, - b) features of normal volumes like restoring from - snapshot or capacity tracking are needed, c) the - storage driver is specified through a storage - class, and d) the storage driver supports dynamic - volume provisioning through a PersistentVolumeClaim - (see EphemeralVolumeSource for more information - on the connection between this volume type and - PersistentVolumeClaim). \n Use PersistentVolumeClaim - or one of the vendor-specific APIs for volumes - that persist for longer than the lifecycle of - an individual pod. \n Use CSI for light-weight - local ephemeral volumes if the CSI driver is meant - to be used that way - see the documentation of - the driver for more information. \n A pod can - use both types of ephemeral volumes and persistent - volumes at the same time." properties: volumeClaimTemplate: - description: "Will be used to create a stand-alone - PVC to provision the volume. The pod in which - this EphemeralVolumeSource is embedded will - be the owner of the PVC, i.e. the PVC will - be deleted together with the pod. The name - of the PVC will be `-` - where `` is the name from the - `PodSpec.Volumes` array entry. Pod validation - will reject the pod if the concatenated name - is not valid for a PVC (for example, too long). - \n An existing PVC with that name that is - not owned by the pod will *not* be used for - the pod to avoid using an unrelated volume - by mistake. Starting the pod is then blocked - until the unrelated PVC is removed. If such - a pre-created PVC is meant to be used by the - pod, the PVC has to updated with an owner - reference to the pod once the pod exists. - Normally this should not be necessary, but - it may be useful when manually reconstructing - a broken cluster. \n This field is read-only - and no changes will be made by Kubernetes - to the PVC after it has been created. \n Required, - must not be nil." properties: metadata: - description: May contain labels and annotations - that will be copied into the PVC when - creating it. No other fields are allowed - and will be rejected during validation. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured - key value map stored with a resource - that may be set by external tools - to store and retrieve arbitrary metadata. - They are not queryable and should - be preserved when modifying objects. - More info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName is an optional - prefix, used by the server, to generate - a unique name ONLY IF the Name field - has not been provided. If this field - is used, the name returned to the - client will be different than the - name passed. This value will also - be combined with a unique suffix. - The provided value has the same validation - rules as the Name field, and may be - truncated by the length of the suffix - required to make the value unique - on the server. \n If this field is - specified and the generated name exists, - the server will NOT return a 409 - - instead, it will either return 201 - Created or 500 with Reason ServerTimeout - indicating a unique name could not - be found in the time allotted, and - the client should retry (optionally - after the time indicated in the Retry-After - header). \n Applied only if Name is - not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string keys and - values that can be used to organize - and categorize (scope and select) - objects. May match selectors of replication - controllers and services. More info: - http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must be unique within - a namespace. Is required when creating - resources, although some resources - may allow a client to request the - generation of an appropriate name - automatically. Name is primarily intended - for creation idempotence and configuration - definition. Cannot be updated. More - info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace defines the - space within each name must be unique. - An empty namespace is equivalent to - the \"default\" namespace, but \"default\" - is the canonical representation. Not - all objects are required to be scoped - to a namespace - the value of this - field for those objects will be empty. - \n Must be a DNS_LABEL. Cannot be - updated. More info: http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects depended - by this object. If ALL objects in - the list have been deleted, this object - will be garbage collected. If this - object is managed by a controller, - then an entry in this list will point - to this controller, with the controller - field set to true. There cannot be - more than one managing controller. items: - description: OwnerReference contains - enough information to let you identify - an owning object. An owning object - must be in the same namespace as - the dependent, or be cluster-scoped, - so there is no namespace field. properties: apiVersion: - description: API version of the - referent. type: string blockOwnerDeletion: - description: If true, AND if the - owner has the "foregroundDeletion" - finalizer, then the owner cannot - be deleted from the key-value - store until this reference is - removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage collector - interacts with this field and - enforces the foreground deletion. - Defaults to false. To set this - field, a user needs "delete" - permission of the owner, otherwise - 422 (Unprocessable Entity) will - be returned. type: boolean controller: - description: If true, this reference - points to the managing controller. type: boolean kind: - description: 'Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -8255,54 +3533,19 @@ spec: type: array type: object spec: - description: The specification for the PersistentVolumeClaim. - The entire content is copied unchanged - into the PVC that gets created from this - template. The same fields as in a PersistentVolumeClaim - are also valid here. properties: accessModes: - description: 'accessModes contains the - desired access modes the volume should - have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource field can be - used to specify either: * An existing - VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an external - controller can support the specified - data source, it will create a new - volume based on the contents of the - specified data source. When the AnyVolumeDataSource - feature gate is enabled, dataSource - contents will be copied to dataSourceRef, - and dataSourceRef contents will be - copied to dataSource when dataSourceRef.namespace - is not specified. If the namespace - is specified, then dataSourceRef will - not be copied to dataSource.' properties: apiGroup: - description: APIGroup is the group - for the resource being referenced. - If APIGroup is not specified, - the specified Kind must be in - the core API group. For any other - third-party types, APIGroup is - required. type: string kind: - description: Kind is the type of - resource being referenced type: string name: - description: Name is the name of - resource being referenced type: string required: - kind @@ -8310,93 +3553,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef specifies - the object from which to populate - the volume with data, if a non-empty - volume is desired. This may be any - object from a non-empty API group - (non core object) or a PersistentVolumeClaim - object. When this field is specified, - volume binding will only succeed if - the type of the specified object matches - some installed volume populator or - dynamic provisioner. This field will - replace the functionality of the dataSource - field and as such if both fields are - non-empty, they must have the same - value. For backwards compatibility, - when namespace isn''t specified in - dataSourceRef, both fields (dataSource - and dataSourceRef) will be set to - the same value automatically if one - of them is empty and the other is - non-empty. When namespace is specified - in dataSourceRef, dataSource isn''t - set to the same value and must be - empty. There are three important differences - between dataSource and dataSourceRef: - * While dataSource only allows two - specific types of objects, dataSourceRef - allows any non-core object, as well - as PersistentVolumeClaim objects. - * While dataSource ignores disallowed - values (dropping them), dataSourceRef - preserves all values, and generates - an error if a disallowed value is - specified. * While dataSource only - allows local objects, dataSourceRef - allows objects in any namespaces. - (Beta) Using this field requires the - AnyVolumeDataSource feature gate to - be enabled. (Alpha) Using the namespace - field of dataSourceRef requires the - CrossNamespaceVolumeDataSource feature - gate to be enabled.' properties: apiGroup: - description: APIGroup is the group - for the resource being referenced. - If APIGroup is not specified, - the specified Kind must be in - the core API group. For any other - third-party types, APIGroup is - required. type: string kind: - description: Kind is the type of - resource being referenced type: string name: - description: Name is the name of - resource being referenced type: string namespace: - description: Namespace is the namespace - of resource being referenced Note - that when a namespace is specified, - a gateway.networking.k8s.io/ReferenceGrant - object is required in the referent - namespace to allow that namespace's - owner to accept the reference. - See the ReferenceGrant documentation - for details. (Alpha) This field - requires the CrossNamespaceVolumeDataSource - feature gate to be enabled. type: string required: - kind - name type: object resources: - description: 'resources represents the - minimum resources the volume should - have. If RecoverVolumeExpansionFailure - feature is enabled users are allowed - to specify resource requirements that - are lower than previous value but - must still be higher than capacity - recorded in the status field of the - claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -8405,9 +3575,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the - maximum amount of compute resources - allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -8416,55 +3583,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes - the minimum amount of compute - resources required. If Requests - is omitted for a container, it - defaults to Limits if that is - explicitly specified, otherwise - to an implementation-defined value. - Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is a label query - over volumes to consider for binding. properties: matchExpressions: - description: matchExpressions is - a list of label selector requirements. - The requirements are ANDed. items: - description: A label selector - requirement is a selector that - contains values, a key, and - an operator that relates the - key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to - a set of values. Valid operators - are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an - array of string values. - If the operator is In or - NotIn, the values array - must be non-empty. If the - operator is Exists or DoesNotExist, - the values array must be - empty. This array is replaced - during a strategic merge - patch. items: type: string type: array @@ -8478,61 +3608,16 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map - of {key,value} pairs. A single - {key,value} in the matchLabels - map is equivalent to an element - of matchExpressions, whose key - field is "key", the operator is - "In", and the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName is the - name of the StorageClass required - by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName - may be used to set the VolumeAttributesClass - used by this claim. If specified, - the CSI driver will create or update - the volume with the attributes defined - in the corresponding VolumeAttributesClass. - This has a different purpose than - storageClassName, it can be changed - after the claim is created. An empty - string value means that no VolumeAttributesClass - will be applied to the claim but it''s - not allowed to reset this field to - empty string once it is set. If unspecified - and the PersistentVolumeClaim is unbound, - the default VolumeAttributesClass - will be set by the persistentvolume - controller if it exists. If the resource - referred to by volumeAttributesClass - does not exist, this PersistentVolumeClaim - will be set to a Pending state, as - reflected by the modifyVolumeStatus - field, until such as a resource exists. - More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires - the VolumeAttributesClass feature - gate to be enabled.' type: string volumeMode: - description: volumeMode defines what - type of volume is required by the - claim. Value of Filesystem is implied - when not included in claim spec. type: string volumeName: - description: volumeName is the binding - reference to the PersistentVolume - backing this claim. type: string type: object required: @@ -8540,92 +3625,41 @@ spec: type: object type: object fc: - description: fc represents a Fibre Channel resource - that is attached to a kubelet's host machine and - then exposed to the pod. properties: fsType: - description: 'fsType is the filesystem type - to mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Implicitly inferred to be "ext4" - if unspecified. TODO: how do we prevent errors - in the filesystem from compromising the machine' type: string lun: - description: 'lun is Optional: FC target lun - number' format: int32 type: integer readOnly: - description: 'readOnly is Optional: Defaults - to false (read/write). ReadOnly here will - force the ReadOnly setting in VolumeMounts.' type: boolean targetWWNs: - description: 'targetWWNs is Optional: FC target - worldwide names (WWNs)' items: type: string type: array x-kubernetes-list-type: atomic wwids: - description: 'wwids Optional: FC volume world - wide identifiers (wwids) Either wwids or combination - of targetWWNs and lun must be set, but not - both simultaneously.' items: type: string type: array x-kubernetes-list-type: atomic type: object flexVolume: - description: flexVolume represents a generic volume - resource that is provisioned/attached using an - exec based plugin. properties: driver: - description: driver is the name of the driver - to use for this volume. type: string fsType: - description: fsType is the filesystem type to - mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". The default filesystem depends - on FlexVolume script. type: string options: additionalProperties: type: string - description: 'options is Optional: this field - holds extra command options if any.' type: object readOnly: - description: 'readOnly is Optional: defaults - to false (read/write). ReadOnly here will - force the ReadOnly setting in VolumeMounts.' type: boolean secretRef: - description: 'secretRef is Optional: secretRef - is reference to the secret object containing - sensitive information to pass to the plugin - scripts. This may be empty if no secret object - is specified. If the secret object contains - more than one secret, all secrets are passed - to the plugin scripts.' properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type with - an empty value here are almost certainly - wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic @@ -8633,186 +3667,79 @@ spec: - driver type: object flocker: - description: flocker represents a Flocker volume - attached to a kubelet's host machine. This depends - on the Flocker control service being running properties: datasetName: - description: datasetName is Name of the dataset - stored as metadata -> name on the dataset - for Flocker should be considered as deprecated type: string datasetUUID: - description: datasetUUID is the UUID of the - dataset. This is unique identifier of a Flocker - dataset type: string type: object gcePersistentDisk: - description: 'gcePersistentDisk represents a GCE - Disk resource that is attached to a kubelet''s - host machine and then exposed to the pod. More - info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' properties: fsType: - description: 'fsType is filesystem type of the - volume that you want to mount. Tip: Ensure - that the filesystem type is supported by the - host operating system. Examples: "ext4", "xfs", - "ntfs". Implicitly inferred to be "ext4" if - unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string partition: - description: 'partition is the partition in - the volume that you want to mount. If omitted, - the default is to mount by volume name. Examples: - For volume /dev/sda1, you specify the partition - as "1". Similarly, the volume partition for - /dev/sda is "0" (or you can leave the property - empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' format: int32 type: integer pdName: - description: 'pdName is unique name of the PD - resource in GCE. Used to identify the disk - in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: string readOnly: - description: 'readOnly here will force the ReadOnly - setting in VolumeMounts. Defaults to false. - More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: boolean required: - pdName type: object glusterfs: - description: 'glusterfs represents a Glusterfs mount - on the host that shares a pod''s lifetime. More - info: https://examples.k8s.io/volumes/glusterfs/README.md' properties: endpoints: - description: 'endpoints is the endpoint name - that details Glusterfs topology. More info: - https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string path: - description: 'path is the Glusterfs volume path. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string readOnly: - description: 'readOnly here will force the Glusterfs - volume to be mounted with read-only permissions. - Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: boolean required: - endpoints - path type: object hostPath: - description: 'hostPath represents a pre-existing - file or directory on the host machine that is - directly exposed to the container. This is generally - used for system agents or other privileged things - that are allowed to see the host machine. Most - containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- TODO(jonesdl) We need to restrict who can - use host directory mounts and who can/can not - mount host directories as read/write.' properties: path: - description: 'path of the directory on the host. - If the path is a symlink, it will follow the - link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string type: - description: 'type for HostPath Volume Defaults - to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string required: - path type: object iscsi: - description: 'iscsi represents an ISCSI Disk resource - that is attached to a kubelet''s host machine - and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md' properties: chapAuthDiscovery: - description: chapAuthDiscovery defines whether - support iSCSI Discovery CHAP authentication type: boolean chapAuthSession: - description: chapAuthSession defines whether - support iSCSI Session CHAP authentication type: boolean fsType: - description: 'fsType is the filesystem type - of the volume that you want to mount. Tip: - Ensure that the filesystem type is supported - by the host operating system. Examples: "ext4", - "xfs", "ntfs". Implicitly inferred to be "ext4" - if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string initiatorName: - description: initiatorName is the custom iSCSI - Initiator Name. If initiatorName is specified - with iscsiInterface simultaneously, new iSCSI - interface : will - be created for the connection. type: string iqn: - description: iqn is the target iSCSI Qualified - Name. type: string iscsiInterface: - description: iscsiInterface is the interface - Name that uses an iSCSI transport. Defaults - to 'default' (tcp). type: string lun: - description: lun represents iSCSI Target Lun - number. format: int32 type: integer portals: - description: portals is the iSCSI Target Portal - List. The portal is either an IP or ip_addr:port - if the port is other than default (typically - TCP ports 860 and 3260). items: type: string type: array x-kubernetes-list-type: atomic readOnly: - description: readOnly here will force the ReadOnly - setting in VolumeMounts. Defaults to false. type: boolean secretRef: - description: secretRef is the CHAP Secret for - iSCSI target and initiator authentication properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type with - an empty value here are almost certainly - wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic targetPortal: - description: targetPortal is iSCSI Target Portal. - The Portal is either an IP or ip_addr:port - if the port is other than default (typically - TCP ports 860 and 3260). type: string required: - iqn @@ -8820,171 +3747,66 @@ spec: - targetPortal type: object nfs: - description: 'nfs represents an NFS mount on the - host that shares a pod''s lifetime More info: - https://kubernetes.io/docs/concepts/storage/volumes#nfs' properties: path: - description: 'path that is exported by the NFS - server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string readOnly: - description: 'readOnly here will force the NFS - export to be mounted with read-only permissions. - Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: boolean server: - description: 'server is the hostname or IP address - of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string required: - path - server type: object persistentVolumeClaim: - description: 'persistentVolumeClaimVolumeSource - represents a reference to a PersistentVolumeClaim - in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: claimName: - description: 'claimName is the name of a PersistentVolumeClaim - in the same namespace as the pod using this - volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' type: string readOnly: - description: readOnly Will force the ReadOnly - setting in VolumeMounts. Default false. type: boolean required: - claimName type: object photonPersistentDisk: - description: photonPersistentDisk represents a PhotonController - persistent disk attached and mounted on kubelets - host machine properties: fsType: - description: fsType is the filesystem type to - mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Implicitly inferred to be "ext4" - if unspecified. type: string pdID: - description: pdID is the ID that identifies - Photon Controller persistent disk type: string required: - pdID type: object portworxVolume: - description: portworxVolume represents a portworx - volume attached and mounted on kubelets host machine properties: fsType: - description: fSType represents the filesystem - type to mount Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs". Implicitly inferred to be "ext4" if - unspecified. type: string readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean volumeID: - description: volumeID uniquely identifies a - Portworx volume type: string required: - volumeID type: object projected: - description: projected items for all in one resources - secrets, configmaps, and downward API properties: defaultMode: - description: defaultMode are the mode bits used - to set permissions on created files by default. - Must be an octal value between 0000 and 0777 - or a decimal value between 0 and 511. YAML - accepts both octal and decimal values, JSON - requires decimal values for mode bits. Directories - within the path are not affected by this setting. - This might be in conflict with other options - that affect the file mode, like fsGroup, and - the result can be other mode bits set. format: int32 type: integer sources: - description: sources is the list of volume projections items: - description: Projection that may be projected - along with other supported volume types properties: clusterTrustBundle: - description: "ClusterTrustBundle allows - a pod to access the `.spec.trustBundle` - field of ClusterTrustBundle objects - in an auto-updating file. \n Alpha, - gated by the ClusterTrustBundleProjection - feature gate. \n ClusterTrustBundle - objects can either be selected by name, - or by the combination of signer name - and a label selector. \n Kubelet performs - aggressive normalization of the PEM - contents written into the pod filesystem. - \ Esoteric PEM features such as inter-block - comments and block headers are stripped. - \ Certificates are deduplicated. The - ordering of certificates within the - file is arbitrary, and Kubelet may change - the order over time." properties: labelSelector: - description: Select all ClusterTrustBundles - that match this label selector. Only - has effect if signerName is set. Mutually-exclusive - with name. If unset, interpreted - as "match nothing". If set but - empty, interpreted as "match everything". properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a key, - and an operator that relates - the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator represents - a key's relationship to - a set of values. Valid - operators are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values is an - array of string values. - If the operator is In - or NotIn, the values array - must be non-empty. If - the operator is Exists - or DoesNotExist, the values - array must be empty. This - array is replaced during - a strategic merge patch. items: type: string type: array @@ -8998,100 +3820,31 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a - map of {key,value} pairs. A - single {key,value} in the matchLabels - map is equivalent to an element - of matchExpressions, whose key - field is "key", the operator - is "In", and the values array - contains only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic name: - description: Select a single ClusterTrustBundle - by object name. Mutually-exclusive - with signerName and labelSelector. type: string optional: - description: If true, don't block - pod startup if the referenced ClusterTrustBundle(s) - aren't available. If using name, - then the named ClusterTrustBundle - is allowed not to exist. If using - signerName, then the combination - of signerName and labelSelector - is allowed to match zero ClusterTrustBundles. type: boolean path: - description: Relative path from the - volume root to write the bundle. type: string signerName: - description: Select all ClusterTrustBundles - that match this signer name. Mutually-exclusive - with name. The contents of all - selected ClusterTrustBundles will - be unified and deduplicated. type: string required: - path type: object configMap: - description: configMap information about - the configMap data to project properties: items: - description: items if unspecified, - each key-value pair in the Data - field of the referenced ConfigMap - will be projected into the volume - as a file whose name is the key - and content is the value. If specified, - the listed keys will be projected - into the specified paths, and unlisted - keys will not be present. If a key - is specified which is not present - in the ConfigMap, the volume setup - will error unless it is marked optional. - Paths must be relative and may not - contain the '..' path or start with - '..'. items: - description: Maps a string key to - a path within a volume. properties: key: - description: key is the key - to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an octal - value between 0000 and 0777 - or a decimal value between - 0 and 511. YAML accepts both - octal and decimal values, - JSON requires decimal values - for mode bits. If not specified, - the volume defaultMode will - be used. This might be in - conflict with other options - that affect the file mode, - like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the - key to. May not be an absolute - path. May not contain the - path element '..'. May not - start with the string '..'. type: string required: - key @@ -9101,112 +3854,42 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether - the ConfigMap or its keys must be - defined type: boolean type: object x-kubernetes-map-type: atomic downwardAPI: - description: downwardAPI information about - the downwardAPI data to project properties: items: - description: Items is a list of DownwardAPIVolume - file items: - description: DownwardAPIVolumeFile - represents information to create - the file containing the pod field properties: fieldRef: - description: 'Required: Selects - a field of the pod: only annotations, - labels, name, namespace and - uid are supported.' properties: apiVersion: - description: Version of - the schema the FieldPath - is written in terms of, - defaults to "v1". type: string fieldPath: - description: Path of the - field to select in the - specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode - bits used to set permissions - on this file, must be an octal - value between 0000 and 0777 - or a decimal value between - 0 and 511. YAML accepts both - octal and decimal values, - JSON requires decimal values - for mode bits. If not specified, - the volume defaultMode will - be used. This might be in - conflict with other options - that affect the file mode, - like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: 'Required: Path - is the relative path name - of the file to be created. - Must not be absolute or contain - the ''..'' path. Must be utf-8 - encoded. The first item of - the relative path must not - start with ''..''' type: string resourceFieldRef: - description: 'Selects a resource - of the container: only resources - limits and requests (limits.cpu, - limits.memory, requests.cpu - and requests.memory) are currently - supported.' properties: containerName: - description: 'Container - name: required for volumes, - optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the - output format of the exposed - resources, defaults to - "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: - resource to select' type: string required: - resource @@ -9219,58 +3902,16 @@ spec: x-kubernetes-list-type: atomic type: object secret: - description: secret information about - the secret data to project properties: items: - description: items if unspecified, - each key-value pair in the Data - field of the referenced Secret will - be projected into the volume as - a file whose name is the key and - content is the value. If specified, - the listed keys will be projected - into the specified paths, and unlisted - keys will not be present. If a key - is specified which is not present - in the Secret, the volume setup - will error unless it is marked optional. - Paths must be relative and may not - contain the '..' path or start with - '..'. items: - description: Maps a string key to - a path within a volume. properties: key: - description: key is the key - to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an octal - value between 0000 and 0777 - or a decimal value between - 0 and 511. YAML accepts both - octal and decimal values, - JSON requires decimal values - for mode bits. If not specified, - the volume defaultMode will - be used. This might be in - conflict with other options - that affect the file mode, - like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the - key to. May not be an absolute - path. May not contain the - path element '..'. May not - start with the string '..'. type: string required: - key @@ -9280,59 +3921,19 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional field specify - whether the Secret or its key must - be defined type: boolean type: object x-kubernetes-map-type: atomic serviceAccountToken: - description: serviceAccountToken is information - about the serviceAccountToken data to - project properties: audience: - description: audience is the intended - audience of the token. A recipient - of a token must identify itself - with an identifier specified in - the audience of the token, and otherwise - should reject the token. The audience - defaults to the identifier of the - apiserver. type: string expirationSeconds: - description: expirationSeconds is - the requested duration of validity - of the service account token. As - the token approaches expiration, - the kubelet volume plugin will proactively - rotate the service account token. - The kubelet will start trying to - rotate the token if the token is - older than 80 percent of its time - to live or if the token is older - than 24 hours.Defaults to 1 hour - and must be at least 10 minutes. format: int64 type: integer path: - description: path is the path relative - to the mount point of the file to - project the token into. type: string required: - path @@ -9342,175 +3943,79 @@ spec: x-kubernetes-list-type: atomic type: object quobyte: - description: quobyte represents a Quobyte mount - on the host that shares a pod's lifetime properties: group: - description: group to map volume access to Default - is no group type: string readOnly: - description: readOnly here will force the Quobyte - volume to be mounted with read-only permissions. - Defaults to false. type: boolean registry: - description: registry represents a single or - multiple Quobyte Registry services specified - as a string as host:port pair (multiple entries - are separated with commas) which acts as the - central registry for volumes type: string tenant: - description: tenant owning the given Quobyte - volume in the Backend Used with dynamically - provisioned Quobyte volumes, value is set - by the plugin type: string user: - description: user to map volume access to Defaults - to serivceaccount user type: string volume: - description: volume is a string that references - an already created Quobyte volume by name. type: string required: - registry - volume type: object rbd: - description: 'rbd represents a Rados Block Device - mount on the host that shares a pod''s lifetime. - More info: https://examples.k8s.io/volumes/rbd/README.md' properties: fsType: - description: 'fsType is the filesystem type - of the volume that you want to mount. Tip: - Ensure that the filesystem type is supported - by the host operating system. Examples: "ext4", - "xfs", "ntfs". Implicitly inferred to be "ext4" - if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string image: - description: 'image is the rados image name. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string keyring: - description: 'keyring is the path to key ring - for RBDUser. Default is /etc/ceph/keyring. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string monitors: - description: 'monitors is a collection of Ceph - monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic pool: - description: 'pool is the rados pool name. Default - is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string readOnly: - description: 'readOnly here will force the ReadOnly - setting in VolumeMounts. Defaults to false. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: boolean secretRef: - description: 'secretRef is name of the authentication - secret for RBDUser. If provided overrides - keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type with - an empty value here are almost certainly - wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is the rados user name. Default - is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string required: - image - monitors type: object scaleIO: - description: scaleIO represents a ScaleIO persistent - volume attached and mounted on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem type to - mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Default is "xfs". type: string gateway: - description: gateway is the host address of - the ScaleIO API Gateway. type: string protectionDomain: - description: protectionDomain is the name of - the ScaleIO Protection Domain for the configured - storage. type: string readOnly: - description: readOnly Defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean secretRef: - description: secretRef references to the secret - for ScaleIO user and other sensitive information. - If this is not provided, Login operation will - fail. properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type with - an empty value here are almost certainly - wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic sslEnabled: - description: sslEnabled Flag enable/disable - SSL communication with Gateway, default false type: boolean storageMode: - description: storageMode indicates whether the - storage for a volume should be ThickProvisioned - or ThinProvisioned. Default is ThinProvisioned. type: string storagePool: - description: storagePool is the ScaleIO Storage - Pool associated with the protection domain. type: string system: - description: system is the name of the storage - system as configured in ScaleIO. type: string volumeName: - description: volumeName is the name of a volume - already created in the ScaleIO system that - is associated with this volume source. type: string required: - gateway @@ -9518,63 +4023,19 @@ spec: - system type: object secret: - description: 'secret represents a secret that should - populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' properties: defaultMode: - description: 'defaultMode is Optional: mode - bits used to set permissions on created files - by default. Must be an octal value between - 0000 and 0777 or a decimal value between 0 - and 511. YAML accepts both octal and decimal - values, JSON requires decimal values for mode - bits. Defaults to 0644. Directories within - the path are not affected by this setting. - This might be in conflict with other options - that affect the file mode, like fsGroup, and - the result can be other mode bits set.' format: int32 type: integer items: - description: items If unspecified, each key-value - pair in the Data field of the referenced Secret - will be projected into the volume as a file - whose name is the key and content is the value. - If specified, the listed keys will be projected - into the specified paths, and unlisted keys - will not be present. If a key is specified - which is not present in the Secret, the volume - setup will error unless it is marked optional. - Paths must be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key to a path within - a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: mode bits - used to set permissions on this file. - Must be an octal value between 0000 - and 0777 or a decimal value between - 0 and 511. YAML accepts both octal and - decimal values, JSON requires decimal - values for mode bits. If not specified, - the volume defaultMode will be used. - This might be in conflict with other - options that affect the file mode, like - fsGroup, and the result can be other - mode bits set.' format: int32 type: integer path: - description: path is the relative path - of the file to map the key to. May not - be an absolute path. May not contain - the path element '..'. May not start - with the string '..'. type: string required: - key @@ -9583,190 +4044,60 @@ spec: type: array x-kubernetes-list-type: atomic optional: - description: optional field specify whether - the Secret or its keys must be defined type: boolean secretName: - description: 'secretName is the name of the - secret in the pod''s namespace to use. More - info: https://kubernetes.io/docs/concepts/storage/volumes#secret' type: string type: object storageos: - description: storageOS represents a StorageOS volume - attached and mounted on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem type to - mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Implicitly inferred to be "ext4" - if unspecified. type: string readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean secretRef: - description: secretRef specifies the secret - to use for obtaining the StorageOS API credentials. If - not specified, default values will be attempted. properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type with - an empty value here are almost certainly - wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeName: - description: volumeName is the human-readable - name of the StorageOS volume. Volume names - are only unique within a namespace. type: string volumeNamespace: - description: volumeNamespace specifies the scope - of the volume within StorageOS. If no namespace - is specified then the Pod's namespace will - be used. This allows the Kubernetes name - scoping to be mirrored within StorageOS for - tighter integration. Set VolumeName to any - name to override the default behaviour. Set - to "default" if you are not using namespaces - within StorageOS. Namespaces that do not pre-exist - within StorageOS will be created. type: string type: object volumeClaimTemplate: - description: VolumeClaimTemplate specifies a template - for volume to use by the backup/restore executor properties: metadata: - description: May contain labels and annotations - that will be copied into the PVC when creating - it. No other fields are allowed and will be - rejected during validation. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured - key value map stored with a resource that - may be set by external tools to store - and retrieve arbitrary metadata. They - are not queryable and should be preserved - when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName is an optional - prefix, used by the server, to generate - a unique name ONLY IF the Name field has - not been provided. If this field is used, - the name returned to the client will be - different than the name passed. This value - will also be combined with a unique suffix. - The provided value has the same validation - rules as the Name field, and may be truncated - by the length of the suffix required to - make the value unique on the server. \n - If this field is specified and the generated - name exists, the server will NOT return - a 409 - instead, it will either return - 201 Created or 500 with Reason ServerTimeout - indicating a unique name could not be - found in the time allotted, and the client - should retry (optionally after the time - indicated in the Retry-After header). - \n Applied only if Name is not specified. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string keys and values - that can be used to organize and categorize - (scope and select) objects. May match - selectors of replication controllers and - services. More info: http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must be unique within - a namespace. Is required when creating - resources, although some resources may - allow a client to request the generation - of an appropriate name automatically. - Name is primarily intended for creation - idempotence and configuration definition. - Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace defines the space - within each name must be unique. An empty - namespace is equivalent to the \"default\" - namespace, but \"default\" is the canonical - representation. Not all objects are required - to be scoped to a namespace - the value - of this field for those objects will be - empty. \n Must be a DNS_LABEL. Cannot - be updated. More info: http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects depended by - this object. If ALL objects in the list - have been deleted, this object will be - garbage collected. If this object is managed - by a controller, then an entry in this - list will point to this controller, with - the controller field set to true. There - cannot be more than one managing controller. items: - description: OwnerReference contains enough - information to let you identify an owning - object. An owning object must be in - the same namespace as the dependent, - or be cluster-scoped, so there is no - namespace field. properties: apiVersion: - description: API version of the referent. type: string blockOwnerDeletion: - description: If true, AND if the owner - has the "foregroundDeletion" finalizer, - then the owner cannot be deleted - from the key-value store until this - reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage collector interacts - with this field and enforces the - foreground deletion. Defaults to - false. To set this field, a user - needs "delete" permission of the - owner, otherwise 422 (Unprocessable - Entity) will be returned. type: boolean controller: - description: If true, this reference - points to the managing controller. type: boolean kind: - description: 'Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -9778,52 +4109,19 @@ spec: type: array type: object spec: - description: The specification for the PersistentVolumeClaim. - The entire content is copied unchanged into - the PVC that gets created from this template. - The same fields as in a PersistentVolumeClaim - are also valid here. properties: accessModes: - description: 'accessModes contains the desired - access modes the volume should have. More - info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource field can be used - to specify either: * An existing VolumeSnapshot - object (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an external controller - can support the specified data source, - it will create a new volume based on the - contents of the specified data source. - When the AnyVolumeDataSource feature gate - is enabled, dataSource contents will be - copied to dataSourceRef, and dataSourceRef - contents will be copied to dataSource - when dataSourceRef.namespace is not specified. - If the namespace is specified, then dataSourceRef - will not be copied to dataSource.' properties: apiGroup: - description: APIGroup is the group for - the resource being referenced. If - APIGroup is not specified, the specified - Kind must be in the core API group. - For any other third-party types, APIGroup - is required. type: string kind: - description: Kind is the type of resource - being referenced type: string name: - description: Name is the name of resource - being referenced type: string required: - kind @@ -9831,85 +4129,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef specifies the - object from which to populate the volume - with data, if a non-empty volume is desired. - This may be any object from a non-empty - API group (non core object) or a PersistentVolumeClaim - object. When this field is specified, - volume binding will only succeed if the - type of the specified object matches some - installed volume populator or dynamic - provisioner. This field will replace the - functionality of the dataSource field - and as such if both fields are non-empty, - they must have the same value. For backwards - compatibility, when namespace isn''t specified - in dataSourceRef, both fields (dataSource - and dataSourceRef) will be set to the - same value automatically if one of them - is empty and the other is non-empty. When - namespace is specified in dataSourceRef, - dataSource isn''t set to the same value - and must be empty. There are three important - differences between dataSource and dataSourceRef: - * While dataSource only allows two specific - types of objects, dataSourceRef allows - any non-core object, as well as PersistentVolumeClaim - objects. * While dataSource ignores disallowed - values (dropping them), dataSourceRef - preserves all values, and generates an - error if a disallowed value is specified. - * While dataSource only allows local objects, - dataSourceRef allows objects in any namespaces. - (Beta) Using this field requires the AnyVolumeDataSource - feature gate to be enabled. (Alpha) Using - the namespace field of dataSourceRef requires - the CrossNamespaceVolumeDataSource feature - gate to be enabled.' properties: apiGroup: - description: APIGroup is the group for - the resource being referenced. If - APIGroup is not specified, the specified - Kind must be in the core API group. - For any other third-party types, APIGroup - is required. type: string kind: - description: Kind is the type of resource - being referenced type: string name: - description: Name is the name of resource - being referenced type: string namespace: - description: Namespace is the namespace - of resource being referenced Note - that when a namespace is specified, - a gateway.networking.k8s.io/ReferenceGrant - object is required in the referent - namespace to allow that namespace's - owner to accept the reference. See - the ReferenceGrant documentation for - details. (Alpha) This field requires - the CrossNamespaceVolumeDataSource - feature gate to be enabled. type: string required: - kind - name type: object resources: - description: 'resources represents the minimum - resources the volume should have. If RecoverVolumeExpansionFailure - feature is enabled users are allowed to - specify resource requirements that are - lower than previous value but must still - be higher than capacity recorded in the - status field of the claim. More info: - https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -9918,9 +4151,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum - amount of compute resources allowed. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -9929,50 +4159,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the - minimum amount of compute resources - required. If Requests is omitted for - a container, it defaults to Limits - if that is explicitly specified, otherwise - to an implementation-defined value. - Requests cannot exceed Limits. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is a label query over - volumes to consider for binding. properties: matchExpressions: - description: matchExpressions is a list - of label selector requirements. The - requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to a set - of values. Valid operators are - In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array - of string values. If the operator - is In or NotIn, the values array - must be non-empty. If the operator - is Exists or DoesNotExist, the - values array must be empty. - This array is replaced during - a strategic merge patch. items: type: string type: array @@ -9986,85 +4184,30 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of - {key,value} pairs. A single {key,value} - in the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName is the name - of the StorageClass required by the claim. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName - may be used to set the VolumeAttributesClass - used by this claim. If specified, the - CSI driver will create or update the volume - with the attributes defined in the corresponding - VolumeAttributesClass. This has a different - purpose than storageClassName, it can - be changed after the claim is created. - An empty string value means that no VolumeAttributesClass - will be applied to the claim but it''s - not allowed to reset this field to empty - string once it is set. If unspecified - and the PersistentVolumeClaim is unbound, - the default VolumeAttributesClass will - be set by the persistentvolume controller - if it exists. If the resource referred - to by volumeAttributesClass does not exist, - this PersistentVolumeClaim will be set - to a Pending state, as reflected by the - modifyVolumeStatus field, until such as - a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires the - VolumeAttributesClass feature gate to - be enabled.' type: string volumeMode: - description: volumeMode defines what type - of volume is required by the claim. Value - of Filesystem is implied when not included - in claim spec. type: string volumeName: - description: volumeName is the binding reference - to the PersistentVolume backing this claim. type: string type: object required: - spec type: object vsphereVolume: - description: vsphereVolume represents a vSphere - volume attached and mounted on kubelets host machine properties: fsType: - description: fsType is filesystem type to mount. - Must be a filesystem type supported by the - host operating system. Ex. "ext4", "xfs", - "ntfs". Implicitly inferred to be "ext4" if - unspecified. type: string storagePolicyID: - description: storagePolicyID is the storage - Policy Based Management (SPBM) profile ID - associated with the StoragePolicyName. type: string storagePolicyName: - description: storagePolicyName is the storage - Policy Based Management (SPBM) profile name. type: string volumePath: - description: volumePath is the path that identifies - vSphere volume vmdk type: string required: - volumePath @@ -10073,149 +4216,49 @@ spec: type: object type: array name: - description: Name indicates to the name of the task type: string params: - description: Params specifies parameters for the task. You - must provide the parameter in the Addon desired structure. type: object x-kubernetes-preserve-unknown-fields: true targetVolumes: - description: TargetVolumes specifies which volumes from the - target should be mounted in the backup/restore job/container. properties: volumeClaimTemplates: - description: VolumeClaimTemplates specifies a template - for the PersistentVolumeClaims that will be created - for each Pod in a StatefulSet. items: - description: PersistentVolumeClaim is a user's request - for and claim to a persistent volume properties: apiVersion: - description: 'APIVersion defines the versioned schema - of this representation of an object. Servers should - convert recognized schemas to the latest internal - value, and may reject unrecognized values. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'Kind is a string value representing - the REST resource this object represents. Servers - may infer this from the endpoint the client submits - requests to. Cannot be updated. In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: - description: 'Standard object''s metadata. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata' properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured - key value map stored with a resource that - may be set by external tools to store and - retrieve arbitrary metadata. They are not - queryable and should be preserved when modifying - objects. More info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName is an optional prefix, - used by the server, to generate a unique name - ONLY IF the Name field has not been provided. - If this field is used, the name returned to - the client will be different than the name - passed. This value will also be combined with - a unique suffix. The provided value has the - same validation rules as the Name field, and - may be truncated by the length of the suffix - required to make the value unique on the server. - \n If this field is specified and the generated - name exists, the server will NOT return a - 409 - instead, it will either return 201 Created - or 500 with Reason ServerTimeout indicating - a unique name could not be found in the time - allotted, and the client should retry (optionally - after the time indicated in the Retry-After - header). \n Applied only if Name is not specified. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string keys and values - that can be used to organize and categorize - (scope and select) objects. May match selectors - of replication controllers and services. More - info: http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must be unique within a namespace. - Is required when creating resources, although - some resources may allow a client to request - the generation of an appropriate name automatically. - Name is primarily intended for creation idempotence - and configuration definition. Cannot be updated. - More info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace defines the space within - each name must be unique. An empty namespace - is equivalent to the \"default\" namespace, - but \"default\" is the canonical representation. - Not all objects are required to be scoped - to a namespace - the value of this field for - those objects will be empty. \n Must be a - DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects depended by this - object. If ALL objects in the list have been - deleted, this object will be garbage collected. - If this object is managed by a controller, - then an entry in this list will point to this - controller, with the controller field set - to true. There cannot be more than one managing - controller. items: - description: OwnerReference contains enough - information to let you identify an owning - object. An owning object must be in the - same namespace as the dependent, or be cluster-scoped, - so there is no namespace field. properties: apiVersion: - description: API version of the referent. type: string blockOwnerDeletion: - description: If true, AND if the owner - has the "foregroundDeletion" finalizer, - then the owner cannot be deleted from - the key-value store until this reference - is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage collector interacts - with this field and enforces the foreground - deletion. Defaults to false. To set - this field, a user needs "delete" permission - of the owner, otherwise 422 (Unprocessable - Entity) will be returned. type: boolean controller: - description: If true, this reference points - to the managing controller. type: boolean kind: - description: 'Kind of the referent. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of the referent. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the referent. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -10227,48 +4270,19 @@ spec: type: array type: object spec: - description: 'Spec defines the desired characteristics - of a volume requested by a pod author. More info: - https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: accessModes: - description: 'accessModes contains the desired - access modes the volume should have. More - info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource field can be used to - specify either: * An existing VolumeSnapshot - object (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an external controller - can support the specified data source, it - will create a new volume based on the contents - of the specified data source. When the AnyVolumeDataSource - feature gate is enabled, dataSource contents - will be copied to dataSourceRef, and dataSourceRef - contents will be copied to dataSource when - dataSourceRef.namespace is not specified. - If the namespace is specified, then dataSourceRef - will not be copied to dataSource.' properties: apiGroup: - description: APIGroup is the group for the - resource being referenced. If APIGroup - is not specified, the specified Kind must - be in the core API group. For any other - third-party types, APIGroup is required. type: string kind: - description: Kind is the type of resource - being referenced type: string name: - description: Name is the name of resource - being referenced type: string required: - kind @@ -10276,79 +4290,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef specifies the object - from which to populate the volume with data, - if a non-empty volume is desired. This may - be any object from a non-empty API group (non - core object) or a PersistentVolumeClaim object. - When this field is specified, volume binding - will only succeed if the type of the specified - object matches some installed volume populator - or dynamic provisioner. This field will replace - the functionality of the dataSource field - and as such if both fields are non-empty, - they must have the same value. For backwards - compatibility, when namespace isn''t specified - in dataSourceRef, both fields (dataSource - and dataSourceRef) will be set to the same - value automatically if one of them is empty - and the other is non-empty. When namespace - is specified in dataSourceRef, dataSource - isn''t set to the same value and must be empty. - There are three important differences between - dataSource and dataSourceRef: * While dataSource - only allows two specific types of objects, - dataSourceRef allows any non-core object, - as well as PersistentVolumeClaim objects. - * While dataSource ignores disallowed values - (dropping them), dataSourceRef preserves all - values, and generates an error if a disallowed - value is specified. * While dataSource only - allows local objects, dataSourceRef allows - objects in any namespaces. (Beta) Using this - field requires the AnyVolumeDataSource feature - gate to be enabled. (Alpha) Using the namespace - field of dataSourceRef requires the CrossNamespaceVolumeDataSource - feature gate to be enabled.' properties: apiGroup: - description: APIGroup is the group for the - resource being referenced. If APIGroup - is not specified, the specified Kind must - be in the core API group. For any other - third-party types, APIGroup is required. type: string kind: - description: Kind is the type of resource - being referenced type: string name: - description: Name is the name of resource - being referenced type: string namespace: - description: Namespace is the namespace - of resource being referenced Note that - when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant - object is required in the referent namespace - to allow that namespace's owner to accept - the reference. See the ReferenceGrant - documentation for details. (Alpha) This - field requires the CrossNamespaceVolumeDataSource - feature gate to be enabled. type: string required: - kind - name type: object resources: - description: 'resources represents the minimum - resources the volume should have. If RecoverVolumeExpansionFailure - feature is enabled users are allowed to specify - resource requirements that are lower than - previous value but must still be higher than - capacity recorded in the status field of the - claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -10357,9 +4312,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum - amount of compute resources allowed. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -10368,48 +4320,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum - amount of compute resources required. - If Requests is omitted for a container, - it defaults to Limits if that is explicitly - specified, otherwise to an implementation-defined - value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is a label query over - volumes to consider for binding. properties: matchExpressions: - description: matchExpressions is a list - of label selector requirements. The requirements - are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label key - that the selector applies to. type: string operator: - description: operator represents a - key's relationship to a set of values. - Valid operators are In, NotIn, Exists - and DoesNotExist. type: string values: - description: values is an array of - string values. If the operator is - In or NotIn, the values array must - be non-empty. If the operator is - Exists or DoesNotExist, the values - array must be empty. This array - is replaced during a strategic merge - patch. items: type: string type: array @@ -10423,116 +4345,28 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName is the name of - the StorageClass required by the claim. More - info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName may - be used to set the VolumeAttributesClass used - by this claim. If specified, the CSI driver - will create or update the volume with the - attributes defined in the corresponding VolumeAttributesClass. - This has a different purpose than storageClassName, - it can be changed after the claim is created. - An empty string value means that no VolumeAttributesClass - will be applied to the claim but it''s not - allowed to reset this field to empty string - once it is set. If unspecified and the PersistentVolumeClaim - is unbound, the default VolumeAttributesClass - will be set by the persistentvolume controller - if it exists. If the resource referred to - by volumeAttributesClass does not exist, this - PersistentVolumeClaim will be set to a Pending - state, as reflected by the modifyVolumeStatus - field, until such as a resource exists. More - info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires the VolumeAttributesClass - feature gate to be enabled.' type: string volumeMode: - description: volumeMode defines what type of - volume is required by the claim. Value of - Filesystem is implied when not included in - claim spec. type: string volumeName: - description: volumeName is the binding reference - to the PersistentVolume backing this claim. type: string type: object status: - description: 'Status represents the current information/status - of a persistent volume claim. Read-only. More - info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: accessModes: - description: 'accessModes contains the actual - access modes the volume backing the PVC has. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic allocatedResourceStatuses: additionalProperties: - description: When a controller receives persistentvolume - claim update with ClaimResourceStatus for - a resource that it does not recognizes, - then it should ignore that update and let - other controllers handle it. type: string - description: "allocatedResourceStatuses stores - status of resource being resized for the given - PVC. Key names follow standard Kubernetes - label syntax. Valid values are either: * Un-prefixed - keys: - storage - the capacity of the volume. - * Custom resources must use implementation-defined - prefixed names such as \"example.com/my-custom-resource\" - Apart from above values - keys that are unprefixed - or have kubernetes.io prefix are considered - reserved and hence may not be used. \n ClaimResourceStatus - can be in any of following states: - ControllerResizeInProgress: - State set when resize controller starts resizing - the volume in control-plane. - ControllerResizeFailed: - State set when resize has failed in resize - controller with a terminal error. - NodeResizePending: - State set when resize controller has finished - resizing the volume but further resizing of - volume is needed on the node. - NodeResizeInProgress: - State set when kubelet starts resizing the - volume. - NodeResizeFailed: State set when - resizing has failed in kubelet with a terminal - error. Transient errors don't set NodeResizeFailed. - For example: if expanding a PVC for more capacity - - this field can be one of the following states: - - pvc.status.allocatedResourceStatus['storage'] - = \"ControllerResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] - = \"ControllerResizeFailed\" - pvc.status.allocatedResourceStatus['storage'] - = \"NodeResizePending\" - pvc.status.allocatedResourceStatus['storage'] - = \"NodeResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] - = \"NodeResizeFailed\" When this field is - not set, it means that no resize operation - is in progress for the given PVC. \n A controller - that receives PVC update with previously unknown - resourceName or ClaimResourceStatus should - ignore the update for the purpose it was designed. - For example - a controller that only is responsible - for resizing capacity of the volume, should - ignore PVC updates that change other valid - resources associated with PVC. \n This is - an alpha field and requires enabling RecoverVolumeExpansionFailure - feature." type: object x-kubernetes-map-type: granular allocatedResources: @@ -10542,36 +4376,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: "allocatedResources tracks the - resources allocated to a PVC including its - capacity. Key names follow standard Kubernetes - label syntax. Valid values are either: * Un-prefixed - keys: - storage - the capacity of the volume. - * Custom resources must use implementation-defined - prefixed names such as \"example.com/my-custom-resource\" - Apart from above values - keys that are unprefixed - or have kubernetes.io prefix are considered - reserved and hence may not be used. \n Capacity - reported here may be larger than the actual - capacity when a volume expansion operation - is requested. For storage quota, the larger - value from allocatedResources and PVC.spec.resources - is used. If allocatedResources is not set, - PVC.spec.resources alone is used for quota - calculation. If a volume expansion capacity - request is lowered, allocatedResources is - only lowered if there are no expansion operations - in progress and if the actual volume capacity - is equal or lower than the requested capacity. - \n A controller that receives PVC update with - previously unknown resourceName should ignore - the update for the purpose it was designed. - For example - a controller that only is responsible - for resizing capacity of the volume, should - ignore PVC updates that change other valid - resources associated with PVC. \n This is - an alpha field and requires enabling RecoverVolumeExpansionFailure - feature." type: object capacity: additionalProperties: @@ -10580,47 +4384,23 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: capacity represents the actual - resources of the underlying volume. type: object conditions: - description: conditions is the current Condition - of persistent volume claim. If underlying - persistent volume is being resized then the - Condition will be set to 'Resizing'. items: - description: PersistentVolumeClaimCondition - contains details about state of pvc properties: lastProbeTime: - description: lastProbeTime is the time - we probed the condition. format: date-time type: string lastTransitionTime: - description: lastTransitionTime is the - time the condition transitioned from - one status to another. format: date-time type: string message: - description: message is the human-readable - message indicating details about last - transition. type: string reason: - description: reason is a unique, this - should be a short, machine understandable - string that gives the reason for condition's - last transition. If it reports "Resizing" - that means the underlying persistent - volume is being resized. type: string status: type: string type: - description: PersistentVolumeClaimConditionType - is a valid value of PersistentVolumeClaimCondition.Type type: string required: - status @@ -10631,113 +4411,37 @@ spec: - type x-kubernetes-list-type: map currentVolumeAttributesClassName: - description: currentVolumeAttributesClassName - is the current name of the VolumeAttributesClass - the PVC is using. When unset, there is no - VolumeAttributeClass applied to this PersistentVolumeClaim - This is an alpha field and requires enabling - VolumeAttributesClass feature. type: string modifyVolumeStatus: - description: ModifyVolumeStatus represents the - status object of ControllerModifyVolume operation. - When this is unset, there is no ModifyVolume - operation being attempted. This is an alpha - field and requires enabling VolumeAttributesClass - feature. properties: status: - description: 'status is the status of the - ControllerModifyVolume operation. It can - be in any of following states: - Pending - Pending indicates that the PersistentVolumeClaim - cannot be modified due to unmet requirements, - such as the specified VolumeAttributesClass - not existing. - InProgress InProgress - indicates that the volume is being modified. - - Infeasible Infeasible indicates that - the request has been rejected as invalid - by the CSI driver. To resolve the error, - a valid VolumeAttributesClass needs to - be specified. Note: New statuses can be - added in the future. Consumers should - check for unknown statuses and fail appropriately.' type: string targetVolumeAttributesClassName: - description: targetVolumeAttributesClassName - is the name of the VolumeAttributesClass - the PVC currently being reconciled type: string required: - status type: object phase: - description: phase represents the current phase - of PersistentVolumeClaim. type: string type: object type: object type: array volumeMounts: - description: VolumeMounts specifies the mount for the - volumes specified in `Volumes` section items: - description: VolumeMount describes a mounting of a Volume - within a container. properties: mountPath: - description: Path within the container at which - the volume should be mounted. Must not contain - ':'. type: string mountPropagation: - description: mountPropagation determines how mounts - are propagated from the host to container and - the other way around. When not set, MountPropagationNone - is used. This field is beta in 1.10. When RecursiveReadOnly - is set to IfPossible or to Enabled, MountPropagation - must be None or unspecified (which defaults to - None). type: string name: - description: This must match the Name of a Volume. type: string readOnly: - description: Mounted read-only if true, read-write - otherwise (false or unspecified). Defaults to - false. type: boolean recursiveReadOnly: - description: "RecursiveReadOnly specifies whether - read-only mounts should be handled recursively. - \n If ReadOnly is false, this field has no meaning - and must be unspecified. \n If ReadOnly is true, - and this field is set to Disabled, the mount is - not made recursively read-only. If this field - is set to IfPossible, the mount is made recursively - read-only, if it is supported by the container - runtime. If this field is set to Enabled, the - mount is made recursively read-only if it is supported - by the container runtime, otherwise the pod will - not be started and an error will be generated - to indicate the reason. \n If this field is set - to IfPossible or Enabled, MountPropagation must - be set to None (or be unspecified, which defaults - to None). \n If this field is not specified, it - is treated as an equivalent of Disabled." type: string subPath: - description: Path within the volume from which the - container's volume should be mounted. Defaults - to "" (volume's root). type: string subPathExpr: - description: Expanded path within the volume from - which the container's volume should be mounted. - Behaves similarly to SubPath but environment variable - references $(VAR_NAME) are expanded using the - container's environment. Defaults to "" (volume's - root). SubPathExpr and SubPath are mutually exclusive. type: string required: - mountPath @@ -10745,269 +4449,109 @@ spec: type: object type: array volumes: - description: Volumes indicates the list of volumes of - targeted application that should be mounted on the backup/restore - job. items: - description: Volume represents a named volume in a pod - that may be accessed by any container in the pod. properties: awsElasticBlockStore: - description: 'awsElasticBlockStore represents an - AWS Disk resource that is attached to a kubelet''s - host machine and then exposed to the pod. More - info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' properties: fsType: - description: 'fsType is the filesystem type - of the volume that you want to mount. Tip: - Ensure that the filesystem type is supported - by the host operating system. Examples: "ext4", - "xfs", "ntfs". Implicitly inferred to be "ext4" - if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string partition: - description: 'partition is the partition in - the volume that you want to mount. If omitted, - the default is to mount by volume name. Examples: - For volume /dev/sda1, you specify the partition - as "1". Similarly, the volume partition for - /dev/sda is "0" (or you can leave the property - empty).' format: int32 type: integer readOnly: - description: 'readOnly value true will force - the readOnly setting in VolumeMounts. More - info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: boolean volumeID: - description: 'volumeID is unique ID of the persistent - disk resource in AWS (Amazon EBS volume). - More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: string required: - volumeID type: object azureDisk: - description: azureDisk represents an Azure Data - Disk mount on the host and bind mount to the pod. properties: cachingMode: - description: 'cachingMode is the Host Caching - mode: None, Read Only, Read Write.' type: string diskName: - description: diskName is the Name of the data - disk in the blob storage type: string diskURI: - description: diskURI is the URI of data disk - in the blob storage type: string fsType: - description: fsType is Filesystem type to mount. - Must be a filesystem type supported by the - host operating system. Ex. "ext4", "xfs", - "ntfs". Implicitly inferred to be "ext4" if - unspecified. type: string kind: - description: 'kind expected values are Shared: - multiple blob disks per storage account Dedicated: - single blob disk per storage account Managed: - azure managed data disk (only in managed availability - set). defaults to shared' type: string readOnly: - description: readOnly Defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean required: - diskName - diskURI type: object azureFile: - description: azureFile represents an Azure File - Service mount on the host and bind mount to the - pod. properties: readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean secretName: - description: secretName is the name of secret - that contains Azure Storage Account Name and - Key type: string shareName: - description: shareName is the azure share Name type: string required: - secretName - shareName type: object cephfs: - description: cephFS represents a Ceph FS mount on - the host that shares a pod's lifetime properties: monitors: - description: 'monitors is Required: Monitors - is a collection of Ceph monitors More info: - https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic path: - description: 'path is Optional: Used as the - mounted root, rather than the full Ceph tree, - default is /' type: string readOnly: - description: 'readOnly is Optional: Defaults - to false (read/write). ReadOnly here will - force the ReadOnly setting in VolumeMounts. - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: boolean secretFile: - description: 'secretFile is Optional: SecretFile - is the path to key ring for User, default - is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string secretRef: - description: 'secretRef is Optional: SecretRef - is reference to the authentication secret - for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type with - an empty value here are almost certainly - wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is optional: User is the - rados user name, default is admin More info: - https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string required: - monitors type: object cinder: - description: 'cinder represents a cinder volume - attached and mounted on kubelets host machine. - More info: https://examples.k8s.io/mysql-cinder-pd/README.md' properties: fsType: - description: 'fsType is the filesystem type - to mount. Must be a filesystem type supported - by the host operating system. Examples: "ext4", - "xfs", "ntfs". Implicitly inferred to be "ext4" - if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string readOnly: - description: 'readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: boolean secretRef: - description: 'secretRef is optional: points - to a secret object containing parameters used - to connect to OpenStack.' properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type with - an empty value here are almost certainly - wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeID: - description: 'volumeID used to identify the - volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string required: - volumeID type: object configMap: - description: configMap represents a configMap that - should populate this volume properties: defaultMode: - description: 'defaultMode is optional: mode - bits used to set permissions on created files - by default. Must be an octal value between - 0000 and 0777 or a decimal value between 0 - and 511. YAML accepts both octal and decimal - values, JSON requires decimal values for mode - bits. Defaults to 0644. Directories within - the path are not affected by this setting. - This might be in conflict with other options - that affect the file mode, like fsGroup, and - the result can be other mode bits set.' format: int32 type: integer items: - description: items if unspecified, each key-value - pair in the Data field of the referenced ConfigMap - will be projected into the volume as a file - whose name is the key and content is the value. - If specified, the listed keys will be projected - into the specified paths, and unlisted keys - will not be present. If a key is specified - which is not present in the ConfigMap, the - volume setup will error unless it is marked - optional. Paths must be relative and may not - contain the '..' path or start with '..'. items: - description: Maps a string key to a path within - a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: mode bits - used to set permissions on this file. - Must be an octal value between 0000 - and 0777 or a decimal value between - 0 and 511. YAML accepts both octal and - decimal values, JSON requires decimal - values for mode bits. If not specified, - the volume defaultMode will be used. - This might be in conflict with other - options that affect the file mode, like - fsGroup, and the result can be other - mode bits set.' format: int32 type: integer path: - description: path is the relative path - of the file to map the key to. May not - be an absolute path. May not contain - the path element '..'. May not start - with the string '..'. type: string required: - key @@ -11017,170 +4561,67 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether the ConfigMap - or its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic csi: - description: csi (Container Storage Interface) represents - ephemeral storage that is handled by certain external - CSI drivers (Beta feature). properties: driver: - description: driver is the name of the CSI driver - that handles this volume. Consult with your - admin for the correct name as registered in - the cluster. type: string fsType: - description: fsType to mount. Ex. "ext4", "xfs", - "ntfs". If not provided, the empty value is - passed to the associated CSI driver which - will determine the default filesystem to apply. type: string nodePublishSecretRef: - description: nodePublishSecretRef is a reference - to the secret object containing sensitive - information to pass to the CSI driver to complete - the CSI NodePublishVolume and NodeUnpublishVolume - calls. This field is optional, and may be - empty if no secret is required. If the secret - object contains more than one secret, all - secret references are passed. properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type with - an empty value here are almost certainly - wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic readOnly: - description: readOnly specifies a read-only - configuration for the volume. Defaults to - false (read/write). type: boolean volumeAttributes: additionalProperties: type: string - description: volumeAttributes stores driver-specific - properties that are passed to the CSI driver. - Consult your driver's documentation for supported - values. type: object required: - driver type: object downwardAPI: - description: downwardAPI represents downward API - about the pod that should populate this volume properties: defaultMode: - description: 'Optional: mode bits to use on - created files by default. Must be a Optional: - mode bits used to set permissions on created - files by default. Must be an octal value between - 0000 and 0777 or a decimal value between 0 - and 511. YAML accepts both octal and decimal - values, JSON requires decimal values for mode - bits. Defaults to 0644. Directories within - the path are not affected by this setting. - This might be in conflict with other options - that affect the file mode, like fsGroup, and - the result can be other mode bits set.' format: int32 type: integer items: - description: Items is a list of downward API - volume file items: - description: DownwardAPIVolumeFile represents - information to create the file containing - the pod field properties: fieldRef: - description: 'Required: Selects a field - of the pod: only annotations, labels, - name, namespace and uid are supported.' properties: apiVersion: - description: Version of the schema - the FieldPath is written in terms - of, defaults to "v1". type: string fieldPath: - description: Path of the field to - select in the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode bits used - to set permissions on this file, must - be an octal value between 0000 and 0777 - or a decimal value between 0 and 511. - YAML accepts both octal and decimal - values, JSON requires decimal values - for mode bits. If not specified, the - volume defaultMode will be used. This - might be in conflict with other options - that affect the file mode, like fsGroup, - and the result can be other mode bits - set.' format: int32 type: integer path: - description: 'Required: Path is the relative - path name of the file to be created. - Must not be absolute or contain the - ''..'' path. Must be utf-8 encoded. - The first item of the relative path - must not start with ''..''' type: string resourceFieldRef: - description: 'Selects a resource of the - container: only resources limits and - requests (limits.cpu, limits.memory, - requests.cpu and requests.memory) are - currently supported.' properties: containerName: - description: 'Container name: required - for volumes, optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource to - select' type: string required: - resource @@ -11193,210 +4634,50 @@ spec: x-kubernetes-list-type: atomic type: object emptyDir: - description: 'emptyDir represents a temporary directory - that shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' properties: medium: - description: 'medium represents what type of - storage medium should back this directory. - The default is "" which means to use the node''s - default medium. Must be an empty string (default) - or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' type: string sizeLimit: anyOf: - type: integer - type: string - description: 'sizeLimit is the total amount - of local storage required for this EmptyDir - volume. The size limit is also applicable - for memory medium. The maximum usage on memory - medium EmptyDir would be the minimum value - between the SizeLimit specified here and the - sum of memory limits of all containers in - a pod. The default is nil which means that - the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object ephemeral: - description: "ephemeral represents a volume that - is handled by a cluster storage driver. The volume's - lifecycle is tied to the pod that defines it - - it will be created before the pod starts, and - deleted when the pod is removed. \n Use this if: - a) the volume is only needed while the pod runs, - b) features of normal volumes like restoring from - snapshot or capacity tracking are needed, c) the - storage driver is specified through a storage - class, and d) the storage driver supports dynamic - volume provisioning through a PersistentVolumeClaim - (see EphemeralVolumeSource for more information - on the connection between this volume type and - PersistentVolumeClaim). \n Use PersistentVolumeClaim - or one of the vendor-specific APIs for volumes - that persist for longer than the lifecycle of - an individual pod. \n Use CSI for light-weight - local ephemeral volumes if the CSI driver is meant - to be used that way - see the documentation of - the driver for more information. \n A pod can - use both types of ephemeral volumes and persistent - volumes at the same time." properties: volumeClaimTemplate: - description: "Will be used to create a stand-alone - PVC to provision the volume. The pod in which - this EphemeralVolumeSource is embedded will - be the owner of the PVC, i.e. the PVC will - be deleted together with the pod. The name - of the PVC will be `-` - where `` is the name from the - `PodSpec.Volumes` array entry. Pod validation - will reject the pod if the concatenated name - is not valid for a PVC (for example, too long). - \n An existing PVC with that name that is - not owned by the pod will *not* be used for - the pod to avoid using an unrelated volume - by mistake. Starting the pod is then blocked - until the unrelated PVC is removed. If such - a pre-created PVC is meant to be used by the - pod, the PVC has to updated with an owner - reference to the pod once the pod exists. - Normally this should not be necessary, but - it may be useful when manually reconstructing - a broken cluster. \n This field is read-only - and no changes will be made by Kubernetes - to the PVC after it has been created. \n Required, - must not be nil." properties: metadata: - description: May contain labels and annotations - that will be copied into the PVC when - creating it. No other fields are allowed - and will be rejected during validation. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured - key value map stored with a resource - that may be set by external tools - to store and retrieve arbitrary metadata. - They are not queryable and should - be preserved when modifying objects. - More info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName is an optional - prefix, used by the server, to generate - a unique name ONLY IF the Name field - has not been provided. If this field - is used, the name returned to the - client will be different than the - name passed. This value will also - be combined with a unique suffix. - The provided value has the same validation - rules as the Name field, and may be - truncated by the length of the suffix - required to make the value unique - on the server. \n If this field is - specified and the generated name exists, - the server will NOT return a 409 - - instead, it will either return 201 - Created or 500 with Reason ServerTimeout - indicating a unique name could not - be found in the time allotted, and - the client should retry (optionally - after the time indicated in the Retry-After - header). \n Applied only if Name is - not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string keys and - values that can be used to organize - and categorize (scope and select) - objects. May match selectors of replication - controllers and services. More info: - http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must be unique within - a namespace. Is required when creating - resources, although some resources - may allow a client to request the - generation of an appropriate name - automatically. Name is primarily intended - for creation idempotence and configuration - definition. Cannot be updated. More - info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace defines the - space within each name must be unique. - An empty namespace is equivalent to - the \"default\" namespace, but \"default\" - is the canonical representation. Not - all objects are required to be scoped - to a namespace - the value of this - field for those objects will be empty. - \n Must be a DNS_LABEL. Cannot be - updated. More info: http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects depended - by this object. If ALL objects in - the list have been deleted, this object - will be garbage collected. If this - object is managed by a controller, - then an entry in this list will point - to this controller, with the controller - field set to true. There cannot be - more than one managing controller. items: - description: OwnerReference contains - enough information to let you identify - an owning object. An owning object - must be in the same namespace as - the dependent, or be cluster-scoped, - so there is no namespace field. properties: apiVersion: - description: API version of the - referent. type: string blockOwnerDeletion: - description: If true, AND if the - owner has the "foregroundDeletion" - finalizer, then the owner cannot - be deleted from the key-value - store until this reference is - removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage collector - interacts with this field and - enforces the foreground deletion. - Defaults to false. To set this - field, a user needs "delete" - permission of the owner, otherwise - 422 (Unprocessable Entity) will - be returned. type: boolean controller: - description: If true, this reference - points to the managing controller. type: boolean kind: - description: 'Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -11408,54 +4689,19 @@ spec: type: array type: object spec: - description: The specification for the PersistentVolumeClaim. - The entire content is copied unchanged - into the PVC that gets created from this - template. The same fields as in a PersistentVolumeClaim - are also valid here. properties: accessModes: - description: 'accessModes contains the - desired access modes the volume should - have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource field can be - used to specify either: * An existing - VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an external - controller can support the specified - data source, it will create a new - volume based on the contents of the - specified data source. When the AnyVolumeDataSource - feature gate is enabled, dataSource - contents will be copied to dataSourceRef, - and dataSourceRef contents will be - copied to dataSource when dataSourceRef.namespace - is not specified. If the namespace - is specified, then dataSourceRef will - not be copied to dataSource.' properties: apiGroup: - description: APIGroup is the group - for the resource being referenced. - If APIGroup is not specified, - the specified Kind must be in - the core API group. For any other - third-party types, APIGroup is - required. type: string kind: - description: Kind is the type of - resource being referenced type: string name: - description: Name is the name of - resource being referenced type: string required: - kind @@ -11463,93 +4709,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef specifies - the object from which to populate - the volume with data, if a non-empty - volume is desired. This may be any - object from a non-empty API group - (non core object) or a PersistentVolumeClaim - object. When this field is specified, - volume binding will only succeed if - the type of the specified object matches - some installed volume populator or - dynamic provisioner. This field will - replace the functionality of the dataSource - field and as such if both fields are - non-empty, they must have the same - value. For backwards compatibility, - when namespace isn''t specified in - dataSourceRef, both fields (dataSource - and dataSourceRef) will be set to - the same value automatically if one - of them is empty and the other is - non-empty. When namespace is specified - in dataSourceRef, dataSource isn''t - set to the same value and must be - empty. There are three important differences - between dataSource and dataSourceRef: - * While dataSource only allows two - specific types of objects, dataSourceRef - allows any non-core object, as well - as PersistentVolumeClaim objects. - * While dataSource ignores disallowed - values (dropping them), dataSourceRef - preserves all values, and generates - an error if a disallowed value is - specified. * While dataSource only - allows local objects, dataSourceRef - allows objects in any namespaces. - (Beta) Using this field requires the - AnyVolumeDataSource feature gate to - be enabled. (Alpha) Using the namespace - field of dataSourceRef requires the - CrossNamespaceVolumeDataSource feature - gate to be enabled.' properties: apiGroup: - description: APIGroup is the group - for the resource being referenced. - If APIGroup is not specified, - the specified Kind must be in - the core API group. For any other - third-party types, APIGroup is - required. type: string kind: - description: Kind is the type of - resource being referenced type: string name: - description: Name is the name of - resource being referenced type: string namespace: - description: Namespace is the namespace - of resource being referenced Note - that when a namespace is specified, - a gateway.networking.k8s.io/ReferenceGrant - object is required in the referent - namespace to allow that namespace's - owner to accept the reference. - See the ReferenceGrant documentation - for details. (Alpha) This field - requires the CrossNamespaceVolumeDataSource - feature gate to be enabled. type: string required: - kind - name type: object resources: - description: 'resources represents the - minimum resources the volume should - have. If RecoverVolumeExpansionFailure - feature is enabled users are allowed - to specify resource requirements that - are lower than previous value but - must still be higher than capacity - recorded in the status field of the - claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -11558,9 +4731,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the - maximum amount of compute resources - allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -11569,55 +4739,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes - the minimum amount of compute - resources required. If Requests - is omitted for a container, it - defaults to Limits if that is - explicitly specified, otherwise - to an implementation-defined value. - Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is a label query - over volumes to consider for binding. properties: matchExpressions: - description: matchExpressions is - a list of label selector requirements. - The requirements are ANDed. items: - description: A label selector - requirement is a selector that - contains values, a key, and - an operator that relates the - key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to - a set of values. Valid operators - are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an - array of string values. - If the operator is In or - NotIn, the values array - must be non-empty. If the - operator is Exists or DoesNotExist, - the values array must be - empty. This array is replaced - during a strategic merge - patch. items: type: string type: array @@ -11631,61 +4764,16 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map - of {key,value} pairs. A single - {key,value} in the matchLabels - map is equivalent to an element - of matchExpressions, whose key - field is "key", the operator is - "In", and the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName is the - name of the StorageClass required - by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName - may be used to set the VolumeAttributesClass - used by this claim. If specified, - the CSI driver will create or update - the volume with the attributes defined - in the corresponding VolumeAttributesClass. - This has a different purpose than - storageClassName, it can be changed - after the claim is created. An empty - string value means that no VolumeAttributesClass - will be applied to the claim but it''s - not allowed to reset this field to - empty string once it is set. If unspecified - and the PersistentVolumeClaim is unbound, - the default VolumeAttributesClass - will be set by the persistentvolume - controller if it exists. If the resource - referred to by volumeAttributesClass - does not exist, this PersistentVolumeClaim - will be set to a Pending state, as - reflected by the modifyVolumeStatus - field, until such as a resource exists. - More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires - the VolumeAttributesClass feature - gate to be enabled.' type: string volumeMode: - description: volumeMode defines what - type of volume is required by the - claim. Value of Filesystem is implied - when not included in claim spec. type: string volumeName: - description: volumeName is the binding - reference to the PersistentVolume - backing this claim. type: string type: object required: @@ -11693,92 +4781,41 @@ spec: type: object type: object fc: - description: fc represents a Fibre Channel resource - that is attached to a kubelet's host machine and - then exposed to the pod. properties: fsType: - description: 'fsType is the filesystem type - to mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Implicitly inferred to be "ext4" - if unspecified. TODO: how do we prevent errors - in the filesystem from compromising the machine' type: string lun: - description: 'lun is Optional: FC target lun - number' format: int32 type: integer readOnly: - description: 'readOnly is Optional: Defaults - to false (read/write). ReadOnly here will - force the ReadOnly setting in VolumeMounts.' type: boolean targetWWNs: - description: 'targetWWNs is Optional: FC target - worldwide names (WWNs)' items: type: string type: array x-kubernetes-list-type: atomic wwids: - description: 'wwids Optional: FC volume world - wide identifiers (wwids) Either wwids or combination - of targetWWNs and lun must be set, but not - both simultaneously.' items: type: string type: array x-kubernetes-list-type: atomic type: object flexVolume: - description: flexVolume represents a generic volume - resource that is provisioned/attached using an - exec based plugin. properties: driver: - description: driver is the name of the driver - to use for this volume. type: string fsType: - description: fsType is the filesystem type to - mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". The default filesystem depends - on FlexVolume script. type: string options: additionalProperties: type: string - description: 'options is Optional: this field - holds extra command options if any.' type: object readOnly: - description: 'readOnly is Optional: defaults - to false (read/write). ReadOnly here will - force the ReadOnly setting in VolumeMounts.' type: boolean secretRef: - description: 'secretRef is Optional: secretRef - is reference to the secret object containing - sensitive information to pass to the plugin - scripts. This may be empty if no secret object - is specified. If the secret object contains - more than one secret, all secrets are passed - to the plugin scripts.' properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type with - an empty value here are almost certainly - wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic @@ -11786,186 +4823,79 @@ spec: - driver type: object flocker: - description: flocker represents a Flocker volume - attached to a kubelet's host machine. This depends - on the Flocker control service being running properties: datasetName: - description: datasetName is Name of the dataset - stored as metadata -> name on the dataset - for Flocker should be considered as deprecated type: string datasetUUID: - description: datasetUUID is the UUID of the - dataset. This is unique identifier of a Flocker - dataset type: string type: object gcePersistentDisk: - description: 'gcePersistentDisk represents a GCE - Disk resource that is attached to a kubelet''s - host machine and then exposed to the pod. More - info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' properties: fsType: - description: 'fsType is filesystem type of the - volume that you want to mount. Tip: Ensure - that the filesystem type is supported by the - host operating system. Examples: "ext4", "xfs", - "ntfs". Implicitly inferred to be "ext4" if - unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string partition: - description: 'partition is the partition in - the volume that you want to mount. If omitted, - the default is to mount by volume name. Examples: - For volume /dev/sda1, you specify the partition - as "1". Similarly, the volume partition for - /dev/sda is "0" (or you can leave the property - empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' format: int32 type: integer pdName: - description: 'pdName is unique name of the PD - resource in GCE. Used to identify the disk - in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: string readOnly: - description: 'readOnly here will force the ReadOnly - setting in VolumeMounts. Defaults to false. - More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: boolean required: - pdName type: object glusterfs: - description: 'glusterfs represents a Glusterfs mount - on the host that shares a pod''s lifetime. More - info: https://examples.k8s.io/volumes/glusterfs/README.md' properties: endpoints: - description: 'endpoints is the endpoint name - that details Glusterfs topology. More info: - https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string path: - description: 'path is the Glusterfs volume path. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string readOnly: - description: 'readOnly here will force the Glusterfs - volume to be mounted with read-only permissions. - Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: boolean required: - endpoints - path type: object hostPath: - description: 'hostPath represents a pre-existing - file or directory on the host machine that is - directly exposed to the container. This is generally - used for system agents or other privileged things - that are allowed to see the host machine. Most - containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- TODO(jonesdl) We need to restrict who can - use host directory mounts and who can/can not - mount host directories as read/write.' properties: path: - description: 'path of the directory on the host. - If the path is a symlink, it will follow the - link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string type: - description: 'type for HostPath Volume Defaults - to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string required: - path type: object iscsi: - description: 'iscsi represents an ISCSI Disk resource - that is attached to a kubelet''s host machine - and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md' properties: chapAuthDiscovery: - description: chapAuthDiscovery defines whether - support iSCSI Discovery CHAP authentication type: boolean chapAuthSession: - description: chapAuthSession defines whether - support iSCSI Session CHAP authentication type: boolean fsType: - description: 'fsType is the filesystem type - of the volume that you want to mount. Tip: - Ensure that the filesystem type is supported - by the host operating system. Examples: "ext4", - "xfs", "ntfs". Implicitly inferred to be "ext4" - if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string initiatorName: - description: initiatorName is the custom iSCSI - Initiator Name. If initiatorName is specified - with iscsiInterface simultaneously, new iSCSI - interface : will - be created for the connection. type: string iqn: - description: iqn is the target iSCSI Qualified - Name. type: string iscsiInterface: - description: iscsiInterface is the interface - Name that uses an iSCSI transport. Defaults - to 'default' (tcp). type: string lun: - description: lun represents iSCSI Target Lun - number. format: int32 type: integer portals: - description: portals is the iSCSI Target Portal - List. The portal is either an IP or ip_addr:port - if the port is other than default (typically - TCP ports 860 and 3260). items: type: string type: array x-kubernetes-list-type: atomic readOnly: - description: readOnly here will force the ReadOnly - setting in VolumeMounts. Defaults to false. type: boolean secretRef: - description: secretRef is the CHAP Secret for - iSCSI target and initiator authentication properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type with - an empty value here are almost certainly - wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic targetPortal: - description: targetPortal is iSCSI Target Portal. - The Portal is either an IP or ip_addr:port - if the port is other than default (typically - TCP ports 860 and 3260). type: string required: - iqn @@ -11973,175 +4903,68 @@ spec: - targetPortal type: object name: - description: 'name of the volume. Must be a DNS_LABEL - and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string nfs: - description: 'nfs represents an NFS mount on the - host that shares a pod''s lifetime More info: - https://kubernetes.io/docs/concepts/storage/volumes#nfs' properties: path: - description: 'path that is exported by the NFS - server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string readOnly: - description: 'readOnly here will force the NFS - export to be mounted with read-only permissions. - Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: boolean server: - description: 'server is the hostname or IP address - of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string required: - path - server type: object persistentVolumeClaim: - description: 'persistentVolumeClaimVolumeSource - represents a reference to a PersistentVolumeClaim - in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: claimName: - description: 'claimName is the name of a PersistentVolumeClaim - in the same namespace as the pod using this - volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' type: string readOnly: - description: readOnly Will force the ReadOnly - setting in VolumeMounts. Default false. type: boolean required: - claimName type: object photonPersistentDisk: - description: photonPersistentDisk represents a PhotonController - persistent disk attached and mounted on kubelets - host machine properties: fsType: - description: fsType is the filesystem type to - mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Implicitly inferred to be "ext4" - if unspecified. type: string pdID: - description: pdID is the ID that identifies - Photon Controller persistent disk type: string required: - pdID type: object portworxVolume: - description: portworxVolume represents a portworx - volume attached and mounted on kubelets host machine properties: fsType: - description: fSType represents the filesystem - type to mount Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs". Implicitly inferred to be "ext4" if - unspecified. type: string readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean volumeID: - description: volumeID uniquely identifies a - Portworx volume type: string required: - volumeID type: object projected: - description: projected items for all in one resources - secrets, configmaps, and downward API properties: defaultMode: - description: defaultMode are the mode bits used - to set permissions on created files by default. - Must be an octal value between 0000 and 0777 - or a decimal value between 0 and 511. YAML - accepts both octal and decimal values, JSON - requires decimal values for mode bits. Directories - within the path are not affected by this setting. - This might be in conflict with other options - that affect the file mode, like fsGroup, and - the result can be other mode bits set. format: int32 type: integer sources: - description: sources is the list of volume projections items: - description: Projection that may be projected - along with other supported volume types properties: clusterTrustBundle: - description: "ClusterTrustBundle allows - a pod to access the `.spec.trustBundle` - field of ClusterTrustBundle objects - in an auto-updating file. \n Alpha, - gated by the ClusterTrustBundleProjection - feature gate. \n ClusterTrustBundle - objects can either be selected by name, - or by the combination of signer name - and a label selector. \n Kubelet performs - aggressive normalization of the PEM - contents written into the pod filesystem. - \ Esoteric PEM features such as inter-block - comments and block headers are stripped. - \ Certificates are deduplicated. The - ordering of certificates within the - file is arbitrary, and Kubelet may change - the order over time." properties: labelSelector: - description: Select all ClusterTrustBundles - that match this label selector. Only - has effect if signerName is set. Mutually-exclusive - with name. If unset, interpreted - as "match nothing". If set but - empty, interpreted as "match everything". properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a key, - and an operator that relates - the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator represents - a key's relationship to - a set of values. Valid - operators are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values is an - array of string values. - If the operator is In - or NotIn, the values array - must be non-empty. If - the operator is Exists - or DoesNotExist, the values - array must be empty. This - array is replaced during - a strategic merge patch. items: type: string type: array @@ -12155,100 +4978,31 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a - map of {key,value} pairs. A - single {key,value} in the matchLabels - map is equivalent to an element - of matchExpressions, whose key - field is "key", the operator - is "In", and the values array - contains only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic name: - description: Select a single ClusterTrustBundle - by object name. Mutually-exclusive - with signerName and labelSelector. type: string optional: - description: If true, don't block - pod startup if the referenced ClusterTrustBundle(s) - aren't available. If using name, - then the named ClusterTrustBundle - is allowed not to exist. If using - signerName, then the combination - of signerName and labelSelector - is allowed to match zero ClusterTrustBundles. type: boolean path: - description: Relative path from the - volume root to write the bundle. type: string signerName: - description: Select all ClusterTrustBundles - that match this signer name. Mutually-exclusive - with name. The contents of all - selected ClusterTrustBundles will - be unified and deduplicated. type: string required: - path type: object configMap: - description: configMap information about - the configMap data to project properties: items: - description: items if unspecified, - each key-value pair in the Data - field of the referenced ConfigMap - will be projected into the volume - as a file whose name is the key - and content is the value. If specified, - the listed keys will be projected - into the specified paths, and unlisted - keys will not be present. If a key - is specified which is not present - in the ConfigMap, the volume setup - will error unless it is marked optional. - Paths must be relative and may not - contain the '..' path or start with - '..'. items: - description: Maps a string key to - a path within a volume. properties: key: - description: key is the key - to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an octal - value between 0000 and 0777 - or a decimal value between - 0 and 511. YAML accepts both - octal and decimal values, - JSON requires decimal values - for mode bits. If not specified, - the volume defaultMode will - be used. This might be in - conflict with other options - that affect the file mode, - like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the - key to. May not be an absolute - path. May not contain the - path element '..'. May not - start with the string '..'. type: string required: - key @@ -12258,112 +5012,42 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether - the ConfigMap or its keys must be - defined type: boolean type: object x-kubernetes-map-type: atomic downwardAPI: - description: downwardAPI information about - the downwardAPI data to project properties: items: - description: Items is a list of DownwardAPIVolume - file items: - description: DownwardAPIVolumeFile - represents information to create - the file containing the pod field properties: fieldRef: - description: 'Required: Selects - a field of the pod: only annotations, - labels, name, namespace and - uid are supported.' properties: apiVersion: - description: Version of - the schema the FieldPath - is written in terms of, - defaults to "v1". type: string fieldPath: - description: Path of the - field to select in the - specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode - bits used to set permissions - on this file, must be an octal - value between 0000 and 0777 - or a decimal value between - 0 and 511. YAML accepts both - octal and decimal values, - JSON requires decimal values - for mode bits. If not specified, - the volume defaultMode will - be used. This might be in - conflict with other options - that affect the file mode, - like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: 'Required: Path - is the relative path name - of the file to be created. - Must not be absolute or contain - the ''..'' path. Must be utf-8 - encoded. The first item of - the relative path must not - start with ''..''' type: string resourceFieldRef: - description: 'Selects a resource - of the container: only resources - limits and requests (limits.cpu, - limits.memory, requests.cpu - and requests.memory) are currently - supported.' properties: containerName: - description: 'Container - name: required for volumes, - optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the - output format of the exposed - resources, defaults to - "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: - resource to select' type: string required: - resource @@ -12376,58 +5060,16 @@ spec: x-kubernetes-list-type: atomic type: object secret: - description: secret information about - the secret data to project properties: items: - description: items if unspecified, - each key-value pair in the Data - field of the referenced Secret will - be projected into the volume as - a file whose name is the key and - content is the value. If specified, - the listed keys will be projected - into the specified paths, and unlisted - keys will not be present. If a key - is specified which is not present - in the Secret, the volume setup - will error unless it is marked optional. - Paths must be relative and may not - contain the '..' path or start with - '..'. items: - description: Maps a string key to - a path within a volume. properties: key: - description: key is the key - to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an octal - value between 0000 and 0777 - or a decimal value between - 0 and 511. YAML accepts both - octal and decimal values, - JSON requires decimal values - for mode bits. If not specified, - the volume defaultMode will - be used. This might be in - conflict with other options - that affect the file mode, - like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the - key to. May not be an absolute - path. May not contain the - path element '..'. May not - start with the string '..'. type: string required: - key @@ -12437,59 +5079,19 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value - here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` - when controller-gen doesn''t need - it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional field specify - whether the Secret or its key must - be defined type: boolean type: object x-kubernetes-map-type: atomic serviceAccountToken: - description: serviceAccountToken is information - about the serviceAccountToken data to - project properties: audience: - description: audience is the intended - audience of the token. A recipient - of a token must identify itself - with an identifier specified in - the audience of the token, and otherwise - should reject the token. The audience - defaults to the identifier of the - apiserver. type: string expirationSeconds: - description: expirationSeconds is - the requested duration of validity - of the service account token. As - the token approaches expiration, - the kubelet volume plugin will proactively - rotate the service account token. - The kubelet will start trying to - rotate the token if the token is - older than 80 percent of its time - to live or if the token is older - than 24 hours.Defaults to 1 hour - and must be at least 10 minutes. format: int64 type: integer path: - description: path is the path relative - to the mount point of the file to - project the token into. type: string required: - path @@ -12499,175 +5101,79 @@ spec: x-kubernetes-list-type: atomic type: object quobyte: - description: quobyte represents a Quobyte mount - on the host that shares a pod's lifetime properties: group: - description: group to map volume access to Default - is no group type: string readOnly: - description: readOnly here will force the Quobyte - volume to be mounted with read-only permissions. - Defaults to false. type: boolean registry: - description: registry represents a single or - multiple Quobyte Registry services specified - as a string as host:port pair (multiple entries - are separated with commas) which acts as the - central registry for volumes type: string tenant: - description: tenant owning the given Quobyte - volume in the Backend Used with dynamically - provisioned Quobyte volumes, value is set - by the plugin type: string user: - description: user to map volume access to Defaults - to serivceaccount user type: string volume: - description: volume is a string that references - an already created Quobyte volume by name. type: string required: - registry - volume type: object rbd: - description: 'rbd represents a Rados Block Device - mount on the host that shares a pod''s lifetime. - More info: https://examples.k8s.io/volumes/rbd/README.md' properties: fsType: - description: 'fsType is the filesystem type - of the volume that you want to mount. Tip: - Ensure that the filesystem type is supported - by the host operating system. Examples: "ext4", - "xfs", "ntfs". Implicitly inferred to be "ext4" - if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string image: - description: 'image is the rados image name. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string keyring: - description: 'keyring is the path to key ring - for RBDUser. Default is /etc/ceph/keyring. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string monitors: - description: 'monitors is a collection of Ceph - monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic pool: - description: 'pool is the rados pool name. Default - is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string readOnly: - description: 'readOnly here will force the ReadOnly - setting in VolumeMounts. Defaults to false. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: boolean secretRef: - description: 'secretRef is name of the authentication - secret for RBDUser. If provided overrides - keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type with - an empty value here are almost certainly - wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is the rados user name. Default - is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string required: - image - monitors type: object scaleIO: - description: scaleIO represents a ScaleIO persistent - volume attached and mounted on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem type to - mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Default is "xfs". type: string gateway: - description: gateway is the host address of - the ScaleIO API Gateway. type: string protectionDomain: - description: protectionDomain is the name of - the ScaleIO Protection Domain for the configured - storage. type: string readOnly: - description: readOnly Defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean secretRef: - description: secretRef references to the secret - for ScaleIO user and other sensitive information. - If this is not provided, Login operation will - fail. properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type with - an empty value here are almost certainly - wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic sslEnabled: - description: sslEnabled Flag enable/disable - SSL communication with Gateway, default false type: boolean storageMode: - description: storageMode indicates whether the - storage for a volume should be ThickProvisioned - or ThinProvisioned. Default is ThinProvisioned. type: string storagePool: - description: storagePool is the ScaleIO Storage - Pool associated with the protection domain. type: string system: - description: system is the name of the storage - system as configured in ScaleIO. type: string volumeName: - description: volumeName is the name of a volume - already created in the ScaleIO system that - is associated with this volume source. type: string required: - gateway @@ -12675,63 +5181,19 @@ spec: - system type: object secret: - description: 'secret represents a secret that should - populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' properties: defaultMode: - description: 'defaultMode is Optional: mode - bits used to set permissions on created files - by default. Must be an octal value between - 0000 and 0777 or a decimal value between 0 - and 511. YAML accepts both octal and decimal - values, JSON requires decimal values for mode - bits. Defaults to 0644. Directories within - the path are not affected by this setting. - This might be in conflict with other options - that affect the file mode, like fsGroup, and - the result can be other mode bits set.' format: int32 type: integer items: - description: items If unspecified, each key-value - pair in the Data field of the referenced Secret - will be projected into the volume as a file - whose name is the key and content is the value. - If specified, the listed keys will be projected - into the specified paths, and unlisted keys - will not be present. If a key is specified - which is not present in the Secret, the volume - setup will error unless it is marked optional. - Paths must be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key to a path within - a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: mode bits - used to set permissions on this file. - Must be an octal value between 0000 - and 0777 or a decimal value between - 0 and 511. YAML accepts both octal and - decimal values, JSON requires decimal - values for mode bits. If not specified, - the volume defaultMode will be used. - This might be in conflict with other - options that affect the file mode, like - fsGroup, and the result can be other - mode bits set.' format: int32 type: integer path: - description: path is the relative path - of the file to map the key to. May not - be an absolute path. May not contain - the path element '..'. May not start - with the string '..'. type: string required: - key @@ -12740,91 +5202,37 @@ spec: type: array x-kubernetes-list-type: atomic optional: - description: optional field specify whether - the Secret or its keys must be defined type: boolean secretName: - description: 'secretName is the name of the - secret in the pod''s namespace to use. More - info: https://kubernetes.io/docs/concepts/storage/volumes#secret' type: string type: object storageos: - description: storageOS represents a StorageOS volume - attached and mounted on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem type to - mount. Must be a filesystem type supported - by the host operating system. Ex. "ext4", - "xfs", "ntfs". Implicitly inferred to be "ext4" - if unspecified. type: string readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean secretRef: - description: secretRef specifies the secret - to use for obtaining the StorageOS API credentials. If - not specified, default values will be attempted. properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type with - an empty value here are almost certainly - wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeName: - description: volumeName is the human-readable - name of the StorageOS volume. Volume names - are only unique within a namespace. type: string volumeNamespace: - description: volumeNamespace specifies the scope - of the volume within StorageOS. If no namespace - is specified then the Pod's namespace will - be used. This allows the Kubernetes name - scoping to be mirrored within StorageOS for - tighter integration. Set VolumeName to any - name to override the default behaviour. Set - to "default" if you are not using namespaces - within StorageOS. Namespaces that do not pre-exist - within StorageOS will be created. type: string type: object vsphereVolume: - description: vsphereVolume represents a vSphere - volume attached and mounted on kubelets host machine properties: fsType: - description: fsType is filesystem type to mount. - Must be a filesystem type supported by the - host operating system. Ex. "ext4", "xfs", - "ntfs". Implicitly inferred to be "ext4" if - unspecified. type: string storagePolicyID: - description: storagePolicyID is the storage - Policy Based Management (SPBM) profile ID - associated with the StoragePolicyName. type: string storagePolicyName: - description: storagePolicyName is the storage - Policy Based Management (SPBM) profile name. type: string volumePath: - description: volumePath is the path that identifies - vSphere volume vmdk type: string required: - volumePath @@ -12835,126 +5243,61 @@ spec: type: array type: object variables: - description: Variables specifies a list of variables and their - sources that will be used to resolve the task. items: - description: EnvVar represents an environment variable present - in a Container. properties: name: - description: Name of the environment variable. Must - be a C_IDENTIFIER. type: string value: - description: 'Variable references $(VAR_NAME) are expanded - using the previously defined environment variables - in the container and any service environment variables. - If a variable cannot be resolved, the reference in - the input string will be unchanged. Double $$ are - reduced to a single $, which allows for escaping the - $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce - the string literal "$(VAR_NAME)". Escaped references - will never be expanded, regardless of whether the - variable exists or not. Defaults to "".' type: string valueFrom: - description: Source for the environment variable's value. - Cannot be used if value is not empty. properties: configMapKeyRef: - description: Selects a key of a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap or - its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field of the pod: supports - metadata.name, metadata.namespace, `metadata.labels['''']`, - `metadata.annotations['''']`, spec.nodeName, - spec.serviceAccountName, status.hostIP, status.podIP, - status.podIPs.' properties: apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". type: string fieldPath: - description: Path of the field to select in - the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource of the container: - only resources limits and requests (limits.cpu, - limits.memory, limits.ephemeral-storage, requests.cpu, - requests.memory and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: required for volumes, - optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output format of - the exposed resources, defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource to select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret in the pod's - namespace properties: key: - description: The key of the secret to select - from. Must be a valid secret key. type: string name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret or its - key must be defined type: boolean required: - key @@ -12969,256 +5312,125 @@ spec: type: array type: object dataSource: - description: DataSource specifies the information about the data that - will be restored properties: components: - description: Components specifies the components that will be restored. - If you keep this field empty, then all the components that were - backed up in the desired Snapshot will be restored. items: type: string type: array encryptionSecret: - description: EncryptionSecret refers to the Secret containing the - encryption key which will be used to encode/decode the backed - up data. You can refer to a Secret of a different namespace. If - you don't provide the namespace field, KubeStash will look for - the Secret in the same namespace as the RestoreSession. properties: name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string required: - name type: object namespace: - description: Namespace specifies the namespace of the DataSource - (i.e. Repository, Snapshot). type: string pitr: - description: PITR stands for Point-In-Time Recovery. You can provide - a target time instead of specifying a particular Snapshot. KubeStash - will automatically find the latest Snapshot that satisfies the - targeted time and restore it. properties: exclusive: - description: Exclusive specifies whether to exclude the Snapshot - that falls in the exact time specified in the `targetTime` - field. By default, KubeStash will select the Snapshot that - fall in the exact time. type: boolean targetTime: - description: TargetTime specifies the desired date and time - at which you want to roll back your application data format: date-time type: string type: object repository: - description: Repository points to the Repository name from which - the data will be restored type: string snapshot: - description: Snapshot specifies the Snapshot name that will be restored. - If you want to use Point-In-Time recovery option, don't specify - this field. Specify `pitr` field instead. type: string type: object hooks: - description: Hooks specifies the restore hooks that should be executed - before and/or after the restore. properties: postRestore: - description: PostRestore specifies a list of hooks that will be - executed after restore items: - description: HookInfo specifies the information about the backup/restore - hooks properties: executionPolicy: default: Always - description: 'ExecutionPolicy specifies when to execute the - hook. Valid values are: - "Always": KubeStash will execute - this hook no matter the backup/restore failed. This is the - default execution policy. - "OnSuccess": KubeStash will - execute this hook only if the backup/restore has succeeded. - - "OnFailure": KubeStash will execute this hook only if - the backup/restore has failed.' enum: - Always - OnSuccess - OnFailure type: string hookTemplate: - description: HookTemplate points to a HookTemplate CR that - will be used to execute the hook. You can refer to a HookTemplate - from other namespaces as long as your current namespace - is allowed by the `usagePolicy` in the respective HookTemplate. properties: name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string required: - name type: object maxRetry: - description: MaxRetry specifies how many times KubeStash should - retry the hook execution in case of failure. The default - value of this field is 0 which means no retry. format: int32 minimum: 0 type: integer name: - description: Name specifies a name for the hook type: string params: - description: Params specifies parameters for the hook. You - must provide the parameter in the HookTemplates desired - structure. type: object x-kubernetes-preserve-unknown-fields: true runtimeSettings: - description: RuntimeSettings specifies runtime configurations - for the hook executor Job. Use this field only for `Function` - type hook executor. properties: container: properties: env: - description: List of environment variables to set - in the container. Cannot be updated. items: - description: EnvVar represents an environment variable - present in a Container. properties: name: - description: Name of the environment variable. - Must be a C_IDENTIFIER. type: string value: - description: 'Variable references $(VAR_NAME) - are expanded using the previously defined - environment variables in the container and - any service environment variables. If a variable - cannot be resolved, the reference in the input - string will be unchanged. Double $$ are reduced - to a single $, which allows for escaping the - $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will - produce the string literal "$(VAR_NAME)". - Escaped references will never be expanded, - regardless of whether the variable exists - or not. Defaults to "".' type: string valueFrom: - description: Source for the environment variable's - value. Cannot be used if value is not empty. properties: configMapKeyRef: - description: Selects a key of a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value here - are almost certainly wrong. TODO: - Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap - or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field of the pod: - supports metadata.name, metadata.namespace, - `metadata.labels['''']`, `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, - status.hostIP, status.podIP, status.podIPs.' properties: apiVersion: - description: Version of the schema the - FieldPath is written in terms of, - defaults to "v1". type: string fieldPath: - description: Path of the field to select - in the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource of the - container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, - requests.cpu, requests.memory and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: required - for volumes, optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output format - of the exposed resources, defaults - to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource to - select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret in - the pod's namespace properties: key: - description: The key of the secret to - select from. Must be a valid secret - key. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value here - are almost certainly wrong. TODO: - Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret - or its key must be defined type: boolean required: - key @@ -13230,70 +5442,31 @@ spec: type: object type: array envFrom: - description: List of sources to populate environment - variables in the container. The keys defined within - a source must be a C_IDENTIFIER. All invalid keys - will be reported as an event when the container - is starting. When a key exists in multiple sources, - the value associated with the last source will take - precedence. Values defined by an Env with a duplicate - key will take precedence. Cannot be updated. items: - description: EnvFromSource represents the source - of a set of ConfigMaps properties: configMapRef: - description: The ConfigMap to select from properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type with - an empty value here are almost certainly - wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap - must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: - description: An optional identifier to prepend - to each key in the ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: - description: The Secret to select from properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type with - an empty value here are almost certainly - wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret - must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array ionice: - description: 'Settings to configure `ionice` to throttle - the load on disk. More info: http://kennystechtalk.blogspot.com/2015/04/throttling-cpu-usage-with-linux-cgroups.html - More info: https://oakbytes.wordpress.com/2012/06/06/linux-scheduler-cfs-and-nice/' properties: class: format: int32 @@ -13303,64 +5476,27 @@ spec: type: integer type: object lifecycle: - description: Actions that the management system should - take in response to container lifecycle events. - Cannot be updated. properties: postStart: - description: 'PostStart is called immediately - after a container is created. If the handler - fails, the container is terminated and restarted - according to its restart policy. Other management - of the container blocks until the hook completes. - More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action to - take. properties: command: - description: Command is the command line - to execute inside the container, the - working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it is - not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to explicitly - call out to that shell. Exit status - of 0 is treated as live/healthy and - non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http request - to perform. properties: host: - description: Host name to connect to, - defaults to the pod IP. You probably - want to set "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated headers. items: - description: HTTPHeader describes a - custom header to be used in HTTP probes properties: name: - description: The header field name. - This will be canonicalized upon - output, so case-variant names - will be understood as the same - header. type: string value: - description: The header field value type: string required: - name @@ -13369,125 +5505,58 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP - server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration - that the container should sleep before being - terminated. properties: seconds: - description: Seconds is the number of - seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is NOT - supported as a LifecycleHandler and kept - for the backward compatibility. There are - no validation of this field and lifecycle - hooks will fail in runtime when tcp handler - is specified. properties: host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object type: object preStop: - description: 'PreStop is called immediately before - a container is terminated due to an API request - or management event such as liveness/startup - probe failure, preemption, resource contention, - etc. The handler is not called if the container - crashes or exits. The Pod''s termination grace - period countdown begins before the PreStop hook - is executed. Regardless of the outcome of the - handler, the container will eventually terminate - within the Pod''s termination grace period (unless - delayed by finalizers). Other management of - the container blocks until the hook completes - or until the termination grace period is reached. - More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action to - take. properties: command: - description: Command is the command line - to execute inside the container, the - working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it is - not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to explicitly - call out to that shell. Exit status - of 0 is treated as live/healthy and - non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http request - to perform. properties: host: - description: Host name to connect to, - defaults to the pod IP. You probably - want to set "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated headers. items: - description: HTTPHeader describes a - custom header to be used in HTTP probes properties: name: - description: The header field name. - This will be canonicalized upon - output, so case-variant names - will be understood as the same - header. type: string value: - description: The header field value type: string required: - name @@ -13496,58 +5565,33 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP - server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration - that the container should sleep before being - terminated. properties: seconds: - description: Seconds is the number of - seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is NOT - supported as a LifecycleHandler and kept - for the backward compatibility. There are - no validation of this field and lifecycle - hooks will fail in runtime when tcp handler - is specified. properties: host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port @@ -13555,78 +5599,38 @@ spec: type: object type: object livenessProbe: - description: 'Periodic probe of container liveness. - Container will be restarted if the probe fails. - Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to take. properties: command: - description: Command is the command line to - execute inside the container, the working - directory for the command is root ('/') - in the container's filesystem. The command - is simply exec'd, it is not run inside a - shell, so traditional shell instructions - ('|', etc) won't work. To use a shell, you - need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures for - the probe to be considered failed after having - succeeded. Defaults to 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving - a GRPC port. properties: port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name of the service - to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default - behavior is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http request - to perform. properties: host: - description: Host name to connect to, defaults - to the pod IP. You probably want to set - "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in the - request. HTTP allows repeated headers. items: - description: HTTPHeader describes a custom - header to be used in HTTP probes properties: name: - description: The header field name. - This will be canonicalized upon output, - so case-variant names will be understood - as the same header. type: string value: - description: The header field value type: string required: - name @@ -13635,173 +5639,84 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port to - access on the container. Number must be - in the range 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the container - has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform - the probe. Default to 10 seconds. Minimum value - is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes for - the probe to be considered successful after - having failed. Defaults to 1. Must be 1 for - liveness and startup. Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. properties: host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port to - access on the container. Number must be - in the range 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds the - pod needs to terminate gracefully upon probe - failure. The grace period is the duration in - seconds after the processes running in the pod - are sent a termination signal and the time when - the processes are forcibly halted with a kill - signal. Set this value longer than the expected - cleanup time for your process. If this value - is nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value overrides - the value provided by the pod spec. Value must - be non-negative integer. The value zero indicates - stop immediately via the kill signal (no opportunity - to shut down). This is a beta field and requires - enabling ProbeTerminationGracePeriod feature - gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which the - probe times out. Defaults to 1 second. Minimum - value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object nice: - description: 'Settings to configure `nice` to throttle - the load on cpu. More info: http://kennystechtalk.blogspot.com/2015/04/throttling-cpu-usage-with-linux-cgroups.html - More info: https://oakbytes.wordpress.com/2012/06/06/linux-scheduler-cfs-and-nice/' properties: adjustment: format: int32 type: integer type: object readinessProbe: - description: 'Periodic probe of container service - readiness. Container will be removed from service - endpoints if the probe fails. Cannot be updated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to take. properties: command: - description: Command is the command line to - execute inside the container, the working - directory for the command is root ('/') - in the container's filesystem. The command - is simply exec'd, it is not run inside a - shell, so traditional shell instructions - ('|', etc) won't work. To use a shell, you - need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures for - the probe to be considered failed after having - succeeded. Defaults to 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving - a GRPC port. properties: port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name of the service - to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default - behavior is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http request - to perform. properties: host: - description: Host name to connect to, defaults - to the pod IP. You probably want to set - "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in the - request. HTTP allows repeated headers. items: - description: HTTPHeader describes a custom - header to be used in HTTP probes properties: name: - description: The header field name. - This will be canonicalized upon output, - so case-variant names will be understood - as the same header. type: string value: - description: The header field value type: string required: - name @@ -13810,110 +5725,51 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port to - access on the container. Number must be - in the range 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the container - has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform - the probe. Default to 10 seconds. Minimum value - is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes for - the probe to be considered successful after - having failed. Defaults to 1. Must be 1 for - liveness and startup. Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. properties: host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port to - access on the container. Number must be - in the range 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds the - pod needs to terminate gracefully upon probe - failure. The grace period is the duration in - seconds after the processes running in the pod - are sent a termination signal and the time when - the processes are forcibly halted with a kill - signal. Set this value longer than the expected - cleanup time for your process. If this value - is nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value overrides - the value provided by the pod spec. Value must - be non-negative integer. The value zero indicates - stop immediately via the kill signal (no opportunity - to shut down). This is a beta field and requires - enabling ProbeTerminationGracePeriod feature - gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which the - probe times out. Defaults to 1 second. Minimum - value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object resources: - description: 'Compute Resources required by container. - Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' properties: claims: - description: "Claims lists the names of resources, - defined in spec.resourceClaims, that are used - by this container. \n This is an alpha field - and requires enabling the DynamicResourceAllocation - feature gate. \n This field is immutable. It - can only be set for containers." items: - description: ResourceClaim references one entry - in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of - one entry in pod.spec.resourceClaims of - the Pod where this field is used. It makes - that resource available inside a container. type: string required: - name @@ -13929,8 +5785,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount - of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -13939,230 +5793,77 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount - of compute resources required. If Requests is - omitted for a container, it defaults to Limits - if that is explicitly specified, otherwise to - an implementation-defined value. Requests cannot - exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object securityContext: - description: 'Security options the pod should run - with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: allowPrivilegeEscalation: - description: 'AllowPrivilegeEscalation controls - whether a process can gain more privileges than - its parent process. This bool directly controls - if the no_new_privs flag will be set on the - container process. AllowPrivilegeEscalation - is true always when the container is: 1) run - as Privileged 2) has CAP_SYS_ADMIN Note that - this field cannot be set when spec.os.name is - windows.' type: boolean appArmorProfile: - description: appArmorProfile is the AppArmor options - to use by this container. If set, this profile - overrides the pod's appArmorProfile. Note that - this field cannot be set when spec.os.name is - windows. properties: localhostProfile: - description: localhostProfile indicates a - profile loaded on the node that should be - used. The profile must be preconfigured - on the node to work. Must match the loaded - name of the profile. Must be set if and - only if type is "Localhost". type: string type: - description: 'type indicates which kind of - AppArmor profile will be applied. Valid - options are: Localhost - a profile pre-loaded - on the node. RuntimeDefault - the container - runtime''s default profile. Unconfined - - no AppArmor enforcement.' type: string required: - type type: object capabilities: - description: The capabilities to add/drop when - running containers. Defaults to the default - set of capabilities granted by the container - runtime. Note that this field cannot be set - when spec.os.name is windows. properties: add: - description: Added capabilities items: - description: Capability represent POSIX - capabilities type type: string type: array x-kubernetes-list-type: atomic drop: - description: Removed capabilities items: - description: Capability represent POSIX - capabilities type type: string type: array x-kubernetes-list-type: atomic type: object privileged: - description: Run container in privileged mode. - Processes in privileged containers are essentially - equivalent to root on the host. Defaults to - false. Note that this field cannot be set when - spec.os.name is windows. type: boolean procMount: - description: procMount denotes the type of proc - mount to use for the containers. The default - is DefaultProcMount which uses the container - runtime defaults for readonly paths and masked - paths. This requires the ProcMountType feature - flag to be enabled. Note that this field cannot - be set when spec.os.name is windows. type: string readOnlyRootFilesystem: - description: Whether this container has a read-only - root filesystem. Default is false. Note that - this field cannot be set when spec.os.name is - windows. type: boolean runAsGroup: - description: The GID to run the entrypoint of - the container process. Uses runtime default - if unset. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. Note that this field cannot be set - when spec.os.name is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container must - run as a non-root user. If true, the Kubelet - will validate the image at runtime to ensure - that it does not run as UID 0 (root) and fail - to start the container if it does. If unset - or false, no such validation will be performed. - May also be set in PodSecurityContext. If set - in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. type: boolean runAsUser: - description: The UID to run the entrypoint of - the container process. Defaults to user specified - in image metadata if unspecified. May also be - set in PodSecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. Note that - this field cannot be set when spec.os.name is - windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be applied - to the container. If unspecified, the container - runtime will allocate a random SELinux context - for each container. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. Note that this field cannot be set - when spec.os.name is windows. properties: level: - description: Level is SELinux level label - that applies to the container. type: string role: - description: Role is a SELinux role label - that applies to the container. type: string type: - description: Type is a SELinux type label - that applies to the container. type: string user: - description: User is a SELinux user label - that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to use by this - container. If seccomp options are provided at - both the pod & container level, the container - options override the pod options. Note that - this field cannot be set when spec.os.name is - windows. properties: localhostProfile: - description: localhostProfile indicates a - profile defined in a file on the node should - be used. The profile must be preconfigured - on the node to work. Must be a descending - path, relative to the kubelet's configured - seccomp profile location. Must be set if - type is "Localhost". Must NOT be set for - any other type. type: string type: - description: "type indicates which kind of - seccomp profile will be applied. Valid options - are: \n Localhost - a profile defined in - a file on the node should be used. RuntimeDefault - - the container runtime default profile - should be used. Unconfined - no profile - should be applied." type: string required: - type type: object windowsOptions: - description: The Windows specific settings applied - to all containers. If unspecified, the options - from the PodSecurityContext will be used. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. Note that this field cannot be set - when spec.os.name is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is where the - GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA credential - spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName is the - name of the GMSA credential spec to use. type: string hostProcess: - description: HostProcess determines if a container - should be run as a 'Host Process' container. - All of a Pod's containers must have the - same effective HostProcess value (it is - not allowed to have a mix of HostProcess - containers and non-HostProcess containers). - In addition, if HostProcess is true then - HostNetwork must also be set to true. type: boolean runAsUserName: - description: The UserName in Windows to run - the entrypoint of the container process. - Defaults to the user specified in image - metadata if unspecified. May also be set - in PodSecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. type: string type: object type: object @@ -14170,75 +5871,22 @@ spec: pod: properties: affinity: - description: If specified, the pod's scheduling constraints properties: nodeAffinity: - description: Describes node affinity scheduling - rules for the pod. properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer to - schedule pods to nodes that satisfy the - affinity expressions specified by this field, - but it may choose a node that violates one - or more of the expressions. The node that - is most preferred is the one with the greatest - sum of weights, i.e. for each node that - meets all of the scheduling requirements - (resource request, requiredDuringScheduling - affinity expressions, etc.), compute a sum - by iterating through the elements of this - field and adding "weight" to the sum if - the node matches the corresponding matchExpressions; - the node(s) with the highest sum are the - most preferred. items: - description: An empty preferred scheduling - term matches all objects with implicit - weight 0 (i.e. it's a no-op). A null preferred - scheduling term matches no objects (i.e. - is also a no-op). properties: preference: - description: A node selector term, associated - with the corresponding weight. properties: matchExpressions: - description: A list of node selector - requirements by node's labels. items: - description: A node selector requirement - is a selector that contains - values, a key, and an operator - that relates the key and values. properties: key: - description: The label key - that the selector applies - to. type: string operator: - description: Represents a - key's relationship to a - set of values. Valid operators - are In, NotIn, Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An array of string - values. If the operator - is In or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the values - array must be empty. If - the operator is Gt or Lt, - the values array must have - a single element, which - will be interpreted as an - integer. This array is replaced - during a strategic merge - patch. items: type: string type: array @@ -14250,41 +5898,13 @@ spec: type: array x-kubernetes-list-type: atomic matchFields: - description: A list of node selector - requirements by node's fields. items: - description: A node selector requirement - is a selector that contains - values, a key, and an operator - that relates the key and values. properties: key: - description: The label key - that the selector applies - to. type: string operator: - description: Represents a - key's relationship to a - set of values. Valid operators - are In, NotIn, Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An array of string - values. If the operator - is In or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the values - array must be empty. If - the operator is Gt or Lt, - the values array must have - a single element, which - will be interpreted as an - integer. This array is replaced - during a strategic merge - patch. items: type: string type: array @@ -14298,9 +5918,6 @@ spec: type: object x-kubernetes-map-type: atomic weight: - description: Weight associated with - matching the corresponding nodeSelectorTerm, - in the range 1-100. format: int32 type: integer required: @@ -14310,60 +5927,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements - specified by this field are not met at scheduling - time, the pod will not be scheduled onto - the node. If the affinity requirements specified - by this field cease to be met at some point - during pod execution (e.g. due to an update), - the system may or may not try to eventually - evict the pod from its node. properties: nodeSelectorTerms: - description: Required. A list of node - selector terms. The terms are ORed. items: - description: A null or empty node selector - term matches no objects. The requirements - of them are ANDed. The TopologySelectorTerm - type implements a subset of the NodeSelectorTerm. properties: matchExpressions: - description: A list of node selector - requirements by node's labels. items: - description: A node selector requirement - is a selector that contains - values, a key, and an operator - that relates the key and values. properties: key: - description: The label key - that the selector applies - to. type: string operator: - description: Represents a - key's relationship to a - set of values. Valid operators - are In, NotIn, Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An array of string - values. If the operator - is In or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the values - array must be empty. If - the operator is Gt or Lt, - the values array must have - a single element, which - will be interpreted as an - integer. This array is replaced - during a strategic merge - patch. items: type: string type: array @@ -14375,41 +5950,13 @@ spec: type: array x-kubernetes-list-type: atomic matchFields: - description: A list of node selector - requirements by node's fields. items: - description: A node selector requirement - is a selector that contains - values, a key, and an operator - that relates the key and values. properties: key: - description: The label key - that the selector applies - to. type: string operator: - description: Represents a - key's relationship to a - set of values. Valid operators - are In, NotIn, Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An array of string - values. If the operator - is In or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the values - array must be empty. If - the operator is Gt or Lt, - the values array must have - a single element, which - will be interpreted as an - integer. This array is replaced - during a strategic merge - patch. items: type: string type: array @@ -14430,79 +5977,22 @@ spec: x-kubernetes-map-type: atomic type: object podAffinity: - description: Describes pod affinity scheduling - rules (e.g. co-locate this pod in the same node, - zone, etc. as some other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer to - schedule pods to nodes that satisfy the - affinity expressions specified by this field, - but it may choose a node that violates one - or more of the expressions. The node that - is most preferred is the one with the greatest - sum of weights, i.e. for each node that - meets all of the scheduling requirements - (resource request, requiredDuringScheduling - affinity expressions, etc.), compute a sum - by iterating through the elements of this - field and adding "weight" to the sum if - the node has pods which matches the corresponding - podAffinityTerm; the node(s) with the highest - sum are the most preferred. items: - description: The weights of all of the matched - WeightedPodAffinityTerm fields are added - per-node to find the most preferred node(s) properties: podAffinityTerm: - description: Required. A pod affinity - term, associated with the corresponding - weight. properties: labelSelector: - description: A label query over - a set of resources, in this case - pods. If it's null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator - represents a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is - an array of string values. - If the operator is In - or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the - values array must be - empty. This array is - replaced during a strategic - merge patch. items: type: string type: array @@ -14516,120 +6006,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in the - matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is a - set of pod label keys to select - which pods will be taken into - consideration. The keys are used - to lookup values from the incoming - pod labels, those key-value labels - are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, matchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys is - a set of pod label keys to select - which pods will be taken into - consideration. The keys are used - to lookup values from the incoming - pod labels, those key-value labels - are merged with `labelSelector` - as `key notin (value)` to select - the group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over - the set of namespaces that the - term applies to. The term is applied - to the union of the namespaces - selected by this field and the - ones listed in the namespaces - field. null selector and null - or empty namespaces list means - "this pod's namespace". An empty - selector ({}) matches all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator - represents a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is - an array of string values. - If the operator is In - or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the - values array must be - empty. This array is - replaced during a strategic - merge patch. items: type: string type: array @@ -14643,53 +6042,20 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in the - matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace names - that the term applies to. The - term is applied to the union of - the namespaces listed in this - field and the ones selected by - namespaceSelector. null or empty - namespaces list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be - co-located (affinity) or not co-located - (anti-affinity) with the pods - matching the labelSelector in - the specified namespaces, where - co-located is defined as running - on a node whose value of the label - with key topologyKey matches that - of any node on which any of the - selected pods is running. Empty - topologyKey is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated with - matching the corresponding podAffinityTerm, - in the range 1-100. format: int32 type: integer required: @@ -14699,69 +6065,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements - specified by this field are not met at scheduling - time, the pod will not be scheduled onto - the node. If the affinity requirements specified - by this field cease to be met at some point - during pod execution (e.g. due to a pod - label update), the system may or may not - try to eventually evict the pod from its - node. When there are multiple elements, - the lists of nodes corresponding to each - podAffinityTerm are intersected, i.e. all - terms must be satisfied. items: - description: Defines a set of pods (namely - those matching the labelSelector relative - to the given namespace(s)) that this pod - should be co-located (affinity) or not - co-located (anti-affinity) with, where - co-located is defined as running on a - node whose value of the label with key - matches that of any node - on which a pod of the set of pods is running properties: labelSelector: - description: A label query over a set - of resources, in this case pods. If - it's null, this PodAffinityTerm matches - with no Pods. properties: matchExpressions: - description: matchExpressions is - a list of label selector requirements. - The requirements are ANDed. items: - description: A label selector - requirement is a selector that - contains values, a key, and - an operator that relates the - key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to - a set of values. Valid operators - are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an - array of string values. - If the operator is In or - NotIn, the values array - must be non-empty. If the - operator is Exists or DoesNotExist, - the values array must be - empty. This array is replaced - during a strategic merge - patch. items: type: string type: array @@ -14775,111 +6090,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map - of {key,value} pairs. A single - {key,value} in the matchLabels - map is equivalent to an element - of matchExpressions, whose key - field is "key", the operator is - "In", and the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is a set - of pod label keys to select which - pods will be taken into consideration. - The keys are used to lookup values - from the incoming pod labels, those - key-value labels are merged with `labelSelector` - as `key in (value)` to select the - group of existing pods which pods - will be taken into consideration for - the incoming pod's pod (anti) affinity. - Keys that don't exist in the incoming - pod labels will be ignored. The default - value is empty. The same key is forbidden - to exist in both matchLabelKeys and - labelSelector. Also, matchLabelKeys - cannot be set when labelSelector isn't - set. This is an alpha field and requires - enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys is a - set of pod label keys to select which - pods will be taken into consideration. - The keys are used to lookup values - from the incoming pod labels, those - key-value labels are merged with `labelSelector` - as `key notin (value)` to select the - group of existing pods which pods - will be taken into consideration for - the incoming pod's pod (anti) affinity. - Keys that don't exist in the incoming - pod labels will be ignored. The default - value is empty. The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector isn't - set. This is an alpha field and requires - enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over the - set of namespaces that the term applies - to. The term is applied to the union - of the namespaces selected by this - field and the ones listed in the namespaces - field. null selector and null or empty - namespaces list means "this pod's - namespace". An empty selector ({}) - matches all namespaces. properties: matchExpressions: - description: matchExpressions is - a list of label selector requirements. - The requirements are ANDed. items: - description: A label selector - requirement is a selector that - contains values, a key, and - an operator that relates the - key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to - a set of values. Valid operators - are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an - array of string values. - If the operator is In or - NotIn, the values array - must be non-empty. If the - operator is Exists or DoesNotExist, - the values array must be - empty. This array is replaced - during a strategic merge - patch. items: type: string type: array @@ -14893,42 +6126,15 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map - of {key,value} pairs. A single - {key,value} in the matchLabels - map is equivalent to an element - of matchExpressions, whose key - field is "key", the operator is - "In", and the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies a - static list of namespace names that - the term applies to. The term is applied - to the union of the namespaces listed - in this field and the ones selected - by namespaceSelector. null or empty - namespaces list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be co-located - (affinity) or not co-located (anti-affinity) - with the pods matching the labelSelector - in the specified namespaces, where - co-located is defined as running on - a node whose value of the label with - key topologyKey matches that of any - node on which any of the selected - pods is running. Empty topologyKey - is not allowed. type: string required: - topologyKey @@ -14937,79 +6143,22 @@ spec: x-kubernetes-list-type: atomic type: object podAntiAffinity: - description: Describes pod anti-affinity scheduling - rules (e.g. avoid putting this pod in the same - node, zone, etc. as some other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer to - schedule pods to nodes that satisfy the - anti-affinity expressions specified by this - field, but it may choose a node that violates - one or more of the expressions. The node - that is most preferred is the one with the - greatest sum of weights, i.e. for each node - that meets all of the scheduling requirements - (resource request, requiredDuringScheduling - anti-affinity expressions, etc.), compute - a sum by iterating through the elements - of this field and adding "weight" to the - sum if the node has pods which matches the - corresponding podAffinityTerm; the node(s) - with the highest sum are the most preferred. items: - description: The weights of all of the matched - WeightedPodAffinityTerm fields are added - per-node to find the most preferred node(s) properties: podAffinityTerm: - description: Required. A pod affinity - term, associated with the corresponding - weight. properties: labelSelector: - description: A label query over - a set of resources, in this case - pods. If it's null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator - represents a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is - an array of string values. - If the operator is In - or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the - values array must be - empty. This array is - replaced during a strategic - merge patch. items: type: string type: array @@ -15023,120 +6172,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in the - matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is a - set of pod label keys to select - which pods will be taken into - consideration. The keys are used - to lookup values from the incoming - pod labels, those key-value labels - are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, matchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys is - a set of pod label keys to select - which pods will be taken into - consideration. The keys are used - to lookup values from the incoming - pod labels, those key-value labels - are merged with `labelSelector` - as `key notin (value)` to select - the group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over - the set of namespaces that the - term applies to. The term is applied - to the union of the namespaces - selected by this field and the - ones listed in the namespaces - field. null selector and null - or empty namespaces list means - "this pod's namespace". An empty - selector ({}) matches all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator - represents a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is - an array of string values. - If the operator is In - or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the - values array must be - empty. This array is - replaced during a strategic - merge patch. items: type: string type: array @@ -15150,53 +6208,20 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in the - matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace names - that the term applies to. The - term is applied to the union of - the namespaces listed in this - field and the ones selected by - namespaceSelector. null or empty - namespaces list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be - co-located (affinity) or not co-located - (anti-affinity) with the pods - matching the labelSelector in - the specified namespaces, where - co-located is defined as running - on a node whose value of the label - with key topologyKey matches that - of any node on which any of the - selected pods is running. Empty - topologyKey is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated with - matching the corresponding podAffinityTerm, - in the range 1-100. format: int32 type: integer required: @@ -15206,69 +6231,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the anti-affinity requirements - specified by this field are not met at scheduling - time, the pod will not be scheduled onto - the node. If the anti-affinity requirements - specified by this field cease to be met - at some point during pod execution (e.g. - due to a pod label update), the system may - or may not try to eventually evict the pod - from its node. When there are multiple elements, - the lists of nodes corresponding to each - podAffinityTerm are intersected, i.e. all - terms must be satisfied. items: - description: Defines a set of pods (namely - those matching the labelSelector relative - to the given namespace(s)) that this pod - should be co-located (affinity) or not - co-located (anti-affinity) with, where - co-located is defined as running on a - node whose value of the label with key - matches that of any node - on which a pod of the set of pods is running properties: labelSelector: - description: A label query over a set - of resources, in this case pods. If - it's null, this PodAffinityTerm matches - with no Pods. properties: matchExpressions: - description: matchExpressions is - a list of label selector requirements. - The requirements are ANDed. items: - description: A label selector - requirement is a selector that - contains values, a key, and - an operator that relates the - key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to - a set of values. Valid operators - are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an - array of string values. - If the operator is In or - NotIn, the values array - must be non-empty. If the - operator is Exists or DoesNotExist, - the values array must be - empty. This array is replaced - during a strategic merge - patch. items: type: string type: array @@ -15282,111 +6256,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map - of {key,value} pairs. A single - {key,value} in the matchLabels - map is equivalent to an element - of matchExpressions, whose key - field is "key", the operator is - "In", and the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is a set - of pod label keys to select which - pods will be taken into consideration. - The keys are used to lookup values - from the incoming pod labels, those - key-value labels are merged with `labelSelector` - as `key in (value)` to select the - group of existing pods which pods - will be taken into consideration for - the incoming pod's pod (anti) affinity. - Keys that don't exist in the incoming - pod labels will be ignored. The default - value is empty. The same key is forbidden - to exist in both matchLabelKeys and - labelSelector. Also, matchLabelKeys - cannot be set when labelSelector isn't - set. This is an alpha field and requires - enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys is a - set of pod label keys to select which - pods will be taken into consideration. - The keys are used to lookup values - from the incoming pod labels, those - key-value labels are merged with `labelSelector` - as `key notin (value)` to select the - group of existing pods which pods - will be taken into consideration for - the incoming pod's pod (anti) affinity. - Keys that don't exist in the incoming - pod labels will be ignored. The default - value is empty. The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector isn't - set. This is an alpha field and requires - enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over the - set of namespaces that the term applies - to. The term is applied to the union - of the namespaces selected by this - field and the ones listed in the namespaces - field. null selector and null or empty - namespaces list means "this pod's - namespace". An empty selector ({}) - matches all namespaces. properties: matchExpressions: - description: matchExpressions is - a list of label selector requirements. - The requirements are ANDed. items: - description: A label selector - requirement is a selector that - contains values, a key, and - an operator that relates the - key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to - a set of values. Valid operators - are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an - array of string values. - If the operator is In or - NotIn, the values array - must be non-empty. If the - operator is Exists or DoesNotExist, - the values array must be - empty. This array is replaced - during a strategic merge - patch. items: type: string type: array @@ -15400,42 +6292,15 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map - of {key,value} pairs. A single - {key,value} in the matchLabels - map is equivalent to an element - of matchExpressions, whose key - field is "key", the operator is - "In", and the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies a - static list of namespace names that - the term applies to. The term is applied - to the union of the namespaces listed - in this field and the ones selected - by namespaceSelector. null or empty - namespaces list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be co-located - (affinity) or not co-located (anti-affinity) - with the pods matching the labelSelector - in the specified namespaces, where - co-located is defined as running on - a node whose value of the label with - key topologyKey matches that of any - node on which any of the selected - pods is running. Empty topologyKey - is not allowed. type: string required: - topologyKey @@ -15445,300 +6310,106 @@ spec: type: object type: object automountServiceAccountToken: - description: AutomountServiceAccountToken indicates - whether a service account token should be automatically - mounted. type: boolean enableServiceLinks: - description: 'EnableServiceLinks indicates whether - information about services should be injected into - pod''s environment variables, matching the syntax - of Docker links. Optional: Defaults to true.' type: boolean imagePullSecrets: - description: 'ImagePullSecrets is an optional list - of references to secrets in the same namespace to - use for pulling any of the images used by this PodRuntimeSettings. - If specified, these secrets will be passed to individual - puller implementations for them to use. For example, - in the case of docker, only DockerConfig type secrets - are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod' items: - description: LocalObjectReference contains enough - information to let you locate the referenced object - inside the same namespace. properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic type: array nodeName: - description: NodeName is a request to schedule this - pod onto a specific node. If it is non-empty, the - scheduler simply schedules this pod onto that node, - assuming that it fits resource requirements. type: string nodeSelector: additionalProperties: type: string - description: 'NodeSelector is a selector which must - be true for the pod to fit on a node. Selector which - must match a node''s labels for the pod to be scheduled - on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/' type: object podAnnotations: additionalProperties: type: string - description: PodAnnotations are the annotations that - will be attached with the respective Pod type: object podLabels: additionalProperties: type: string - description: PodLabels are the labels that will be - attached with the respective Pod type: object priority: - description: The priority value. Various system components - use this field to find the priority of the pod. - When Priority Admission Controller is enabled, it - prevents users from setting this field. The admission - controller populates this field from PriorityClassName. - The higher the value, the higher the priority. format: int32 type: integer priorityClassName: - description: If specified, indicates the pod's priority. - "system-node-critical" and "system-cluster-critical" - are two special keywords which indicate the highest - priorities with the former being the highest priority. - Any other name must be defined by creating a PriorityClass - object with that name. If not specified, the pod - priority will be default or zero if there is no - default. type: string readinessGates: - description: 'If specified, all readiness gates will - be evaluated for pod readiness. A pod is ready when - all its containers are ready AND all conditions - specified in the readiness gates have status equal - to "True" More info: https://git.k8s.io/enhancements/keps/sig-network/0007-pod-ready%2B%2B.md' items: - description: PodReadinessGate contains the reference - to a pod condition properties: conditionType: - description: ConditionType refers to a condition - in the pod's condition list with matching - type. type: string required: - conditionType type: object type: array runtimeClassName: - description: 'RuntimeClassName refers to a RuntimeClass - object in the node.k8s.io group, which should be - used to run this pod. If no RuntimeClass resource - matches the named class, the pod will not be run. - If unset or empty, the "legacy" RuntimeClass will - be used, which is an implicit class with an empty - definition that uses the default runtime handler. - More info: https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md - This is an alpha feature and may change in the future.' type: string schedulerName: - description: If specified, the pod will be dispatched - by specified scheduler. If not specified, the pod - will be dispatched by default scheduler. type: string securityContext: - description: 'Security options the pod should run - with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: appArmorProfile: - description: appArmorProfile is the AppArmor options - to use by the containers in this pod. Note that - this field cannot be set when spec.os.name is - windows. properties: localhostProfile: - description: localhostProfile indicates a - profile loaded on the node that should be - used. The profile must be preconfigured - on the node to work. Must match the loaded - name of the profile. Must be set if and - only if type is "Localhost". type: string type: - description: 'type indicates which kind of - AppArmor profile will be applied. Valid - options are: Localhost - a profile pre-loaded - on the node. RuntimeDefault - the container - runtime''s default profile. Unconfined - - no AppArmor enforcement.' type: string required: - type type: object fsGroup: - description: "A special supplemental group that - applies to all containers in a pod. Some volume - types allow the Kubelet to change the ownership - of that volume to be owned by the pod: \n 1. - The owning GID will be the FSGroup 2. The setgid - bit is set (new files created in the volume - will be owned by FSGroup) 3. The permission - bits are OR'd with rw-rw---- \n If unset, the - Kubelet will not modify the ownership and permissions - of any volume. Note that this field cannot be - set when spec.os.name is windows." format: int64 type: integer fsGroupChangePolicy: - description: 'fsGroupChangePolicy defines behavior - of changing ownership and permission of the - volume before being exposed inside Pod. This - field will only apply to volume types which - support fsGroup based ownership(and permissions). - It will have no effect on ephemeral volume types - such as: secret, configmaps and emptydir. Valid - values are "OnRootMismatch" and "Always". If - not specified, "Always" is used. Note that this - field cannot be set when spec.os.name is windows.' type: string runAsGroup: - description: The GID to run the entrypoint of - the container process. Uses runtime default - if unset. May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence for that container. Note that this - field cannot be set when spec.os.name is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container must - run as a non-root user. If true, the Kubelet - will validate the image at runtime to ensure - that it does not run as UID 0 (root) and fail - to start the container if it does. If unset - or false, no such validation will be performed. - May also be set in SecurityContext. If set - in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. type: boolean runAsUser: - description: The UID to run the entrypoint of - the container process. Defaults to user specified - in image metadata if unspecified. May also be - set in SecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence for that - container. Note that this field cannot be set - when spec.os.name is windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be applied - to all containers. If unspecified, the container - runtime will allocate a random SELinux context - for each container. May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence for that container. Note that this - field cannot be set when spec.os.name is windows. properties: level: - description: Level is SELinux level label - that applies to the container. type: string role: - description: Role is a SELinux role label - that applies to the container. type: string type: - description: Type is a SELinux type label - that applies to the container. type: string user: - description: User is a SELinux user label - that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to use by the - containers in this pod. Note that this field - cannot be set when spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates a - profile defined in a file on the node should - be used. The profile must be preconfigured - on the node to work. Must be a descending - path, relative to the kubelet's configured - seccomp profile location. Must be set if - type is "Localhost". Must NOT be set for - any other type. type: string type: - description: "type indicates which kind of - seccomp profile will be applied. Valid options - are: \n Localhost - a profile defined in - a file on the node should be used. RuntimeDefault - - the container runtime default profile - should be used. Unconfined - no profile - should be applied." type: string required: - type type: object supplementalGroups: - description: A list of groups applied to the first - process run in each container, in addition to - the container's primary GID, the fsGroup (if - specified), and group memberships defined in - the container image for the uid of the container - process. If unspecified, no additional groups - are added to any container. Note that group - memberships defined in the container image for - the uid of the container process are still effective, - even if they are not included in this list. - Note that this field cannot be set when spec.os.name - is windows. items: format: int64 type: integer type: array x-kubernetes-list-type: atomic sysctls: - description: Sysctls hold a list of namespaced - sysctls used for the pod. Pods with unsupported - sysctls (by the container runtime) might fail - to launch. Note that this field cannot be set - when spec.os.name is windows. items: - description: Sysctl defines a kernel parameter - to be set properties: name: - description: Name of a property to set type: string value: - description: Value of a property to set type: string required: - name @@ -15747,149 +6418,52 @@ spec: type: array x-kubernetes-list-type: atomic windowsOptions: - description: The Windows specific settings applied - to all containers. If unspecified, the options - within a container's SecurityContext will be - used. If set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. Note that this field cannot be set - when spec.os.name is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is where the - GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA credential - spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName is the - name of the GMSA credential spec to use. type: string hostProcess: - description: HostProcess determines if a container - should be run as a 'Host Process' container. - All of a Pod's containers must have the - same effective HostProcess value (it is - not allowed to have a mix of HostProcess - containers and non-HostProcess containers). - In addition, if HostProcess is true then - HostNetwork must also be set to true. type: boolean runAsUserName: - description: The UserName in Windows to run - the entrypoint of the container process. - Defaults to the user specified in image - metadata if unspecified. May also be set - in PodSecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. type: string type: object type: object serviceAccountAnnotations: additionalProperties: type: string - description: ServiceAccountAnnotations are the annotations - that will be attached with the respective ServiceAccount type: object serviceAccountName: - description: 'ServiceAccountName is the name of the - ServiceAccount to use to run this pod. More info: - https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/' type: string tolerations: - description: If specified, the pod's tolerations. items: - description: The pod this Toleration is attached - to tolerates any taint that matches the triple - using the matching operator - . properties: effect: - description: Effect indicates the taint effect - to match. Empty means match all taint effects. - When specified, allowed values are NoSchedule, - PreferNoSchedule and NoExecute. type: string key: - description: Key is the taint key that the toleration - applies to. Empty means match all taint keys. - If the key is empty, operator must be Exists; - this combination means to match all values - and all keys. type: string operator: - description: Operator represents a key's relationship - to the value. Valid operators are Exists and - Equal. Defaults to Equal. Exists is equivalent - to wildcard for value, so that a pod can tolerate - all taints of a particular category. type: string tolerationSeconds: - description: TolerationSeconds represents the - period of time the toleration (which must - be of effect NoExecute, otherwise this field - is ignored) tolerates the taint. By default, - it is not set, which means tolerate the taint - forever (do not evict). Zero and negative - values will be treated as 0 (evict immediately) - by the system. format: int64 type: integer value: - description: Value is the taint value the toleration - matches to. If the operator is Exists, the - value should be empty, otherwise just a regular - string. type: string type: object type: array topologySpreadConstraints: - description: TopologySpreadConstraints describes how - a group of pods ought to spread across topology - domains. Scheduler will schedule pods in a way which - abides by the constraints. All topologySpreadConstraints - are ANDed. items: - description: TopologySpreadConstraint specifies - how to spread matching pods among the given topology. properties: labelSelector: - description: LabelSelector is used to find matching - pods. Pods that match this label selector - are counted to determine the number of pods - in their corresponding topology domain. properties: matchExpressions: - description: matchExpressions is a list - of label selector requirements. The requirements - are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label key - that the selector applies to. type: string operator: - description: operator represents a - key's relationship to a set of values. - Valid operators are In, NotIn, Exists - and DoesNotExist. type: string values: - description: values is an array of - string values. If the operator is - In or NotIn, the values array must - be non-empty. If the operator is - Exists or DoesNotExist, the values - array must be empty. This array - is replaced during a strategic merge - patch. items: type: string type: array @@ -15903,156 +6477,27 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: "MatchLabelKeys is a set of pod - label keys to select the pods over which spreading - will be calculated. The keys are used to lookup - values from the incoming pod labels, those - key-value labels are ANDed with labelSelector - to select the group of existing pods over - which spreading will be calculated for the - incoming pod. The same key is forbidden to - exist in both MatchLabelKeys and LabelSelector. - MatchLabelKeys cannot be set when LabelSelector - isn't set. Keys that don't exist in the incoming - pod labels will be ignored. A null or empty - list means only match against labelSelector. - \n This is a beta field and requires the MatchLabelKeysInPodTopologySpread - feature gate to be enabled (enabled by default)." items: type: string type: array x-kubernetes-list-type: atomic maxSkew: - description: 'MaxSkew describes the degree to - which pods may be unevenly distributed. When - `whenUnsatisfiable=DoNotSchedule`, it is the - maximum permitted difference between the number - of matching pods in the target topology and - the global minimum. The global minimum is - the minimum number of matching pods in an - eligible domain or zero if the number of eligible - domains is less than MinDomains. For example, - in a 3-zone cluster, MaxSkew is set to 1, - and pods with the same labelSelector spread - as 2/2/1: In this case, the global minimum - is 1. | zone1 | zone2 | zone3 | | P P | P - P | P | - if MaxSkew is 1, incoming pod - can only be scheduled to zone3 to become 2/2/2; - scheduling it onto zone1(zone2) would make - the ActualSkew(3-1) on zone1(zone2) violate - MaxSkew(1). - if MaxSkew is 2, incoming pod - can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, - it is used to give higher precedence to topologies - that satisfy it. It''s a required field. Default - value is 1 and 0 is not allowed.' format: int32 type: integer minDomains: - description: "MinDomains indicates a minimum - number of eligible domains. When the number - of eligible domains with matching topology - keys is less than minDomains, Pod Topology - Spread treats \"global minimum\" as 0, and - then the calculation of Skew is performed. - And when the number of eligible domains with - matching topology keys equals or greater than - minDomains, this value has no effect on scheduling. - As a result, when the number of eligible domains - is less than minDomains, scheduler won't schedule - more than maxSkew Pods to those domains. If - value is nil, the constraint behaves as if - MinDomains is equal to 1. Valid values are - integers greater than 0. When value is not - nil, WhenUnsatisfiable must be DoNotSchedule. - \n For example, in a 3-zone cluster, MaxSkew - is set to 2, MinDomains is set to 5 and pods - with the same labelSelector spread as 2/2/2: - | zone1 | zone2 | zone3 | | P P | P P | - \ P P | The number of domains is less than - 5(MinDomains), so \"global minimum\" is treated - as 0. In this situation, new pod with the - same labelSelector cannot be scheduled, because - computed skew will be 3(3 - 0) if new Pod - is scheduled to any of the three zones, it - will violate MaxSkew." format: int32 type: integer nodeAffinityPolicy: - description: "NodeAffinityPolicy indicates how - we will treat Pod's nodeAffinity/nodeSelector - when calculating pod topology spread skew. - Options are: - Honor: only nodes matching - nodeAffinity/nodeSelector are included in - the calculations. - Ignore: nodeAffinity/nodeSelector - are ignored. All nodes are included in the - calculations. \n If this value is nil, the - behavior is equivalent to the Honor policy. - This is a beta-level feature default enabled - by the NodeInclusionPolicyInPodTopologySpread - feature flag." type: string nodeTaintsPolicy: - description: "NodeTaintsPolicy indicates how - we will treat node taints when calculating - pod topology spread skew. Options are: - Honor: - nodes without taints, along with tainted nodes - for which the incoming pod has a toleration, - are included. - Ignore: node taints are ignored. - All nodes are included. \n If this value is - nil, the behavior is equivalent to the Ignore - policy. This is a beta-level feature default - enabled by the NodeInclusionPolicyInPodTopologySpread - feature flag." type: string topologyKey: - description: TopologyKey is the key of node - labels. Nodes that have a label with this - key and identical values are considered to - be in the same topology. We consider each - as a "bucket", and try to put - balanced number of pods into each bucket. - We define a domain as a particular instance - of a topology. Also, we define an eligible - domain as a domain whose nodes meet the requirements - of nodeAffinityPolicy and nodeTaintsPolicy. - e.g. If TopologyKey is "kubernetes.io/hostname", - each Node is a domain of that topology. And, - if TopologyKey is "topology.kubernetes.io/zone", - each zone is a domain of that topology. It's - a required field. type: string whenUnsatisfiable: - description: 'WhenUnsatisfiable indicates how - to deal with a pod if it doesn''t satisfy - the spread constraint. - DoNotSchedule (default) - tells the scheduler not to schedule it. - - ScheduleAnyway tells the scheduler to schedule - the pod in any location, but giving higher - precedence to topologies that would help reduce - the skew. A constraint is considered "Unsatisfiable" - for an incoming pod if and only if every possible - node assignment for that pod would violate - "MaxSkew" on some topology. For example, in - a 3-zone cluster, MaxSkew is set to 1, and - pods with the same labelSelector spread as - 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | - If WhenUnsatisfiable is set to DoNotSchedule, - incoming pod can only be scheduled to zone2(zone3) - to become 3/2/1(3/1/2) as ActualSkew(2-1) - on zone2(zone3) satisfies MaxSkew(1). In other - words, the cluster can still be imbalanced, - but scheduler won''t make it *more* imbalanced. - It''s a required field.' type: string required: - maxSkew @@ -16067,133 +6512,63 @@ spec: type: object type: object timeout: - description: Timeout specifies a duration in seconds that - KubeStash should wait for the hook execution to be completed. - If the hook execution does not finish within this time period, - KubeStash will consider this hook execution as failure. - Then, it will be re-tried according to MaxRetry policy. type: string variables: - description: Variables specifies a list of variables and their - sources that will be used to resolve the HookTemplate. items: - description: EnvVar represents an environment variable present - in a Container. properties: name: - description: Name of the environment variable. Must - be a C_IDENTIFIER. type: string value: - description: 'Variable references $(VAR_NAME) are expanded - using the previously defined environment variables - in the container and any service environment variables. - If a variable cannot be resolved, the reference in - the input string will be unchanged. Double $$ are - reduced to a single $, which allows for escaping the - $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce - the string literal "$(VAR_NAME)". Escaped references - will never be expanded, regardless of whether the - variable exists or not. Defaults to "".' type: string valueFrom: - description: Source for the environment variable's value. - Cannot be used if value is not empty. properties: configMapKeyRef: - description: Selects a key of a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap or - its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field of the pod: supports - metadata.name, metadata.namespace, `metadata.labels['''']`, - `metadata.annotations['''']`, spec.nodeName, - spec.serviceAccountName, status.hostIP, status.podIP, - status.podIPs.' properties: apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". type: string fieldPath: - description: Path of the field to select in - the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource of the container: - only resources limits and requests (limits.cpu, - limits.memory, limits.ephemeral-storage, requests.cpu, - requests.memory and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: required for volumes, - optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output format of - the exposed resources, defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource to select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret in the pod's - namespace properties: key: - description: The key of the secret to select - from. Must be a valid secret key. type: string name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret or its - key must be defined type: boolean required: - key @@ -16205,61 +6580,21 @@ spec: type: object type: array volumeMounts: - description: VolumeMounts specifies the mount for the volumes - specified in `Volumes` section Use this field only for `Function` - type hook executor. items: - description: VolumeMount describes a mounting of a Volume - within a container. properties: mountPath: - description: Path within the container at which the - volume should be mounted. Must not contain ':'. type: string mountPropagation: - description: mountPropagation determines how mounts - are propagated from the host to container and the - other way around. When not set, MountPropagationNone - is used. This field is beta in 1.10. When RecursiveReadOnly - is set to IfPossible or to Enabled, MountPropagation - must be None or unspecified (which defaults to None). type: string name: - description: This must match the Name of a Volume. type: string readOnly: - description: Mounted read-only if true, read-write otherwise - (false or unspecified). Defaults to false. type: boolean recursiveReadOnly: - description: "RecursiveReadOnly specifies whether read-only - mounts should be handled recursively. \n If ReadOnly - is false, this field has no meaning and must be unspecified. - \n If ReadOnly is true, and this field is set to Disabled, - the mount is not made recursively read-only. If this - field is set to IfPossible, the mount is made recursively - read-only, if it is supported by the container runtime. - \ If this field is set to Enabled, the mount is made - recursively read-only if it is supported by the container - runtime, otherwise the pod will not be started and - an error will be generated to indicate the reason. - \n If this field is set to IfPossible or Enabled, - MountPropagation must be set to None (or be unspecified, - which defaults to None). \n If this field is not specified, - it is treated as an equivalent of Disabled." type: string subPath: - description: Path within the volume from which the container's - volume should be mounted. Defaults to "" (volume's - root). type: string subPathExpr: - description: Expanded path within the volume from which - the container's volume should be mounted. Behaves - similarly to SubPath but environment variable references - $(VAR_NAME) are expanded using the container's environment. - Defaults to "" (volume's root). SubPathExpr and SubPath - are mutually exclusive. type: string required: - mountPath @@ -16267,257 +6602,109 @@ spec: type: object type: array volumes: - description: Volumes indicates the list of volumes of targeted - application that should be mounted on the hook executor. - Use this field only for `Function` type hook executor. items: - description: Volume represents a named volume in a pod that - may be accessed by any container in the pod. properties: awsElasticBlockStore: - description: 'awsElasticBlockStore represents an AWS - Disk resource that is attached to a kubelet''s host - machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' properties: fsType: - description: 'fsType is the filesystem type of the - volume that you want to mount. Tip: Ensure that - the filesystem type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string partition: - description: 'partition is the partition in the - volume that you want to mount. If omitted, the - default is to mount by volume name. Examples: - For volume /dev/sda1, you specify the partition - as "1". Similarly, the volume partition for /dev/sda - is "0" (or you can leave the property empty).' format: int32 type: integer readOnly: - description: 'readOnly value true will force the - readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: boolean volumeID: - description: 'volumeID is unique ID of the persistent - disk resource in AWS (Amazon EBS volume). More - info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: string required: - volumeID type: object azureDisk: - description: azureDisk represents an Azure Data Disk - mount on the host and bind mount to the pod. properties: cachingMode: - description: 'cachingMode is the Host Caching mode: - None, Read Only, Read Write.' type: string diskName: - description: diskName is the Name of the data disk - in the blob storage type: string diskURI: - description: diskURI is the URI of data disk in - the blob storage type: string fsType: - description: fsType is Filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string kind: - description: 'kind expected values are Shared: multiple - blob disks per storage account Dedicated: single - blob disk per storage account Managed: azure - managed data disk (only in managed availability - set). defaults to shared' type: string readOnly: - description: readOnly Defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean required: - diskName - diskURI type: object azureFile: - description: azureFile represents an Azure File Service - mount on the host and bind mount to the pod. properties: readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean secretName: - description: secretName is the name of secret that - contains Azure Storage Account Name and Key type: string shareName: - description: shareName is the azure share Name type: string required: - secretName - shareName type: object cephfs: - description: cephFS represents a Ceph FS mount on the - host that shares a pod's lifetime properties: monitors: - description: 'monitors is Required: Monitors is - a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic path: - description: 'path is Optional: Used as the mounted - root, rather than the full Ceph tree, default - is /' type: string readOnly: - description: 'readOnly is Optional: Defaults to - false (read/write). ReadOnly here will force the - ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: boolean secretFile: - description: 'secretFile is Optional: SecretFile - is the path to key ring for User, default is /etc/ceph/user.secret - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string secretRef: - description: 'secretRef is Optional: SecretRef is - reference to the authentication secret for User, - default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is optional: User is the rados - user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string required: - monitors type: object cinder: - description: 'cinder represents a cinder volume attached - and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' properties: fsType: - description: 'fsType is the filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if unspecified. - More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string readOnly: - description: 'readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: boolean secretRef: - description: 'secretRef is optional: points to a - secret object containing parameters used to connect - to OpenStack.' properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeID: - description: 'volumeID used to identify the volume - in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string required: - volumeID type: object configMap: - description: configMap represents a configMap that should - populate this volume properties: defaultMode: - description: 'defaultMode is optional: mode bits - used to set permissions on created files by default. - Must be an octal value between 0000 and 0777 or - a decimal value between 0 and 511. YAML accepts - both octal and decimal values, JSON requires decimal - values for mode bits. Defaults to 0644. Directories - within the path are not affected by this setting. - This might be in conflict with other options that - affect the file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer items: - description: items if unspecified, each key-value - pair in the Data field of the referenced ConfigMap - will be projected into the volume as a file whose - name is the key and content is the value. If specified, - the listed keys will be projected into the specified - paths, and unlisted keys will not be present. - If a key is specified which is not present in - the ConfigMap, the volume setup will error unless - it is marked optional. Paths must be relative - and may not contain the '..' path or start with - '..'. items: - description: Maps a string key to a path within - a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: mode bits - used to set permissions on this file. Must - be an octal value between 0000 and 0777 - or a decimal value between 0 and 511. YAML - accepts both octal and decimal values, JSON - requires decimal values for mode bits. If - not specified, the volume defaultMode will - be used. This might be in conflict with - other options that affect the file mode, - like fsGroup, and the result can be other - mode bits set.' format: int32 type: integer path: - description: path is the relative path of - the file to map the key to. May not be an - absolute path. May not contain the path - element '..'. May not start with the string - '..'. type: string required: - key @@ -16527,161 +6714,67 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. This field is - effectively required, but due to backwards compatibility - is allowed to be empty. Instances of this type - with an empty value here are almost certainly - wrong. TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether the ConfigMap - or its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic csi: - description: csi (Container Storage Interface) represents - ephemeral storage that is handled by certain external - CSI drivers (Beta feature). properties: driver: - description: driver is the name of the CSI driver - that handles this volume. Consult with your admin - for the correct name as registered in the cluster. type: string fsType: - description: fsType to mount. Ex. "ext4", "xfs", - "ntfs". If not provided, the empty value is passed - to the associated CSI driver which will determine - the default filesystem to apply. type: string nodePublishSecretRef: - description: nodePublishSecretRef is a reference - to the secret object containing sensitive information - to pass to the CSI driver to complete the CSI - NodePublishVolume and NodeUnpublishVolume calls. - This field is optional, and may be empty if no - secret is required. If the secret object contains - more than one secret, all secret references are - passed. properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic readOnly: - description: readOnly specifies a read-only configuration - for the volume. Defaults to false (read/write). type: boolean volumeAttributes: additionalProperties: type: string - description: volumeAttributes stores driver-specific - properties that are passed to the CSI driver. - Consult your driver's documentation for supported - values. type: object required: - driver type: object downwardAPI: - description: downwardAPI represents downward API about - the pod that should populate this volume properties: defaultMode: - description: 'Optional: mode bits to use on created - files by default. Must be a Optional: mode bits - used to set permissions on created files by default. - Must be an octal value between 0000 and 0777 or - a decimal value between 0 and 511. YAML accepts - both octal and decimal values, JSON requires decimal - values for mode bits. Defaults to 0644. Directories - within the path are not affected by this setting. - This might be in conflict with other options that - affect the file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer items: - description: Items is a list of downward API volume - file items: - description: DownwardAPIVolumeFile represents - information to create the file containing the - pod field properties: fieldRef: - description: 'Required: Selects a field of - the pod: only annotations, labels, name, - namespace and uid are supported.' properties: apiVersion: - description: Version of the schema the - FieldPath is written in terms of, defaults - to "v1". type: string fieldPath: - description: Path of the field to select - in the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode bits used to - set permissions on this file, must be an - octal value between 0000 and 0777 or a decimal - value between 0 and 511. YAML accepts both - octal and decimal values, JSON requires - decimal values for mode bits. If not specified, - the volume defaultMode will be used. This - might be in conflict with other options - that affect the file mode, like fsGroup, - and the result can be other mode bits set.' format: int32 type: integer path: - description: 'Required: Path is the relative - path name of the file to be created. Must - not be absolute or contain the ''..'' path. - Must be utf-8 encoded. The first item of - the relative path must not start with ''..''' type: string resourceFieldRef: - description: 'Selects a resource of the container: - only resources limits and requests (limits.cpu, - limits.memory, requests.cpu and requests.memory) - are currently supported.' properties: containerName: - description: 'Container name: required - for volumes, optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output format - of the exposed resources, defaults to - "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource to select' type: string required: - resource @@ -16694,195 +6787,50 @@ spec: x-kubernetes-list-type: atomic type: object emptyDir: - description: 'emptyDir represents a temporary directory - that shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' properties: medium: - description: 'medium represents what type of storage - medium should back this directory. The default - is "" which means to use the node''s default medium. - Must be an empty string (default) or Memory. More - info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' type: string sizeLimit: anyOf: - type: integer - type: string - description: 'sizeLimit is the total amount of local - storage required for this EmptyDir volume. The - size limit is also applicable for memory medium. - The maximum usage on memory medium EmptyDir would - be the minimum value between the SizeLimit specified - here and the sum of memory limits of all containers - in a pod. The default is nil which means that - the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object ephemeral: - description: "ephemeral represents a volume that is - handled by a cluster storage driver. The volume's - lifecycle is tied to the pod that defines it - it - will be created before the pod starts, and deleted - when the pod is removed. \n Use this if: a) the volume - is only needed while the pod runs, b) features of - normal volumes like restoring from snapshot or capacity - tracking are needed, c) the storage driver is specified - through a storage class, and d) the storage driver - supports dynamic volume provisioning through a PersistentVolumeClaim - (see EphemeralVolumeSource for more information on - the connection between this volume type and PersistentVolumeClaim). - \n Use PersistentVolumeClaim or one of the vendor-specific - APIs for volumes that persist for longer than the - lifecycle of an individual pod. \n Use CSI for light-weight - local ephemeral volumes if the CSI driver is meant - to be used that way - see the documentation of the - driver for more information. \n A pod can use both - types of ephemeral volumes and persistent volumes - at the same time." properties: volumeClaimTemplate: - description: "Will be used to create a stand-alone - PVC to provision the volume. The pod in which - this EphemeralVolumeSource is embedded will be - the owner of the PVC, i.e. the PVC will be deleted - together with the pod. The name of the PVC will - be `-` where `` - is the name from the `PodSpec.Volumes` array entry. - Pod validation will reject the pod if the concatenated - name is not valid for a PVC (for example, too - long). \n An existing PVC with that name that - is not owned by the pod will *not* be used for - the pod to avoid using an unrelated volume by - mistake. Starting the pod is then blocked until - the unrelated PVC is removed. If such a pre-created - PVC is meant to be used by the pod, the PVC has - to updated with an owner reference to the pod - once the pod exists. Normally this should not - be necessary, but it may be useful when manually - reconstructing a broken cluster. \n This field - is read-only and no changes will be made by Kubernetes - to the PVC after it has been created. \n Required, - must not be nil." properties: metadata: - description: May contain labels and annotations - that will be copied into the PVC when creating - it. No other fields are allowed and will be - rejected during validation. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured - key value map stored with a resource that - may be set by external tools to store - and retrieve arbitrary metadata. They - are not queryable and should be preserved - when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName is an optional - prefix, used by the server, to generate - a unique name ONLY IF the Name field has - not been provided. If this field is used, - the name returned to the client will be - different than the name passed. This value - will also be combined with a unique suffix. - The provided value has the same validation - rules as the Name field, and may be truncated - by the length of the suffix required to - make the value unique on the server. \n - If this field is specified and the generated - name exists, the server will NOT return - a 409 - instead, it will either return - 201 Created or 500 with Reason ServerTimeout - indicating a unique name could not be - found in the time allotted, and the client - should retry (optionally after the time - indicated in the Retry-After header). - \n Applied only if Name is not specified. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string keys and values - that can be used to organize and categorize - (scope and select) objects. May match - selectors of replication controllers and - services. More info: http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must be unique within - a namespace. Is required when creating - resources, although some resources may - allow a client to request the generation - of an appropriate name automatically. - Name is primarily intended for creation - idempotence and configuration definition. - Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace defines the space - within each name must be unique. An empty - namespace is equivalent to the \"default\" - namespace, but \"default\" is the canonical - representation. Not all objects are required - to be scoped to a namespace - the value - of this field for those objects will be - empty. \n Must be a DNS_LABEL. Cannot - be updated. More info: http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects depended by - this object. If ALL objects in the list - have been deleted, this object will be - garbage collected. If this object is managed - by a controller, then an entry in this - list will point to this controller, with - the controller field set to true. There - cannot be more than one managing controller. items: - description: OwnerReference contains enough - information to let you identify an owning - object. An owning object must be in - the same namespace as the dependent, - or be cluster-scoped, so there is no - namespace field. properties: apiVersion: - description: API version of the referent. type: string blockOwnerDeletion: - description: If true, AND if the owner - has the "foregroundDeletion" finalizer, - then the owner cannot be deleted - from the key-value store until this - reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage collector interacts - with this field and enforces the - foreground deletion. Defaults to - false. To set this field, a user - needs "delete" permission of the - owner, otherwise 422 (Unprocessable - Entity) will be returned. type: boolean controller: - description: If true, this reference - points to the managing controller. type: boolean kind: - description: 'Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -16894,52 +6842,19 @@ spec: type: array type: object spec: - description: The specification for the PersistentVolumeClaim. - The entire content is copied unchanged into - the PVC that gets created from this template. - The same fields as in a PersistentVolumeClaim - are also valid here. properties: accessModes: - description: 'accessModes contains the desired - access modes the volume should have. More - info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource field can be used - to specify either: * An existing VolumeSnapshot - object (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an external controller - can support the specified data source, - it will create a new volume based on the - contents of the specified data source. - When the AnyVolumeDataSource feature gate - is enabled, dataSource contents will be - copied to dataSourceRef, and dataSourceRef - contents will be copied to dataSource - when dataSourceRef.namespace is not specified. - If the namespace is specified, then dataSourceRef - will not be copied to dataSource.' properties: apiGroup: - description: APIGroup is the group for - the resource being referenced. If - APIGroup is not specified, the specified - Kind must be in the core API group. - For any other third-party types, APIGroup - is required. type: string kind: - description: Kind is the type of resource - being referenced type: string name: - description: Name is the name of resource - being referenced type: string required: - kind @@ -16947,85 +6862,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef specifies the - object from which to populate the volume - with data, if a non-empty volume is desired. - This may be any object from a non-empty - API group (non core object) or a PersistentVolumeClaim - object. When this field is specified, - volume binding will only succeed if the - type of the specified object matches some - installed volume populator or dynamic - provisioner. This field will replace the - functionality of the dataSource field - and as such if both fields are non-empty, - they must have the same value. For backwards - compatibility, when namespace isn''t specified - in dataSourceRef, both fields (dataSource - and dataSourceRef) will be set to the - same value automatically if one of them - is empty and the other is non-empty. When - namespace is specified in dataSourceRef, - dataSource isn''t set to the same value - and must be empty. There are three important - differences between dataSource and dataSourceRef: - * While dataSource only allows two specific - types of objects, dataSourceRef allows - any non-core object, as well as PersistentVolumeClaim - objects. * While dataSource ignores disallowed - values (dropping them), dataSourceRef - preserves all values, and generates an - error if a disallowed value is specified. - * While dataSource only allows local objects, - dataSourceRef allows objects in any namespaces. - (Beta) Using this field requires the AnyVolumeDataSource - feature gate to be enabled. (Alpha) Using - the namespace field of dataSourceRef requires - the CrossNamespaceVolumeDataSource feature - gate to be enabled.' properties: apiGroup: - description: APIGroup is the group for - the resource being referenced. If - APIGroup is not specified, the specified - Kind must be in the core API group. - For any other third-party types, APIGroup - is required. type: string kind: - description: Kind is the type of resource - being referenced type: string name: - description: Name is the name of resource - being referenced type: string namespace: - description: Namespace is the namespace - of resource being referenced Note - that when a namespace is specified, - a gateway.networking.k8s.io/ReferenceGrant - object is required in the referent - namespace to allow that namespace's - owner to accept the reference. See - the ReferenceGrant documentation for - details. (Alpha) This field requires - the CrossNamespaceVolumeDataSource - feature gate to be enabled. type: string required: - kind - name type: object resources: - description: 'resources represents the minimum - resources the volume should have. If RecoverVolumeExpansionFailure - feature is enabled users are allowed to - specify resource requirements that are - lower than previous value but must still - be higher than capacity recorded in the - status field of the claim. More info: - https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -17034,9 +6884,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum - amount of compute resources allowed. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -17045,50 +6892,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the - minimum amount of compute resources - required. If Requests is omitted for - a container, it defaults to Limits - if that is explicitly specified, otherwise - to an implementation-defined value. - Requests cannot exceed Limits. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is a label query over - volumes to consider for binding. properties: matchExpressions: - description: matchExpressions is a list - of label selector requirements. The - requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to a set - of values. Valid operators are - In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array - of string values. If the operator - is In or NotIn, the values array - must be non-empty. If the operator - is Exists or DoesNotExist, the - values array must be empty. - This array is replaced during - a strategic merge patch. items: type: string type: array @@ -17102,57 +6917,16 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of - {key,value} pairs. A single {key,value} - in the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName is the name - of the StorageClass required by the claim. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName - may be used to set the VolumeAttributesClass - used by this claim. If specified, the - CSI driver will create or update the volume - with the attributes defined in the corresponding - VolumeAttributesClass. This has a different - purpose than storageClassName, it can - be changed after the claim is created. - An empty string value means that no VolumeAttributesClass - will be applied to the claim but it''s - not allowed to reset this field to empty - string once it is set. If unspecified - and the PersistentVolumeClaim is unbound, - the default VolumeAttributesClass will - be set by the persistentvolume controller - if it exists. If the resource referred - to by volumeAttributesClass does not exist, - this PersistentVolumeClaim will be set - to a Pending state, as reflected by the - modifyVolumeStatus field, until such as - a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires the - VolumeAttributesClass feature gate to - be enabled.' type: string volumeMode: - description: volumeMode defines what type - of volume is required by the claim. Value - of Filesystem is implied when not included - in claim spec. type: string volumeName: - description: volumeName is the binding reference - to the PersistentVolume backing this claim. type: string type: object required: @@ -17160,89 +6934,41 @@ spec: type: object type: object fc: - description: fc represents a Fibre Channel resource - that is attached to a kubelet's host machine and then - exposed to the pod. properties: fsType: - description: 'fsType is the filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. TODO: how - do we prevent errors in the filesystem from compromising - the machine' type: string lun: - description: 'lun is Optional: FC target lun number' format: int32 type: integer readOnly: - description: 'readOnly is Optional: Defaults to - false (read/write). ReadOnly here will force the - ReadOnly setting in VolumeMounts.' type: boolean targetWWNs: - description: 'targetWWNs is Optional: FC target - worldwide names (WWNs)' items: type: string type: array x-kubernetes-list-type: atomic wwids: - description: 'wwids Optional: FC volume world wide - identifiers (wwids) Either wwids or combination - of targetWWNs and lun must be set, but not both - simultaneously.' items: type: string type: array x-kubernetes-list-type: atomic type: object flexVolume: - description: flexVolume represents a generic volume - resource that is provisioned/attached using an exec - based plugin. properties: driver: - description: driver is the name of the driver to - use for this volume. type: string fsType: - description: fsType is the filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". The - default filesystem depends on FlexVolume script. type: string options: additionalProperties: type: string - description: 'options is Optional: this field holds - extra command options if any.' type: object readOnly: - description: 'readOnly is Optional: defaults to - false (read/write). ReadOnly here will force the - ReadOnly setting in VolumeMounts.' type: boolean secretRef: - description: 'secretRef is Optional: secretRef is - reference to the secret object containing sensitive - information to pass to the plugin scripts. This - may be empty if no secret object is specified. - If the secret object contains more than one secret, - all secrets are passed to the plugin scripts.' properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic @@ -17250,179 +6976,79 @@ spec: - driver type: object flocker: - description: flocker represents a Flocker volume attached - to a kubelet's host machine. This depends on the Flocker - control service being running properties: datasetName: - description: datasetName is Name of the dataset - stored as metadata -> name on the dataset for - Flocker should be considered as deprecated type: string datasetUUID: - description: datasetUUID is the UUID of the dataset. - This is unique identifier of a Flocker dataset type: string type: object gcePersistentDisk: - description: 'gcePersistentDisk represents a GCE Disk - resource that is attached to a kubelet''s host machine - and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' properties: fsType: - description: 'fsType is filesystem type of the volume - that you want to mount. Tip: Ensure that the filesystem - type is supported by the host operating system. - Examples: "ext4", "xfs", "ntfs". Implicitly inferred - to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string partition: - description: 'partition is the partition in the - volume that you want to mount. If omitted, the - default is to mount by volume name. Examples: - For volume /dev/sda1, you specify the partition - as "1". Similarly, the volume partition for /dev/sda - is "0" (or you can leave the property empty). - More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' format: int32 type: integer pdName: - description: 'pdName is unique name of the PD resource - in GCE. Used to identify the disk in GCE. More - info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: string readOnly: - description: 'readOnly here will force the ReadOnly - setting in VolumeMounts. Defaults to false. More - info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: boolean required: - pdName type: object glusterfs: - description: 'glusterfs represents a Glusterfs mount - on the host that shares a pod''s lifetime. More info: - https://examples.k8s.io/volumes/glusterfs/README.md' properties: endpoints: - description: 'endpoints is the endpoint name that - details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string path: - description: 'path is the Glusterfs volume path. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string readOnly: - description: 'readOnly here will force the Glusterfs - volume to be mounted with read-only permissions. - Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: boolean required: - endpoints - path type: object hostPath: - description: 'hostPath represents a pre-existing file - or directory on the host machine that is directly - exposed to the container. This is generally used for - system agents or other privileged things that are - allowed to see the host machine. Most containers will - NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- TODO(jonesdl) We need to restrict who can use - host directory mounts and who can/can not mount host - directories as read/write.' properties: path: - description: 'path of the directory on the host. - If the path is a symlink, it will follow the link - to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string type: - description: 'type for HostPath Volume Defaults - to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string required: - path type: object iscsi: - description: 'iscsi represents an ISCSI Disk resource - that is attached to a kubelet''s host machine and - then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md' properties: chapAuthDiscovery: - description: chapAuthDiscovery defines whether support - iSCSI Discovery CHAP authentication type: boolean chapAuthSession: - description: chapAuthSession defines whether support - iSCSI Session CHAP authentication type: boolean fsType: - description: 'fsType is the filesystem type of the - volume that you want to mount. Tip: Ensure that - the filesystem type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string initiatorName: - description: initiatorName is the custom iSCSI Initiator - Name. If initiatorName is specified with iscsiInterface - simultaneously, new iSCSI interface : will be created for the connection. type: string iqn: - description: iqn is the target iSCSI Qualified Name. type: string iscsiInterface: - description: iscsiInterface is the interface Name - that uses an iSCSI transport. Defaults to 'default' - (tcp). type: string lun: - description: lun represents iSCSI Target Lun number. format: int32 type: integer portals: - description: portals is the iSCSI Target Portal - List. The portal is either an IP or ip_addr:port - if the port is other than default (typically TCP - ports 860 and 3260). items: type: string type: array x-kubernetes-list-type: atomic readOnly: - description: readOnly here will force the ReadOnly - setting in VolumeMounts. Defaults to false. type: boolean secretRef: - description: secretRef is the CHAP Secret for iSCSI - target and initiator authentication properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic targetPortal: - description: targetPortal is iSCSI Target Portal. - The Portal is either an IP or ip_addr:port if - the port is other than default (typically TCP - ports 860 and 3260). type: string required: - iqn @@ -17430,167 +7056,68 @@ spec: - targetPortal type: object name: - description: 'name of the volume. Must be a DNS_LABEL - and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string nfs: - description: 'nfs represents an NFS mount on the host - that shares a pod''s lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' properties: path: - description: 'path that is exported by the NFS server. - More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string readOnly: - description: 'readOnly here will force the NFS export - to be mounted with read-only permissions. Defaults - to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: boolean server: - description: 'server is the hostname or IP address - of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string required: - path - server type: object persistentVolumeClaim: - description: 'persistentVolumeClaimVolumeSource represents - a reference to a PersistentVolumeClaim in the same - namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: claimName: - description: 'claimName is the name of a PersistentVolumeClaim - in the same namespace as the pod using this volume. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' type: string readOnly: - description: readOnly Will force the ReadOnly setting - in VolumeMounts. Default false. type: boolean required: - claimName type: object photonPersistentDisk: - description: photonPersistentDisk represents a PhotonController - persistent disk attached and mounted on kubelets host - machine properties: fsType: - description: fsType is the filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string pdID: - description: pdID is the ID that identifies Photon - Controller persistent disk type: string required: - pdID type: object portworxVolume: - description: portworxVolume represents a portworx volume - attached and mounted on kubelets host machine properties: fsType: - description: fSType represents the filesystem type - to mount Must be a filesystem type supported by - the host operating system. Ex. "ext4", "xfs". - Implicitly inferred to be "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean volumeID: - description: volumeID uniquely identifies a Portworx - volume type: string required: - volumeID type: object projected: - description: projected items for all in one resources - secrets, configmaps, and downward API properties: defaultMode: - description: defaultMode are the mode bits used - to set permissions on created files by default. - Must be an octal value between 0000 and 0777 or - a decimal value between 0 and 511. YAML accepts - both octal and decimal values, JSON requires decimal - values for mode bits. Directories within the path - are not affected by this setting. This might be - in conflict with other options that affect the - file mode, like fsGroup, and the result can be - other mode bits set. format: int32 type: integer sources: - description: sources is the list of volume projections items: - description: Projection that may be projected - along with other supported volume types properties: clusterTrustBundle: - description: "ClusterTrustBundle allows a - pod to access the `.spec.trustBundle` field - of ClusterTrustBundle objects in an auto-updating - file. \n Alpha, gated by the ClusterTrustBundleProjection - feature gate. \n ClusterTrustBundle objects - can either be selected by name, or by the - combination of signer name and a label selector. - \n Kubelet performs aggressive normalization - of the PEM contents written into the pod - filesystem. Esoteric PEM features such - as inter-block comments and block headers - are stripped. Certificates are deduplicated. - The ordering of certificates within the - file is arbitrary, and Kubelet may change - the order over time." properties: labelSelector: - description: Select all ClusterTrustBundles - that match this label selector. Only - has effect if signerName is set. Mutually-exclusive - with name. If unset, interpreted as - "match nothing". If set but empty, - interpreted as "match everything". properties: matchExpressions: - description: matchExpressions is a - list of label selector requirements. - The requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to a - set of values. Valid operators - are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an array - of string values. If the operator - is In or NotIn, the values - array must be non-empty. If - the operator is Exists or - DoesNotExist, the values array - must be empty. This array - is replaced during a strategic - merge patch. items: type: string type: array @@ -17604,95 +7131,31 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map - of {key,value} pairs. A single {key,value} - in the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic name: - description: Select a single ClusterTrustBundle - by object name. Mutually-exclusive - with signerName and labelSelector. type: string optional: - description: If true, don't block pod - startup if the referenced ClusterTrustBundle(s) - aren't available. If using name, then - the named ClusterTrustBundle is allowed - not to exist. If using signerName, - then the combination of signerName and - labelSelector is allowed to match zero - ClusterTrustBundles. type: boolean path: - description: Relative path from the volume - root to write the bundle. type: string signerName: - description: Select all ClusterTrustBundles - that match this signer name. Mutually-exclusive - with name. The contents of all selected - ClusterTrustBundles will be unified - and deduplicated. type: string required: - path type: object configMap: - description: configMap information about the - configMap data to project properties: items: - description: items if unspecified, each - key-value pair in the Data field of - the referenced ConfigMap will be projected - into the volume as a file whose name - is the key and content is the value. - If specified, the listed keys will be - projected into the specified paths, - and unlisted keys will not be present. - If a key is specified which is not present - in the ConfigMap, the volume setup will - error unless it is marked optional. - Paths must be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key to a - path within a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an octal - value between 0000 and 0777 or - a decimal value between 0 and - 511. YAML accepts both octal and - decimal values, JSON requires - decimal values for mode bits. - If not specified, the volume defaultMode - will be used. This might be in - conflict with other options that - affect the file mode, like fsGroup, - and the result can be other mode - bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the key - to. May not be an absolute path. - May not contain the path element - '..'. May not start with the string - '..'. type: string required: - key @@ -17702,106 +7165,42 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether - the ConfigMap or its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic downwardAPI: - description: downwardAPI information about - the downwardAPI data to project properties: items: - description: Items is a list of DownwardAPIVolume - file items: - description: DownwardAPIVolumeFile represents - information to create the file containing - the pod field properties: fieldRef: - description: 'Required: Selects - a field of the pod: only annotations, - labels, name, namespace and uid - are supported.' properties: apiVersion: - description: Version of the - schema the FieldPath is written - in terms of, defaults to "v1". type: string fieldPath: - description: Path of the field - to select in the specified - API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode bits - used to set permissions on this - file, must be an octal value between - 0000 and 0777 or a decimal value - between 0 and 511. YAML accepts - both octal and decimal values, - JSON requires decimal values for - mode bits. If not specified, the - volume defaultMode will be used. - This might be in conflict with - other options that affect the - file mode, like fsGroup, and the - result can be other mode bits - set.' format: int32 type: integer path: - description: 'Required: Path is the - relative path name of the file - to be created. Must not be absolute - or contain the ''..'' path. Must - be utf-8 encoded. The first item - of the relative path must not - start with ''..''' type: string resourceFieldRef: - description: 'Selects a resource - of the container: only resources - limits and requests (limits.cpu, - limits.memory, requests.cpu and - requests.memory) are currently - supported.' properties: containerName: - description: 'Container name: - required for volumes, optional - for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource - to select' type: string required: - resource @@ -17814,54 +7213,16 @@ spec: x-kubernetes-list-type: atomic type: object secret: - description: secret information about the - secret data to project properties: items: - description: items if unspecified, each - key-value pair in the Data field of - the referenced Secret will be projected - into the volume as a file whose name - is the key and content is the value. - If specified, the listed keys will be - projected into the specified paths, - and unlisted keys will not be present. - If a key is specified which is not present - in the Secret, the volume setup will - error unless it is marked optional. - Paths must be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key to a - path within a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an octal - value between 0000 and 0777 or - a decimal value between 0 and - 511. YAML accepts both octal and - decimal values, JSON requires - decimal values for mode bits. - If not specified, the volume defaultMode - will be used. This might be in - conflict with other options that - affect the file mode, like fsGroup, - and the result can be other mode - bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the key - to. May not be an absolute path. - May not contain the path element - '..'. May not start with the string - '..'. type: string required: - key @@ -17871,54 +7232,19 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional field specify whether - the Secret or its key must be defined type: boolean type: object x-kubernetes-map-type: atomic serviceAccountToken: - description: serviceAccountToken is information - about the serviceAccountToken data to project properties: audience: - description: audience is the intended - audience of the token. A recipient of - a token must identify itself with an - identifier specified in the audience - of the token, and otherwise should reject - the token. The audience defaults to - the identifier of the apiserver. type: string expirationSeconds: - description: expirationSeconds is the - requested duration of validity of the - service account token. As the token - approaches expiration, the kubelet volume - plugin will proactively rotate the service - account token. The kubelet will start - trying to rotate the token if the token - is older than 80 percent of its time - to live or if the token is older than - 24 hours.Defaults to 1 hour and must - be at least 10 minutes. format: int64 type: integer path: - description: path is the path relative - to the mount point of the file to project - the token into. type: string required: - path @@ -17928,173 +7254,79 @@ spec: x-kubernetes-list-type: atomic type: object quobyte: - description: quobyte represents a Quobyte mount on the - host that shares a pod's lifetime properties: group: - description: group to map volume access to Default - is no group type: string readOnly: - description: readOnly here will force the Quobyte - volume to be mounted with read-only permissions. - Defaults to false. type: boolean registry: - description: registry represents a single or multiple - Quobyte Registry services specified as a string - as host:port pair (multiple entries are separated - with commas) which acts as the central registry - for volumes type: string tenant: - description: tenant owning the given Quobyte volume - in the Backend Used with dynamically provisioned - Quobyte volumes, value is set by the plugin type: string user: - description: user to map volume access to Defaults - to serivceaccount user type: string volume: - description: volume is a string that references - an already created Quobyte volume by name. type: string required: - registry - volume type: object rbd: - description: 'rbd represents a Rados Block Device mount - on the host that shares a pod''s lifetime. More info: - https://examples.k8s.io/volumes/rbd/README.md' properties: fsType: - description: 'fsType is the filesystem type of the - volume that you want to mount. Tip: Ensure that - the filesystem type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string image: - description: 'image is the rados image name. More - info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string keyring: - description: 'keyring is the path to key ring for - RBDUser. Default is /etc/ceph/keyring. More info: - https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string monitors: - description: 'monitors is a collection of Ceph monitors. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic pool: - description: 'pool is the rados pool name. Default - is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string readOnly: - description: 'readOnly here will force the ReadOnly - setting in VolumeMounts. Defaults to false. More - info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: boolean secretRef: - description: 'secretRef is name of the authentication - secret for RBDUser. If provided overrides keyring. - Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is the rados user name. Default - is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string required: - image - monitors type: object scaleIO: - description: scaleIO represents a ScaleIO persistent - volume attached and mounted on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". Default - is "xfs". type: string gateway: - description: gateway is the host address of the - ScaleIO API Gateway. type: string protectionDomain: - description: protectionDomain is the name of the - ScaleIO Protection Domain for the configured storage. type: string readOnly: - description: readOnly Defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean secretRef: - description: secretRef references to the secret - for ScaleIO user and other sensitive information. - If this is not provided, Login operation will - fail. properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic sslEnabled: - description: sslEnabled Flag enable/disable SSL - communication with Gateway, default false type: boolean storageMode: - description: storageMode indicates whether the storage - for a volume should be ThickProvisioned or ThinProvisioned. - Default is ThinProvisioned. type: string storagePool: - description: storagePool is the ScaleIO Storage - Pool associated with the protection domain. type: string system: - description: system is the name of the storage system - as configured in ScaleIO. type: string volumeName: - description: volumeName is the name of a volume - already created in the ScaleIO system that is - associated with this volume source. type: string required: - gateway @@ -18102,61 +7334,19 @@ spec: - system type: object secret: - description: 'secret represents a secret that should - populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' properties: defaultMode: - description: 'defaultMode is Optional: mode bits - used to set permissions on created files by default. - Must be an octal value between 0000 and 0777 or - a decimal value between 0 and 511. YAML accepts - both octal and decimal values, JSON requires decimal - values for mode bits. Defaults to 0644. Directories - within the path are not affected by this setting. - This might be in conflict with other options that - affect the file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer items: - description: items If unspecified, each key-value - pair in the Data field of the referenced Secret - will be projected into the volume as a file whose - name is the key and content is the value. If specified, - the listed keys will be projected into the specified - paths, and unlisted keys will not be present. - If a key is specified which is not present in - the Secret, the volume setup will error unless - it is marked optional. Paths must be relative - and may not contain the '..' path or start with - '..'. items: - description: Maps a string key to a path within - a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: mode bits - used to set permissions on this file. Must - be an octal value between 0000 and 0777 - or a decimal value between 0 and 511. YAML - accepts both octal and decimal values, JSON - requires decimal values for mode bits. If - not specified, the volume defaultMode will - be used. This might be in conflict with - other options that affect the file mode, - like fsGroup, and the result can be other - mode bits set.' format: int32 type: integer path: - description: path is the relative path of - the file to map the key to. May not be an - absolute path. May not contain the path - element '..'. May not start with the string - '..'. type: string required: - key @@ -18165,87 +7355,37 @@ spec: type: array x-kubernetes-list-type: atomic optional: - description: optional field specify whether the - Secret or its keys must be defined type: boolean secretName: - description: 'secretName is the name of the secret - in the pod''s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' type: string type: object storageos: - description: storageOS represents a StorageOS volume - attached and mounted on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean secretRef: - description: secretRef specifies the secret to use - for obtaining the StorageOS API credentials. If - not specified, default values will be attempted. properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeName: - description: volumeName is the human-readable name - of the StorageOS volume. Volume names are only - unique within a namespace. type: string volumeNamespace: - description: volumeNamespace specifies the scope - of the volume within StorageOS. If no namespace - is specified then the Pod's namespace will be - used. This allows the Kubernetes name scoping - to be mirrored within StorageOS for tighter integration. - Set VolumeName to any name to override the default - behaviour. Set to "default" if you are not using - namespaces within StorageOS. Namespaces that do - not pre-exist within StorageOS will be created. type: string type: object vsphereVolume: - description: vsphereVolume represents a vSphere volume - attached and mounted on kubelets host machine properties: fsType: - description: fsType is filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string storagePolicyID: - description: storagePolicyID is the storage Policy - Based Management (SPBM) profile ID associated - with the StoragePolicyName. type: string storagePolicyName: - description: storagePolicyName is the storage Policy - Based Management (SPBM) profile name. type: string volumePath: - description: volumePath is the path that identifies - vSphere volume vmdk type: string required: - volumePath @@ -18257,193 +7397,93 @@ spec: type: object type: array preRestore: - description: PreRestore specifies a list of hooks that will be executed - before restore items: - description: HookInfo specifies the information about the backup/restore - hooks properties: executionPolicy: default: Always - description: 'ExecutionPolicy specifies when to execute the - hook. Valid values are: - "Always": KubeStash will execute - this hook no matter the backup/restore failed. This is the - default execution policy. - "OnSuccess": KubeStash will - execute this hook only if the backup/restore has succeeded. - - "OnFailure": KubeStash will execute this hook only if - the backup/restore has failed.' enum: - Always - OnSuccess - OnFailure type: string hookTemplate: - description: HookTemplate points to a HookTemplate CR that - will be used to execute the hook. You can refer to a HookTemplate - from other namespaces as long as your current namespace - is allowed by the `usagePolicy` in the respective HookTemplate. properties: name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string required: - name type: object maxRetry: - description: MaxRetry specifies how many times KubeStash should - retry the hook execution in case of failure. The default - value of this field is 0 which means no retry. format: int32 minimum: 0 type: integer name: - description: Name specifies a name for the hook type: string params: - description: Params specifies parameters for the hook. You - must provide the parameter in the HookTemplates desired - structure. type: object x-kubernetes-preserve-unknown-fields: true runtimeSettings: - description: RuntimeSettings specifies runtime configurations - for the hook executor Job. Use this field only for `Function` - type hook executor. properties: container: properties: env: - description: List of environment variables to set - in the container. Cannot be updated. items: - description: EnvVar represents an environment variable - present in a Container. properties: name: - description: Name of the environment variable. - Must be a C_IDENTIFIER. type: string value: - description: 'Variable references $(VAR_NAME) - are expanded using the previously defined - environment variables in the container and - any service environment variables. If a variable - cannot be resolved, the reference in the input - string will be unchanged. Double $$ are reduced - to a single $, which allows for escaping the - $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will - produce the string literal "$(VAR_NAME)". - Escaped references will never be expanded, - regardless of whether the variable exists - or not. Defaults to "".' type: string valueFrom: - description: Source for the environment variable's - value. Cannot be used if value is not empty. properties: configMapKeyRef: - description: Selects a key of a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value here - are almost certainly wrong. TODO: - Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap - or its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field of the pod: - supports metadata.name, metadata.namespace, - `metadata.labels['''']`, `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, - status.hostIP, status.podIP, status.podIPs.' properties: apiVersion: - description: Version of the schema the - FieldPath is written in terms of, - defaults to "v1". type: string fieldPath: - description: Path of the field to select - in the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource of the - container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, - requests.cpu, requests.memory and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: required - for volumes, optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output format - of the exposed resources, defaults - to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource to - select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret in - the pod's namespace properties: key: - description: The key of the secret to - select from. Must be a valid secret - key. type: string name: default: "" - description: 'Name of the referent. - This field is effectively required, - but due to backwards compatibility - is allowed to be empty. Instances - of this type with an empty value here - are almost certainly wrong. TODO: - Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret - or its key must be defined type: boolean required: - key @@ -18455,70 +7495,31 @@ spec: type: object type: array envFrom: - description: List of sources to populate environment - variables in the container. The keys defined within - a source must be a C_IDENTIFIER. All invalid keys - will be reported as an event when the container - is starting. When a key exists in multiple sources, - the value associated with the last source will take - precedence. Values defined by an Env with a duplicate - key will take precedence. Cannot be updated. items: - description: EnvFromSource represents the source - of a set of ConfigMaps properties: configMapRef: - description: The ConfigMap to select from properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type with - an empty value here are almost certainly - wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap - must be defined type: boolean type: object x-kubernetes-map-type: atomic prefix: - description: An optional identifier to prepend - to each key in the ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: - description: The Secret to select from properties: name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type with - an empty value here are almost certainly - wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret - must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array ionice: - description: 'Settings to configure `ionice` to throttle - the load on disk. More info: http://kennystechtalk.blogspot.com/2015/04/throttling-cpu-usage-with-linux-cgroups.html - More info: https://oakbytes.wordpress.com/2012/06/06/linux-scheduler-cfs-and-nice/' properties: class: format: int32 @@ -18528,64 +7529,27 @@ spec: type: integer type: object lifecycle: - description: Actions that the management system should - take in response to container lifecycle events. - Cannot be updated. properties: postStart: - description: 'PostStart is called immediately - after a container is created. If the handler - fails, the container is terminated and restarted - according to its restart policy. Other management - of the container blocks until the hook completes. - More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action to - take. properties: command: - description: Command is the command line - to execute inside the container, the - working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it is - not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to explicitly - call out to that shell. Exit status - of 0 is treated as live/healthy and - non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http request - to perform. properties: host: - description: Host name to connect to, - defaults to the pod IP. You probably - want to set "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated headers. items: - description: HTTPHeader describes a - custom header to be used in HTTP probes properties: name: - description: The header field name. - This will be canonicalized upon - output, so case-variant names - will be understood as the same - header. type: string value: - description: The header field value type: string required: - name @@ -18594,125 +7558,58 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP - server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration - that the container should sleep before being - terminated. properties: seconds: - description: Seconds is the number of - seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is NOT - supported as a LifecycleHandler and kept - for the backward compatibility. There are - no validation of this field and lifecycle - hooks will fail in runtime when tcp handler - is specified. properties: host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object type: object preStop: - description: 'PreStop is called immediately before - a container is terminated due to an API request - or management event such as liveness/startup - probe failure, preemption, resource contention, - etc. The handler is not called if the container - crashes or exits. The Pod''s termination grace - period countdown begins before the PreStop hook - is executed. Regardless of the outcome of the - handler, the container will eventually terminate - within the Pod''s termination grace period (unless - delayed by finalizers). Other management of - the container blocks until the hook completes - or until the termination grace period is reached. - More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action to - take. properties: command: - description: Command is the command line - to execute inside the container, the - working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it is - not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to explicitly - call out to that shell. Exit status - of 0 is treated as live/healthy and - non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http request - to perform. properties: host: - description: Host name to connect to, - defaults to the pod IP. You probably - want to set "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated headers. items: - description: HTTPHeader describes a - custom header to be used in HTTP probes properties: name: - description: The header field name. - This will be canonicalized upon - output, so case-variant names - will be understood as the same - header. type: string value: - description: The header field value type: string required: - name @@ -18721,58 +7618,33 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP - server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration - that the container should sleep before being - terminated. properties: seconds: - description: Seconds is the number of - seconds to sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is NOT - supported as a LifecycleHandler and kept - for the backward compatibility. There are - no validation of this field and lifecycle - hooks will fail in runtime when tcp handler - is specified. properties: host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port - to access on the container. Number must - be in the range 1 to 65535. Name must - be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port @@ -18780,78 +7652,38 @@ spec: type: object type: object livenessProbe: - description: 'Periodic probe of container liveness. - Container will be restarted if the probe fails. - Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to take. properties: command: - description: Command is the command line to - execute inside the container, the working - directory for the command is root ('/') - in the container's filesystem. The command - is simply exec'd, it is not run inside a - shell, so traditional shell instructions - ('|', etc) won't work. To use a shell, you - need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures for - the probe to be considered failed after having - succeeded. Defaults to 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving - a GRPC port. properties: port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name of the service - to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default - behavior is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http request - to perform. properties: host: - description: Host name to connect to, defaults - to the pod IP. You probably want to set - "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in the - request. HTTP allows repeated headers. items: - description: HTTPHeader describes a custom - header to be used in HTTP probes properties: name: - description: The header field name. - This will be canonicalized upon output, - so case-variant names will be understood - as the same header. type: string value: - description: The header field value type: string required: - name @@ -18860,173 +7692,84 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port to - access on the container. Number must be - in the range 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the container - has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform - the probe. Default to 10 seconds. Minimum value - is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes for - the probe to be considered successful after - having failed. Defaults to 1. Must be 1 for - liveness and startup. Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. properties: host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port to - access on the container. Number must be - in the range 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds the - pod needs to terminate gracefully upon probe - failure. The grace period is the duration in - seconds after the processes running in the pod - are sent a termination signal and the time when - the processes are forcibly halted with a kill - signal. Set this value longer than the expected - cleanup time for your process. If this value - is nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value overrides - the value provided by the pod spec. Value must - be non-negative integer. The value zero indicates - stop immediately via the kill signal (no opportunity - to shut down). This is a beta field and requires - enabling ProbeTerminationGracePeriod feature - gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which the - probe times out. Defaults to 1 second. Minimum - value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object nice: - description: 'Settings to configure `nice` to throttle - the load on cpu. More info: http://kennystechtalk.blogspot.com/2015/04/throttling-cpu-usage-with-linux-cgroups.html - More info: https://oakbytes.wordpress.com/2012/06/06/linux-scheduler-cfs-and-nice/' properties: adjustment: format: int32 type: integer type: object readinessProbe: - description: 'Periodic probe of container service - readiness. Container will be removed from service - endpoints if the probe fails. Cannot be updated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to take. properties: command: - description: Command is the command line to - execute inside the container, the working - directory for the command is root ('/') - in the container's filesystem. The command - is simply exec'd, it is not run inside a - shell, so traditional shell instructions - ('|', etc) won't work. To use a shell, you - need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures for - the probe to be considered failed after having - succeeded. Defaults to 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving - a GRPC port. properties: port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name of the service - to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default - behavior is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http request - to perform. properties: host: - description: Host name to connect to, defaults - to the pod IP. You probably want to set - "Host" in httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in the - request. HTTP allows repeated headers. items: - description: HTTPHeader describes a custom - header to be used in HTTP probes properties: name: - description: The header field name. - This will be canonicalized upon output, - so case-variant names will be understood - as the same header. type: string value: - description: The header field value type: string required: - name @@ -19035,110 +7778,51 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port to - access on the container. Number must be - in the range 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the container - has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform - the probe. Default to 10 seconds. Minimum value - is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes for - the probe to be considered successful after - having failed. Defaults to 1. Must be 1 for - liveness and startup. Minimum value is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. properties: host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port to - access on the container. Number must be - in the range 1 to 65535. Name must be an - IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds the - pod needs to terminate gracefully upon probe - failure. The grace period is the duration in - seconds after the processes running in the pod - are sent a termination signal and the time when - the processes are forcibly halted with a kill - signal. Set this value longer than the expected - cleanup time for your process. If this value - is nil, the pod's terminationGracePeriodSeconds - will be used. Otherwise, this value overrides - the value provided by the pod spec. Value must - be non-negative integer. The value zero indicates - stop immediately via the kill signal (no opportunity - to shut down). This is a beta field and requires - enabling ProbeTerminationGracePeriod feature - gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which the - probe times out. Defaults to 1 second. Minimum - value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object resources: - description: 'Compute Resources required by container. - Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' properties: claims: - description: "Claims lists the names of resources, - defined in spec.resourceClaims, that are used - by this container. \n This is an alpha field - and requires enabling the DynamicResourceAllocation - feature gate. \n This field is immutable. It - can only be set for containers." items: - description: ResourceClaim references one entry - in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of - one entry in pod.spec.resourceClaims of - the Pod where this field is used. It makes - that resource available inside a container. type: string required: - name @@ -19154,8 +7838,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount - of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -19164,230 +7846,77 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount - of compute resources required. If Requests is - omitted for a container, it defaults to Limits - if that is explicitly specified, otherwise to - an implementation-defined value. Requests cannot - exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object securityContext: - description: 'Security options the pod should run - with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: allowPrivilegeEscalation: - description: 'AllowPrivilegeEscalation controls - whether a process can gain more privileges than - its parent process. This bool directly controls - if the no_new_privs flag will be set on the - container process. AllowPrivilegeEscalation - is true always when the container is: 1) run - as Privileged 2) has CAP_SYS_ADMIN Note that - this field cannot be set when spec.os.name is - windows.' type: boolean appArmorProfile: - description: appArmorProfile is the AppArmor options - to use by this container. If set, this profile - overrides the pod's appArmorProfile. Note that - this field cannot be set when spec.os.name is - windows. properties: localhostProfile: - description: localhostProfile indicates a - profile loaded on the node that should be - used. The profile must be preconfigured - on the node to work. Must match the loaded - name of the profile. Must be set if and - only if type is "Localhost". type: string type: - description: 'type indicates which kind of - AppArmor profile will be applied. Valid - options are: Localhost - a profile pre-loaded - on the node. RuntimeDefault - the container - runtime''s default profile. Unconfined - - no AppArmor enforcement.' type: string required: - type type: object capabilities: - description: The capabilities to add/drop when - running containers. Defaults to the default - set of capabilities granted by the container - runtime. Note that this field cannot be set - when spec.os.name is windows. properties: add: - description: Added capabilities items: - description: Capability represent POSIX - capabilities type type: string type: array x-kubernetes-list-type: atomic drop: - description: Removed capabilities items: - description: Capability represent POSIX - capabilities type type: string type: array x-kubernetes-list-type: atomic type: object privileged: - description: Run container in privileged mode. - Processes in privileged containers are essentially - equivalent to root on the host. Defaults to - false. Note that this field cannot be set when - spec.os.name is windows. type: boolean procMount: - description: procMount denotes the type of proc - mount to use for the containers. The default - is DefaultProcMount which uses the container - runtime defaults for readonly paths and masked - paths. This requires the ProcMountType feature - flag to be enabled. Note that this field cannot - be set when spec.os.name is windows. type: string readOnlyRootFilesystem: - description: Whether this container has a read-only - root filesystem. Default is false. Note that - this field cannot be set when spec.os.name is - windows. type: boolean runAsGroup: - description: The GID to run the entrypoint of - the container process. Uses runtime default - if unset. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. Note that this field cannot be set - when spec.os.name is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container must - run as a non-root user. If true, the Kubelet - will validate the image at runtime to ensure - that it does not run as UID 0 (root) and fail - to start the container if it does. If unset - or false, no such validation will be performed. - May also be set in PodSecurityContext. If set - in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. type: boolean runAsUser: - description: The UID to run the entrypoint of - the container process. Defaults to user specified - in image metadata if unspecified. May also be - set in PodSecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. Note that - this field cannot be set when spec.os.name is - windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be applied - to the container. If unspecified, the container - runtime will allocate a random SELinux context - for each container. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. Note that this field cannot be set - when spec.os.name is windows. properties: level: - description: Level is SELinux level label - that applies to the container. type: string role: - description: Role is a SELinux role label - that applies to the container. type: string type: - description: Type is a SELinux type label - that applies to the container. type: string user: - description: User is a SELinux user label - that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to use by this - container. If seccomp options are provided at - both the pod & container level, the container - options override the pod options. Note that - this field cannot be set when spec.os.name is - windows. properties: localhostProfile: - description: localhostProfile indicates a - profile defined in a file on the node should - be used. The profile must be preconfigured - on the node to work. Must be a descending - path, relative to the kubelet's configured - seccomp profile location. Must be set if - type is "Localhost". Must NOT be set for - any other type. type: string type: - description: "type indicates which kind of - seccomp profile will be applied. Valid options - are: \n Localhost - a profile defined in - a file on the node should be used. RuntimeDefault - - the container runtime default profile - should be used. Unconfined - no profile - should be applied." type: string required: - type type: object windowsOptions: - description: The Windows specific settings applied - to all containers. If unspecified, the options - from the PodSecurityContext will be used. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. Note that this field cannot be set - when spec.os.name is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is where the - GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA credential - spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName is the - name of the GMSA credential spec to use. type: string hostProcess: - description: HostProcess determines if a container - should be run as a 'Host Process' container. - All of a Pod's containers must have the - same effective HostProcess value (it is - not allowed to have a mix of HostProcess - containers and non-HostProcess containers). - In addition, if HostProcess is true then - HostNetwork must also be set to true. type: boolean runAsUserName: - description: The UserName in Windows to run - the entrypoint of the container process. - Defaults to the user specified in image - metadata if unspecified. May also be set - in PodSecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. type: string type: object type: object @@ -19395,75 +7924,22 @@ spec: pod: properties: affinity: - description: If specified, the pod's scheduling constraints properties: nodeAffinity: - description: Describes node affinity scheduling - rules for the pod. properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer to - schedule pods to nodes that satisfy the - affinity expressions specified by this field, - but it may choose a node that violates one - or more of the expressions. The node that - is most preferred is the one with the greatest - sum of weights, i.e. for each node that - meets all of the scheduling requirements - (resource request, requiredDuringScheduling - affinity expressions, etc.), compute a sum - by iterating through the elements of this - field and adding "weight" to the sum if - the node matches the corresponding matchExpressions; - the node(s) with the highest sum are the - most preferred. items: - description: An empty preferred scheduling - term matches all objects with implicit - weight 0 (i.e. it's a no-op). A null preferred - scheduling term matches no objects (i.e. - is also a no-op). properties: preference: - description: A node selector term, associated - with the corresponding weight. properties: matchExpressions: - description: A list of node selector - requirements by node's labels. items: - description: A node selector requirement - is a selector that contains - values, a key, and an operator - that relates the key and values. properties: key: - description: The label key - that the selector applies - to. type: string operator: - description: Represents a - key's relationship to a - set of values. Valid operators - are In, NotIn, Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An array of string - values. If the operator - is In or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the values - array must be empty. If - the operator is Gt or Lt, - the values array must have - a single element, which - will be interpreted as an - integer. This array is replaced - during a strategic merge - patch. items: type: string type: array @@ -19475,41 +7951,13 @@ spec: type: array x-kubernetes-list-type: atomic matchFields: - description: A list of node selector - requirements by node's fields. items: - description: A node selector requirement - is a selector that contains - values, a key, and an operator - that relates the key and values. properties: key: - description: The label key - that the selector applies - to. type: string operator: - description: Represents a - key's relationship to a - set of values. Valid operators - are In, NotIn, Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An array of string - values. If the operator - is In or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the values - array must be empty. If - the operator is Gt or Lt, - the values array must have - a single element, which - will be interpreted as an - integer. This array is replaced - during a strategic merge - patch. items: type: string type: array @@ -19523,9 +7971,6 @@ spec: type: object x-kubernetes-map-type: atomic weight: - description: Weight associated with - matching the corresponding nodeSelectorTerm, - in the range 1-100. format: int32 type: integer required: @@ -19535,60 +7980,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements - specified by this field are not met at scheduling - time, the pod will not be scheduled onto - the node. If the affinity requirements specified - by this field cease to be met at some point - during pod execution (e.g. due to an update), - the system may or may not try to eventually - evict the pod from its node. properties: nodeSelectorTerms: - description: Required. A list of node - selector terms. The terms are ORed. items: - description: A null or empty node selector - term matches no objects. The requirements - of them are ANDed. The TopologySelectorTerm - type implements a subset of the NodeSelectorTerm. properties: matchExpressions: - description: A list of node selector - requirements by node's labels. items: - description: A node selector requirement - is a selector that contains - values, a key, and an operator - that relates the key and values. properties: key: - description: The label key - that the selector applies - to. type: string operator: - description: Represents a - key's relationship to a - set of values. Valid operators - are In, NotIn, Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An array of string - values. If the operator - is In or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the values - array must be empty. If - the operator is Gt or Lt, - the values array must have - a single element, which - will be interpreted as an - integer. This array is replaced - during a strategic merge - patch. items: type: string type: array @@ -19600,41 +8003,13 @@ spec: type: array x-kubernetes-list-type: atomic matchFields: - description: A list of node selector - requirements by node's fields. items: - description: A node selector requirement - is a selector that contains - values, a key, and an operator - that relates the key and values. properties: key: - description: The label key - that the selector applies - to. type: string operator: - description: Represents a - key's relationship to a - set of values. Valid operators - are In, NotIn, Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An array of string - values. If the operator - is In or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the values - array must be empty. If - the operator is Gt or Lt, - the values array must have - a single element, which - will be interpreted as an - integer. This array is replaced - during a strategic merge - patch. items: type: string type: array @@ -19655,79 +8030,22 @@ spec: x-kubernetes-map-type: atomic type: object podAffinity: - description: Describes pod affinity scheduling - rules (e.g. co-locate this pod in the same node, - zone, etc. as some other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer to - schedule pods to nodes that satisfy the - affinity expressions specified by this field, - but it may choose a node that violates one - or more of the expressions. The node that - is most preferred is the one with the greatest - sum of weights, i.e. for each node that - meets all of the scheduling requirements - (resource request, requiredDuringScheduling - affinity expressions, etc.), compute a sum - by iterating through the elements of this - field and adding "weight" to the sum if - the node has pods which matches the corresponding - podAffinityTerm; the node(s) with the highest - sum are the most preferred. items: - description: The weights of all of the matched - WeightedPodAffinityTerm fields are added - per-node to find the most preferred node(s) properties: podAffinityTerm: - description: Required. A pod affinity - term, associated with the corresponding - weight. properties: labelSelector: - description: A label query over - a set of resources, in this case - pods. If it's null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator - represents a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is - an array of string values. - If the operator is In - or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the - values array must be - empty. This array is - replaced during a strategic - merge patch. items: type: string type: array @@ -19741,120 +8059,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in the - matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is a - set of pod label keys to select - which pods will be taken into - consideration. The keys are used - to lookup values from the incoming - pod labels, those key-value labels - are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, matchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys is - a set of pod label keys to select - which pods will be taken into - consideration. The keys are used - to lookup values from the incoming - pod labels, those key-value labels - are merged with `labelSelector` - as `key notin (value)` to select - the group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over - the set of namespaces that the - term applies to. The term is applied - to the union of the namespaces - selected by this field and the - ones listed in the namespaces - field. null selector and null - or empty namespaces list means - "this pod's namespace". An empty - selector ({}) matches all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator - represents a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is - an array of string values. - If the operator is In - or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the - values array must be - empty. This array is - replaced during a strategic - merge patch. items: type: string type: array @@ -19868,53 +8095,20 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in the - matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace names - that the term applies to. The - term is applied to the union of - the namespaces listed in this - field and the ones selected by - namespaceSelector. null or empty - namespaces list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be - co-located (affinity) or not co-located - (anti-affinity) with the pods - matching the labelSelector in - the specified namespaces, where - co-located is defined as running - on a node whose value of the label - with key topologyKey matches that - of any node on which any of the - selected pods is running. Empty - topologyKey is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated with - matching the corresponding podAffinityTerm, - in the range 1-100. format: int32 type: integer required: @@ -19924,69 +8118,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements - specified by this field are not met at scheduling - time, the pod will not be scheduled onto - the node. If the affinity requirements specified - by this field cease to be met at some point - during pod execution (e.g. due to a pod - label update), the system may or may not - try to eventually evict the pod from its - node. When there are multiple elements, - the lists of nodes corresponding to each - podAffinityTerm are intersected, i.e. all - terms must be satisfied. items: - description: Defines a set of pods (namely - those matching the labelSelector relative - to the given namespace(s)) that this pod - should be co-located (affinity) or not - co-located (anti-affinity) with, where - co-located is defined as running on a - node whose value of the label with key - matches that of any node - on which a pod of the set of pods is running properties: labelSelector: - description: A label query over a set - of resources, in this case pods. If - it's null, this PodAffinityTerm matches - with no Pods. properties: matchExpressions: - description: matchExpressions is - a list of label selector requirements. - The requirements are ANDed. items: - description: A label selector - requirement is a selector that - contains values, a key, and - an operator that relates the - key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to - a set of values. Valid operators - are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an - array of string values. - If the operator is In or - NotIn, the values array - must be non-empty. If the - operator is Exists or DoesNotExist, - the values array must be - empty. This array is replaced - during a strategic merge - patch. items: type: string type: array @@ -20000,111 +8143,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map - of {key,value} pairs. A single - {key,value} in the matchLabels - map is equivalent to an element - of matchExpressions, whose key - field is "key", the operator is - "In", and the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is a set - of pod label keys to select which - pods will be taken into consideration. - The keys are used to lookup values - from the incoming pod labels, those - key-value labels are merged with `labelSelector` - as `key in (value)` to select the - group of existing pods which pods - will be taken into consideration for - the incoming pod's pod (anti) affinity. - Keys that don't exist in the incoming - pod labels will be ignored. The default - value is empty. The same key is forbidden - to exist in both matchLabelKeys and - labelSelector. Also, matchLabelKeys - cannot be set when labelSelector isn't - set. This is an alpha field and requires - enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys is a - set of pod label keys to select which - pods will be taken into consideration. - The keys are used to lookup values - from the incoming pod labels, those - key-value labels are merged with `labelSelector` - as `key notin (value)` to select the - group of existing pods which pods - will be taken into consideration for - the incoming pod's pod (anti) affinity. - Keys that don't exist in the incoming - pod labels will be ignored. The default - value is empty. The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector isn't - set. This is an alpha field and requires - enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over the - set of namespaces that the term applies - to. The term is applied to the union - of the namespaces selected by this - field and the ones listed in the namespaces - field. null selector and null or empty - namespaces list means "this pod's - namespace". An empty selector ({}) - matches all namespaces. properties: matchExpressions: - description: matchExpressions is - a list of label selector requirements. - The requirements are ANDed. items: - description: A label selector - requirement is a selector that - contains values, a key, and - an operator that relates the - key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to - a set of values. Valid operators - are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an - array of string values. - If the operator is In or - NotIn, the values array - must be non-empty. If the - operator is Exists or DoesNotExist, - the values array must be - empty. This array is replaced - during a strategic merge - patch. items: type: string type: array @@ -20118,42 +8179,15 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map - of {key,value} pairs. A single - {key,value} in the matchLabels - map is equivalent to an element - of matchExpressions, whose key - field is "key", the operator is - "In", and the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies a - static list of namespace names that - the term applies to. The term is applied - to the union of the namespaces listed - in this field and the ones selected - by namespaceSelector. null or empty - namespaces list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be co-located - (affinity) or not co-located (anti-affinity) - with the pods matching the labelSelector - in the specified namespaces, where - co-located is defined as running on - a node whose value of the label with - key topologyKey matches that of any - node on which any of the selected - pods is running. Empty topologyKey - is not allowed. type: string required: - topologyKey @@ -20162,79 +8196,22 @@ spec: x-kubernetes-list-type: atomic type: object podAntiAffinity: - description: Describes pod anti-affinity scheduling - rules (e.g. avoid putting this pod in the same - node, zone, etc. as some other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer to - schedule pods to nodes that satisfy the - anti-affinity expressions specified by this - field, but it may choose a node that violates - one or more of the expressions. The node - that is most preferred is the one with the - greatest sum of weights, i.e. for each node - that meets all of the scheduling requirements - (resource request, requiredDuringScheduling - anti-affinity expressions, etc.), compute - a sum by iterating through the elements - of this field and adding "weight" to the - sum if the node has pods which matches the - corresponding podAffinityTerm; the node(s) - with the highest sum are the most preferred. items: - description: The weights of all of the matched - WeightedPodAffinityTerm fields are added - per-node to find the most preferred node(s) properties: podAffinityTerm: - description: Required. A pod affinity - term, associated with the corresponding - weight. properties: labelSelector: - description: A label query over - a set of resources, in this case - pods. If it's null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator - represents a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is - an array of string values. - If the operator is In - or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the - values array must be - empty. This array is - replaced during a strategic - merge patch. items: type: string type: array @@ -20248,120 +8225,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in the - matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is a - set of pod label keys to select - which pods will be taken into - consideration. The keys are used - to lookup values from the incoming - pod labels, those key-value labels - are merged with `labelSelector` - as `key in (value)` to select - the group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both matchLabelKeys - and labelSelector. Also, matchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys is - a set of pod label keys to select - which pods will be taken into - consideration. The keys are used - to lookup values from the incoming - pod labels, those key-value labels - are merged with `labelSelector` - as `key notin (value)` to select - the group of existing pods which - pods will be taken into consideration - for the incoming pod's pod (anti) - affinity. Keys that don't exist - in the incoming pod labels will - be ignored. The default value - is empty. The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector - isn't set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over - the set of namespaces that the - term applies to. The term is applied - to the union of the namespaces - selected by this field and the - ones listed in the namespaces - field. null selector and null - or empty namespaces list means - "this pod's namespace". An empty - selector ({}) matches all namespaces. properties: matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. items: - description: A label selector - requirement is a selector - that contains values, a - key, and an operator that - relates the key and values. properties: key: - description: key is the - label key that the selector - applies to. type: string operator: - description: operator - represents a key's relationship - to a set of values. - Valid operators are - In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is - an array of string values. - If the operator is In - or NotIn, the values - array must be non-empty. - If the operator is Exists - or DoesNotExist, the - values array must be - empty. This array is - replaced during a strategic - merge patch. items: type: string type: array @@ -20375,53 +8261,20 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is - a map of {key,value} pairs. - A single {key,value} in the - matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", - the operator is "In", and - the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies - a static list of namespace names - that the term applies to. The - term is applied to the union of - the namespaces listed in this - field and the ones selected by - namespaceSelector. null or empty - namespaces list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be - co-located (affinity) or not co-located - (anti-affinity) with the pods - matching the labelSelector in - the specified namespaces, where - co-located is defined as running - on a node whose value of the label - with key topologyKey matches that - of any node on which any of the - selected pods is running. Empty - topologyKey is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated with - matching the corresponding podAffinityTerm, - in the range 1-100. format: int32 type: integer required: @@ -20431,69 +8284,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the anti-affinity requirements - specified by this field are not met at scheduling - time, the pod will not be scheduled onto - the node. If the anti-affinity requirements - specified by this field cease to be met - at some point during pod execution (e.g. - due to a pod label update), the system may - or may not try to eventually evict the pod - from its node. When there are multiple elements, - the lists of nodes corresponding to each - podAffinityTerm are intersected, i.e. all - terms must be satisfied. items: - description: Defines a set of pods (namely - those matching the labelSelector relative - to the given namespace(s)) that this pod - should be co-located (affinity) or not - co-located (anti-affinity) with, where - co-located is defined as running on a - node whose value of the label with key - matches that of any node - on which a pod of the set of pods is running properties: labelSelector: - description: A label query over a set - of resources, in this case pods. If - it's null, this PodAffinityTerm matches - with no Pods. properties: matchExpressions: - description: matchExpressions is - a list of label selector requirements. - The requirements are ANDed. items: - description: A label selector - requirement is a selector that - contains values, a key, and - an operator that relates the - key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to - a set of values. Valid operators - are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an - array of string values. - If the operator is In or - NotIn, the values array - must be non-empty. If the - operator is Exists or DoesNotExist, - the values array must be - empty. This array is replaced - during a strategic merge - patch. items: type: string type: array @@ -20507,111 +8309,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map - of {key,value} pairs. A single - {key,value} in the matchLabels - map is equivalent to an element - of matchExpressions, whose key - field is "key", the operator is - "In", and the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is a set - of pod label keys to select which - pods will be taken into consideration. - The keys are used to lookup values - from the incoming pod labels, those - key-value labels are merged with `labelSelector` - as `key in (value)` to select the - group of existing pods which pods - will be taken into consideration for - the incoming pod's pod (anti) affinity. - Keys that don't exist in the incoming - pod labels will be ignored. The default - value is empty. The same key is forbidden - to exist in both matchLabelKeys and - labelSelector. Also, matchLabelKeys - cannot be set when labelSelector isn't - set. This is an alpha field and requires - enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys is a - set of pod label keys to select which - pods will be taken into consideration. - The keys are used to lookup values - from the incoming pod labels, those - key-value labels are merged with `labelSelector` - as `key notin (value)` to select the - group of existing pods which pods - will be taken into consideration for - the incoming pod's pod (anti) affinity. - Keys that don't exist in the incoming - pod labels will be ignored. The default - value is empty. The same key is forbidden - to exist in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys - cannot be set when labelSelector isn't - set. This is an alpha field and requires - enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over the - set of namespaces that the term applies - to. The term is applied to the union - of the namespaces selected by this - field and the ones listed in the namespaces - field. null selector and null or empty - namespaces list means "this pod's - namespace". An empty selector ({}) - matches all namespaces. properties: matchExpressions: - description: matchExpressions is - a list of label selector requirements. - The requirements are ANDed. items: - description: A label selector - requirement is a selector that - contains values, a key, and - an operator that relates the - key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to - a set of values. Valid operators - are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an - array of string values. - If the operator is In or - NotIn, the values array - must be non-empty. If the - operator is Exists or DoesNotExist, - the values array must be - empty. This array is replaced - during a strategic merge - patch. items: type: string type: array @@ -20625,42 +8345,15 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map - of {key,value} pairs. A single - {key,value} in the matchLabels - map is equivalent to an element - of matchExpressions, whose key - field is "key", the operator is - "In", and the values array contains - only "value". The requirements - are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies a - static list of namespace names that - the term applies to. The term is applied - to the union of the namespaces listed - in this field and the ones selected - by namespaceSelector. null or empty - namespaces list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be co-located - (affinity) or not co-located (anti-affinity) - with the pods matching the labelSelector - in the specified namespaces, where - co-located is defined as running on - a node whose value of the label with - key topologyKey matches that of any - node on which any of the selected - pods is running. Empty topologyKey - is not allowed. type: string required: - topologyKey @@ -20670,300 +8363,106 @@ spec: type: object type: object automountServiceAccountToken: - description: AutomountServiceAccountToken indicates - whether a service account token should be automatically - mounted. type: boolean enableServiceLinks: - description: 'EnableServiceLinks indicates whether - information about services should be injected into - pod''s environment variables, matching the syntax - of Docker links. Optional: Defaults to true.' type: boolean imagePullSecrets: - description: 'ImagePullSecrets is an optional list - of references to secrets in the same namespace to - use for pulling any of the images used by this PodRuntimeSettings. - If specified, these secrets will be passed to individual - puller implementations for them to use. For example, - in the case of docker, only DockerConfig type secrets - are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod' items: - description: LocalObjectReference contains enough - information to let you locate the referenced object - inside the same namespace. properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic type: array nodeName: - description: NodeName is a request to schedule this - pod onto a specific node. If it is non-empty, the - scheduler simply schedules this pod onto that node, - assuming that it fits resource requirements. type: string nodeSelector: additionalProperties: type: string - description: 'NodeSelector is a selector which must - be true for the pod to fit on a node. Selector which - must match a node''s labels for the pod to be scheduled - on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/' type: object podAnnotations: additionalProperties: type: string - description: PodAnnotations are the annotations that - will be attached with the respective Pod type: object podLabels: additionalProperties: type: string - description: PodLabels are the labels that will be - attached with the respective Pod type: object priority: - description: The priority value. Various system components - use this field to find the priority of the pod. - When Priority Admission Controller is enabled, it - prevents users from setting this field. The admission - controller populates this field from PriorityClassName. - The higher the value, the higher the priority. format: int32 type: integer priorityClassName: - description: If specified, indicates the pod's priority. - "system-node-critical" and "system-cluster-critical" - are two special keywords which indicate the highest - priorities with the former being the highest priority. - Any other name must be defined by creating a PriorityClass - object with that name. If not specified, the pod - priority will be default or zero if there is no - default. type: string readinessGates: - description: 'If specified, all readiness gates will - be evaluated for pod readiness. A pod is ready when - all its containers are ready AND all conditions - specified in the readiness gates have status equal - to "True" More info: https://git.k8s.io/enhancements/keps/sig-network/0007-pod-ready%2B%2B.md' items: - description: PodReadinessGate contains the reference - to a pod condition properties: conditionType: - description: ConditionType refers to a condition - in the pod's condition list with matching - type. type: string required: - conditionType type: object type: array runtimeClassName: - description: 'RuntimeClassName refers to a RuntimeClass - object in the node.k8s.io group, which should be - used to run this pod. If no RuntimeClass resource - matches the named class, the pod will not be run. - If unset or empty, the "legacy" RuntimeClass will - be used, which is an implicit class with an empty - definition that uses the default runtime handler. - More info: https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md - This is an alpha feature and may change in the future.' type: string schedulerName: - description: If specified, the pod will be dispatched - by specified scheduler. If not specified, the pod - will be dispatched by default scheduler. type: string securityContext: - description: 'Security options the pod should run - with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: appArmorProfile: - description: appArmorProfile is the AppArmor options - to use by the containers in this pod. Note that - this field cannot be set when spec.os.name is - windows. properties: localhostProfile: - description: localhostProfile indicates a - profile loaded on the node that should be - used. The profile must be preconfigured - on the node to work. Must match the loaded - name of the profile. Must be set if and - only if type is "Localhost". type: string type: - description: 'type indicates which kind of - AppArmor profile will be applied. Valid - options are: Localhost - a profile pre-loaded - on the node. RuntimeDefault - the container - runtime''s default profile. Unconfined - - no AppArmor enforcement.' type: string required: - type type: object fsGroup: - description: "A special supplemental group that - applies to all containers in a pod. Some volume - types allow the Kubelet to change the ownership - of that volume to be owned by the pod: \n 1. - The owning GID will be the FSGroup 2. The setgid - bit is set (new files created in the volume - will be owned by FSGroup) 3. The permission - bits are OR'd with rw-rw---- \n If unset, the - Kubelet will not modify the ownership and permissions - of any volume. Note that this field cannot be - set when spec.os.name is windows." format: int64 type: integer fsGroupChangePolicy: - description: 'fsGroupChangePolicy defines behavior - of changing ownership and permission of the - volume before being exposed inside Pod. This - field will only apply to volume types which - support fsGroup based ownership(and permissions). - It will have no effect on ephemeral volume types - such as: secret, configmaps and emptydir. Valid - values are "OnRootMismatch" and "Always". If - not specified, "Always" is used. Note that this - field cannot be set when spec.os.name is windows.' type: string runAsGroup: - description: The GID to run the entrypoint of - the container process. Uses runtime default - if unset. May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence for that container. Note that this - field cannot be set when spec.os.name is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container must - run as a non-root user. If true, the Kubelet - will validate the image at runtime to ensure - that it does not run as UID 0 (root) and fail - to start the container if it does. If unset - or false, no such validation will be performed. - May also be set in SecurityContext. If set - in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. type: boolean runAsUser: - description: The UID to run the entrypoint of - the container process. Defaults to user specified - in image metadata if unspecified. May also be - set in SecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence for that - container. Note that this field cannot be set - when spec.os.name is windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be applied - to all containers. If unspecified, the container - runtime will allocate a random SELinux context - for each container. May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence for that container. Note that this - field cannot be set when spec.os.name is windows. properties: level: - description: Level is SELinux level label - that applies to the container. type: string role: - description: Role is a SELinux role label - that applies to the container. type: string type: - description: Type is a SELinux type label - that applies to the container. type: string user: - description: User is a SELinux user label - that applies to the container. type: string type: object seccompProfile: - description: The seccomp options to use by the - containers in this pod. Note that this field - cannot be set when spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates a - profile defined in a file on the node should - be used. The profile must be preconfigured - on the node to work. Must be a descending - path, relative to the kubelet's configured - seccomp profile location. Must be set if - type is "Localhost". Must NOT be set for - any other type. type: string type: - description: "type indicates which kind of - seccomp profile will be applied. Valid options - are: \n Localhost - a profile defined in - a file on the node should be used. RuntimeDefault - - the container runtime default profile - should be used. Unconfined - no profile - should be applied." type: string required: - type type: object supplementalGroups: - description: A list of groups applied to the first - process run in each container, in addition to - the container's primary GID, the fsGroup (if - specified), and group memberships defined in - the container image for the uid of the container - process. If unspecified, no additional groups - are added to any container. Note that group - memberships defined in the container image for - the uid of the container process are still effective, - even if they are not included in this list. - Note that this field cannot be set when spec.os.name - is windows. items: format: int64 type: integer type: array x-kubernetes-list-type: atomic sysctls: - description: Sysctls hold a list of namespaced - sysctls used for the pod. Pods with unsupported - sysctls (by the container runtime) might fail - to launch. Note that this field cannot be set - when spec.os.name is windows. items: - description: Sysctl defines a kernel parameter - to be set properties: name: - description: Name of a property to set type: string value: - description: Value of a property to set type: string required: - name @@ -20972,149 +8471,52 @@ spec: type: array x-kubernetes-list-type: atomic windowsOptions: - description: The Windows specific settings applied - to all containers. If unspecified, the options - within a container's SecurityContext will be - used. If set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes - precedence. Note that this field cannot be set - when spec.os.name is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is where the - GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA credential - spec named by the GMSACredentialSpecName - field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName is the - name of the GMSA credential spec to use. type: string hostProcess: - description: HostProcess determines if a container - should be run as a 'Host Process' container. - All of a Pod's containers must have the - same effective HostProcess value (it is - not allowed to have a mix of HostProcess - containers and non-HostProcess containers). - In addition, if HostProcess is true then - HostNetwork must also be set to true. type: boolean runAsUserName: - description: The UserName in Windows to run - the entrypoint of the container process. - Defaults to the user specified in image - metadata if unspecified. May also be set - in PodSecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. type: string type: object type: object serviceAccountAnnotations: additionalProperties: type: string - description: ServiceAccountAnnotations are the annotations - that will be attached with the respective ServiceAccount type: object serviceAccountName: - description: 'ServiceAccountName is the name of the - ServiceAccount to use to run this pod. More info: - https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/' type: string tolerations: - description: If specified, the pod's tolerations. items: - description: The pod this Toleration is attached - to tolerates any taint that matches the triple - using the matching operator - . properties: effect: - description: Effect indicates the taint effect - to match. Empty means match all taint effects. - When specified, allowed values are NoSchedule, - PreferNoSchedule and NoExecute. type: string key: - description: Key is the taint key that the toleration - applies to. Empty means match all taint keys. - If the key is empty, operator must be Exists; - this combination means to match all values - and all keys. type: string operator: - description: Operator represents a key's relationship - to the value. Valid operators are Exists and - Equal. Defaults to Equal. Exists is equivalent - to wildcard for value, so that a pod can tolerate - all taints of a particular category. type: string tolerationSeconds: - description: TolerationSeconds represents the - period of time the toleration (which must - be of effect NoExecute, otherwise this field - is ignored) tolerates the taint. By default, - it is not set, which means tolerate the taint - forever (do not evict). Zero and negative - values will be treated as 0 (evict immediately) - by the system. format: int64 type: integer value: - description: Value is the taint value the toleration - matches to. If the operator is Exists, the - value should be empty, otherwise just a regular - string. type: string type: object type: array topologySpreadConstraints: - description: TopologySpreadConstraints describes how - a group of pods ought to spread across topology - domains. Scheduler will schedule pods in a way which - abides by the constraints. All topologySpreadConstraints - are ANDed. items: - description: TopologySpreadConstraint specifies - how to spread matching pods among the given topology. properties: labelSelector: - description: LabelSelector is used to find matching - pods. Pods that match this label selector - are counted to determine the number of pods - in their corresponding topology domain. properties: matchExpressions: - description: matchExpressions is a list - of label selector requirements. The requirements - are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label key - that the selector applies to. type: string operator: - description: operator represents a - key's relationship to a set of values. - Valid operators are In, NotIn, Exists - and DoesNotExist. type: string values: - description: values is an array of - string values. If the operator is - In or NotIn, the values array must - be non-empty. If the operator is - Exists or DoesNotExist, the values - array must be empty. This array - is replaced during a strategic merge - patch. items: type: string type: array @@ -21128,156 +8530,27 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: "MatchLabelKeys is a set of pod - label keys to select the pods over which spreading - will be calculated. The keys are used to lookup - values from the incoming pod labels, those - key-value labels are ANDed with labelSelector - to select the group of existing pods over - which spreading will be calculated for the - incoming pod. The same key is forbidden to - exist in both MatchLabelKeys and LabelSelector. - MatchLabelKeys cannot be set when LabelSelector - isn't set. Keys that don't exist in the incoming - pod labels will be ignored. A null or empty - list means only match against labelSelector. - \n This is a beta field and requires the MatchLabelKeysInPodTopologySpread - feature gate to be enabled (enabled by default)." items: type: string type: array x-kubernetes-list-type: atomic maxSkew: - description: 'MaxSkew describes the degree to - which pods may be unevenly distributed. When - `whenUnsatisfiable=DoNotSchedule`, it is the - maximum permitted difference between the number - of matching pods in the target topology and - the global minimum. The global minimum is - the minimum number of matching pods in an - eligible domain or zero if the number of eligible - domains is less than MinDomains. For example, - in a 3-zone cluster, MaxSkew is set to 1, - and pods with the same labelSelector spread - as 2/2/1: In this case, the global minimum - is 1. | zone1 | zone2 | zone3 | | P P | P - P | P | - if MaxSkew is 1, incoming pod - can only be scheduled to zone3 to become 2/2/2; - scheduling it onto zone1(zone2) would make - the ActualSkew(3-1) on zone1(zone2) violate - MaxSkew(1). - if MaxSkew is 2, incoming pod - can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, - it is used to give higher precedence to topologies - that satisfy it. It''s a required field. Default - value is 1 and 0 is not allowed.' format: int32 type: integer minDomains: - description: "MinDomains indicates a minimum - number of eligible domains. When the number - of eligible domains with matching topology - keys is less than minDomains, Pod Topology - Spread treats \"global minimum\" as 0, and - then the calculation of Skew is performed. - And when the number of eligible domains with - matching topology keys equals or greater than - minDomains, this value has no effect on scheduling. - As a result, when the number of eligible domains - is less than minDomains, scheduler won't schedule - more than maxSkew Pods to those domains. If - value is nil, the constraint behaves as if - MinDomains is equal to 1. Valid values are - integers greater than 0. When value is not - nil, WhenUnsatisfiable must be DoNotSchedule. - \n For example, in a 3-zone cluster, MaxSkew - is set to 2, MinDomains is set to 5 and pods - with the same labelSelector spread as 2/2/2: - | zone1 | zone2 | zone3 | | P P | P P | - \ P P | The number of domains is less than - 5(MinDomains), so \"global minimum\" is treated - as 0. In this situation, new pod with the - same labelSelector cannot be scheduled, because - computed skew will be 3(3 - 0) if new Pod - is scheduled to any of the three zones, it - will violate MaxSkew." format: int32 type: integer nodeAffinityPolicy: - description: "NodeAffinityPolicy indicates how - we will treat Pod's nodeAffinity/nodeSelector - when calculating pod topology spread skew. - Options are: - Honor: only nodes matching - nodeAffinity/nodeSelector are included in - the calculations. - Ignore: nodeAffinity/nodeSelector - are ignored. All nodes are included in the - calculations. \n If this value is nil, the - behavior is equivalent to the Honor policy. - This is a beta-level feature default enabled - by the NodeInclusionPolicyInPodTopologySpread - feature flag." type: string nodeTaintsPolicy: - description: "NodeTaintsPolicy indicates how - we will treat node taints when calculating - pod topology spread skew. Options are: - Honor: - nodes without taints, along with tainted nodes - for which the incoming pod has a toleration, - are included. - Ignore: node taints are ignored. - All nodes are included. \n If this value is - nil, the behavior is equivalent to the Ignore - policy. This is a beta-level feature default - enabled by the NodeInclusionPolicyInPodTopologySpread - feature flag." type: string topologyKey: - description: TopologyKey is the key of node - labels. Nodes that have a label with this - key and identical values are considered to - be in the same topology. We consider each - as a "bucket", and try to put - balanced number of pods into each bucket. - We define a domain as a particular instance - of a topology. Also, we define an eligible - domain as a domain whose nodes meet the requirements - of nodeAffinityPolicy and nodeTaintsPolicy. - e.g. If TopologyKey is "kubernetes.io/hostname", - each Node is a domain of that topology. And, - if TopologyKey is "topology.kubernetes.io/zone", - each zone is a domain of that topology. It's - a required field. type: string whenUnsatisfiable: - description: 'WhenUnsatisfiable indicates how - to deal with a pod if it doesn''t satisfy - the spread constraint. - DoNotSchedule (default) - tells the scheduler not to schedule it. - - ScheduleAnyway tells the scheduler to schedule - the pod in any location, but giving higher - precedence to topologies that would help reduce - the skew. A constraint is considered "Unsatisfiable" - for an incoming pod if and only if every possible - node assignment for that pod would violate - "MaxSkew" on some topology. For example, in - a 3-zone cluster, MaxSkew is set to 1, and - pods with the same labelSelector spread as - 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | - If WhenUnsatisfiable is set to DoNotSchedule, - incoming pod can only be scheduled to zone2(zone3) - to become 3/2/1(3/1/2) as ActualSkew(2-1) - on zone2(zone3) satisfies MaxSkew(1). In other - words, the cluster can still be imbalanced, - but scheduler won''t make it *more* imbalanced. - It''s a required field.' type: string required: - maxSkew @@ -21292,133 +8565,63 @@ spec: type: object type: object timeout: - description: Timeout specifies a duration in seconds that - KubeStash should wait for the hook execution to be completed. - If the hook execution does not finish within this time period, - KubeStash will consider this hook execution as failure. - Then, it will be re-tried according to MaxRetry policy. type: string variables: - description: Variables specifies a list of variables and their - sources that will be used to resolve the HookTemplate. items: - description: EnvVar represents an environment variable present - in a Container. properties: name: - description: Name of the environment variable. Must - be a C_IDENTIFIER. type: string value: - description: 'Variable references $(VAR_NAME) are expanded - using the previously defined environment variables - in the container and any service environment variables. - If a variable cannot be resolved, the reference in - the input string will be unchanged. Double $$ are - reduced to a single $, which allows for escaping the - $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce - the string literal "$(VAR_NAME)". Escaped references - will never be expanded, regardless of whether the - variable exists or not. Defaults to "".' type: string valueFrom: - description: Source for the environment variable's value. - Cannot be used if value is not empty. properties: configMapKeyRef: - description: Selects a key of a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap or - its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field of the pod: supports - metadata.name, metadata.namespace, `metadata.labels['''']`, - `metadata.annotations['''']`, spec.nodeName, - spec.serviceAccountName, status.hostIP, status.podIP, - status.podIPs.' properties: apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". type: string fieldPath: - description: Path of the field to select in - the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource of the container: - only resources limits and requests (limits.cpu, - limits.memory, limits.ephemeral-storage, requests.cpu, - requests.memory and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: required for volumes, - optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output format of - the exposed resources, defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource to select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret in the pod's - namespace properties: key: - description: The key of the secret to select - from. Must be a valid secret key. type: string name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret or its - key must be defined type: boolean required: - key @@ -21430,61 +8633,21 @@ spec: type: object type: array volumeMounts: - description: VolumeMounts specifies the mount for the volumes - specified in `Volumes` section Use this field only for `Function` - type hook executor. items: - description: VolumeMount describes a mounting of a Volume - within a container. properties: mountPath: - description: Path within the container at which the - volume should be mounted. Must not contain ':'. type: string mountPropagation: - description: mountPropagation determines how mounts - are propagated from the host to container and the - other way around. When not set, MountPropagationNone - is used. This field is beta in 1.10. When RecursiveReadOnly - is set to IfPossible or to Enabled, MountPropagation - must be None or unspecified (which defaults to None). type: string name: - description: This must match the Name of a Volume. type: string readOnly: - description: Mounted read-only if true, read-write otherwise - (false or unspecified). Defaults to false. type: boolean recursiveReadOnly: - description: "RecursiveReadOnly specifies whether read-only - mounts should be handled recursively. \n If ReadOnly - is false, this field has no meaning and must be unspecified. - \n If ReadOnly is true, and this field is set to Disabled, - the mount is not made recursively read-only. If this - field is set to IfPossible, the mount is made recursively - read-only, if it is supported by the container runtime. - \ If this field is set to Enabled, the mount is made - recursively read-only if it is supported by the container - runtime, otherwise the pod will not be started and - an error will be generated to indicate the reason. - \n If this field is set to IfPossible or Enabled, - MountPropagation must be set to None (or be unspecified, - which defaults to None). \n If this field is not specified, - it is treated as an equivalent of Disabled." type: string subPath: - description: Path within the volume from which the container's - volume should be mounted. Defaults to "" (volume's - root). type: string subPathExpr: - description: Expanded path within the volume from which - the container's volume should be mounted. Behaves - similarly to SubPath but environment variable references - $(VAR_NAME) are expanded using the container's environment. - Defaults to "" (volume's root). SubPathExpr and SubPath - are mutually exclusive. type: string required: - mountPath @@ -21492,257 +8655,109 @@ spec: type: object type: array volumes: - description: Volumes indicates the list of volumes of targeted - application that should be mounted on the hook executor. - Use this field only for `Function` type hook executor. items: - description: Volume represents a named volume in a pod that - may be accessed by any container in the pod. properties: awsElasticBlockStore: - description: 'awsElasticBlockStore represents an AWS - Disk resource that is attached to a kubelet''s host - machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' properties: fsType: - description: 'fsType is the filesystem type of the - volume that you want to mount. Tip: Ensure that - the filesystem type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string partition: - description: 'partition is the partition in the - volume that you want to mount. If omitted, the - default is to mount by volume name. Examples: - For volume /dev/sda1, you specify the partition - as "1". Similarly, the volume partition for /dev/sda - is "0" (or you can leave the property empty).' format: int32 type: integer readOnly: - description: 'readOnly value true will force the - readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: boolean volumeID: - description: 'volumeID is unique ID of the persistent - disk resource in AWS (Amazon EBS volume). More - info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: string required: - volumeID type: object azureDisk: - description: azureDisk represents an Azure Data Disk - mount on the host and bind mount to the pod. properties: cachingMode: - description: 'cachingMode is the Host Caching mode: - None, Read Only, Read Write.' type: string diskName: - description: diskName is the Name of the data disk - in the blob storage type: string diskURI: - description: diskURI is the URI of data disk in - the blob storage type: string fsType: - description: fsType is Filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string kind: - description: 'kind expected values are Shared: multiple - blob disks per storage account Dedicated: single - blob disk per storage account Managed: azure - managed data disk (only in managed availability - set). defaults to shared' type: string readOnly: - description: readOnly Defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean required: - diskName - diskURI type: object azureFile: - description: azureFile represents an Azure File Service - mount on the host and bind mount to the pod. properties: readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean secretName: - description: secretName is the name of secret that - contains Azure Storage Account Name and Key type: string shareName: - description: shareName is the azure share Name type: string required: - secretName - shareName type: object cephfs: - description: cephFS represents a Ceph FS mount on the - host that shares a pod's lifetime properties: monitors: - description: 'monitors is Required: Monitors is - a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic path: - description: 'path is Optional: Used as the mounted - root, rather than the full Ceph tree, default - is /' type: string readOnly: - description: 'readOnly is Optional: Defaults to - false (read/write). ReadOnly here will force the - ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: boolean secretFile: - description: 'secretFile is Optional: SecretFile - is the path to key ring for User, default is /etc/ceph/user.secret - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string secretRef: - description: 'secretRef is Optional: SecretRef is - reference to the authentication secret for User, - default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is optional: User is the rados - user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string required: - monitors type: object cinder: - description: 'cinder represents a cinder volume attached - and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' properties: fsType: - description: 'fsType is the filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Examples: "ext4", "xfs", "ntfs". - Implicitly inferred to be "ext4" if unspecified. - More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string readOnly: - description: 'readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: boolean secretRef: - description: 'secretRef is optional: points to a - secret object containing parameters used to connect - to OpenStack.' properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeID: - description: 'volumeID used to identify the volume - in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string required: - volumeID type: object configMap: - description: configMap represents a configMap that should - populate this volume properties: defaultMode: - description: 'defaultMode is optional: mode bits - used to set permissions on created files by default. - Must be an octal value between 0000 and 0777 or - a decimal value between 0 and 511. YAML accepts - both octal and decimal values, JSON requires decimal - values for mode bits. Defaults to 0644. Directories - within the path are not affected by this setting. - This might be in conflict with other options that - affect the file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer items: - description: items if unspecified, each key-value - pair in the Data field of the referenced ConfigMap - will be projected into the volume as a file whose - name is the key and content is the value. If specified, - the listed keys will be projected into the specified - paths, and unlisted keys will not be present. - If a key is specified which is not present in - the ConfigMap, the volume setup will error unless - it is marked optional. Paths must be relative - and may not contain the '..' path or start with - '..'. items: - description: Maps a string key to a path within - a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: mode bits - used to set permissions on this file. Must - be an octal value between 0000 and 0777 - or a decimal value between 0 and 511. YAML - accepts both octal and decimal values, JSON - requires decimal values for mode bits. If - not specified, the volume defaultMode will - be used. This might be in conflict with - other options that affect the file mode, - like fsGroup, and the result can be other - mode bits set.' format: int32 type: integer path: - description: path is the relative path of - the file to map the key to. May not be an - absolute path. May not contain the path - element '..'. May not start with the string - '..'. type: string required: - key @@ -21752,161 +8767,67 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. This field is - effectively required, but due to backwards compatibility - is allowed to be empty. Instances of this type - with an empty value here are almost certainly - wrong. TODO: Add other useful fields. apiVersion, - kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether the ConfigMap - or its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic csi: - description: csi (Container Storage Interface) represents - ephemeral storage that is handled by certain external - CSI drivers (Beta feature). properties: driver: - description: driver is the name of the CSI driver - that handles this volume. Consult with your admin - for the correct name as registered in the cluster. type: string fsType: - description: fsType to mount. Ex. "ext4", "xfs", - "ntfs". If not provided, the empty value is passed - to the associated CSI driver which will determine - the default filesystem to apply. type: string nodePublishSecretRef: - description: nodePublishSecretRef is a reference - to the secret object containing sensitive information - to pass to the CSI driver to complete the CSI - NodePublishVolume and NodeUnpublishVolume calls. - This field is optional, and may be empty if no - secret is required. If the secret object contains - more than one secret, all secret references are - passed. properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic readOnly: - description: readOnly specifies a read-only configuration - for the volume. Defaults to false (read/write). type: boolean volumeAttributes: additionalProperties: type: string - description: volumeAttributes stores driver-specific - properties that are passed to the CSI driver. - Consult your driver's documentation for supported - values. type: object required: - driver type: object downwardAPI: - description: downwardAPI represents downward API about - the pod that should populate this volume properties: defaultMode: - description: 'Optional: mode bits to use on created - files by default. Must be a Optional: mode bits - used to set permissions on created files by default. - Must be an octal value between 0000 and 0777 or - a decimal value between 0 and 511. YAML accepts - both octal and decimal values, JSON requires decimal - values for mode bits. Defaults to 0644. Directories - within the path are not affected by this setting. - This might be in conflict with other options that - affect the file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer items: - description: Items is a list of downward API volume - file items: - description: DownwardAPIVolumeFile represents - information to create the file containing the - pod field properties: fieldRef: - description: 'Required: Selects a field of - the pod: only annotations, labels, name, - namespace and uid are supported.' properties: apiVersion: - description: Version of the schema the - FieldPath is written in terms of, defaults - to "v1". type: string fieldPath: - description: Path of the field to select - in the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode bits used to - set permissions on this file, must be an - octal value between 0000 and 0777 or a decimal - value between 0 and 511. YAML accepts both - octal and decimal values, JSON requires - decimal values for mode bits. If not specified, - the volume defaultMode will be used. This - might be in conflict with other options - that affect the file mode, like fsGroup, - and the result can be other mode bits set.' format: int32 type: integer path: - description: 'Required: Path is the relative - path name of the file to be created. Must - not be absolute or contain the ''..'' path. - Must be utf-8 encoded. The first item of - the relative path must not start with ''..''' type: string resourceFieldRef: - description: 'Selects a resource of the container: - only resources limits and requests (limits.cpu, - limits.memory, requests.cpu and requests.memory) - are currently supported.' properties: containerName: - description: 'Container name: required - for volumes, optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output format - of the exposed resources, defaults to - "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource to select' type: string required: - resource @@ -21919,195 +8840,50 @@ spec: x-kubernetes-list-type: atomic type: object emptyDir: - description: 'emptyDir represents a temporary directory - that shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' properties: medium: - description: 'medium represents what type of storage - medium should back this directory. The default - is "" which means to use the node''s default medium. - Must be an empty string (default) or Memory. More - info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' type: string sizeLimit: anyOf: - type: integer - type: string - description: 'sizeLimit is the total amount of local - storage required for this EmptyDir volume. The - size limit is also applicable for memory medium. - The maximum usage on memory medium EmptyDir would - be the minimum value between the SizeLimit specified - here and the sum of memory limits of all containers - in a pod. The default is nil which means that - the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object ephemeral: - description: "ephemeral represents a volume that is - handled by a cluster storage driver. The volume's - lifecycle is tied to the pod that defines it - it - will be created before the pod starts, and deleted - when the pod is removed. \n Use this if: a) the volume - is only needed while the pod runs, b) features of - normal volumes like restoring from snapshot or capacity - tracking are needed, c) the storage driver is specified - through a storage class, and d) the storage driver - supports dynamic volume provisioning through a PersistentVolumeClaim - (see EphemeralVolumeSource for more information on - the connection between this volume type and PersistentVolumeClaim). - \n Use PersistentVolumeClaim or one of the vendor-specific - APIs for volumes that persist for longer than the - lifecycle of an individual pod. \n Use CSI for light-weight - local ephemeral volumes if the CSI driver is meant - to be used that way - see the documentation of the - driver for more information. \n A pod can use both - types of ephemeral volumes and persistent volumes - at the same time." properties: volumeClaimTemplate: - description: "Will be used to create a stand-alone - PVC to provision the volume. The pod in which - this EphemeralVolumeSource is embedded will be - the owner of the PVC, i.e. the PVC will be deleted - together with the pod. The name of the PVC will - be `-` where `` - is the name from the `PodSpec.Volumes` array entry. - Pod validation will reject the pod if the concatenated - name is not valid for a PVC (for example, too - long). \n An existing PVC with that name that - is not owned by the pod will *not* be used for - the pod to avoid using an unrelated volume by - mistake. Starting the pod is then blocked until - the unrelated PVC is removed. If such a pre-created - PVC is meant to be used by the pod, the PVC has - to updated with an owner reference to the pod - once the pod exists. Normally this should not - be necessary, but it may be useful when manually - reconstructing a broken cluster. \n This field - is read-only and no changes will be made by Kubernetes - to the PVC after it has been created. \n Required, - must not be nil." properties: metadata: - description: May contain labels and annotations - that will be copied into the PVC when creating - it. No other fields are allowed and will be - rejected during validation. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured - key value map stored with a resource that - may be set by external tools to store - and retrieve arbitrary metadata. They - are not queryable and should be preserved - when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName is an optional - prefix, used by the server, to generate - a unique name ONLY IF the Name field has - not been provided. If this field is used, - the name returned to the client will be - different than the name passed. This value - will also be combined with a unique suffix. - The provided value has the same validation - rules as the Name field, and may be truncated - by the length of the suffix required to - make the value unique on the server. \n - If this field is specified and the generated - name exists, the server will NOT return - a 409 - instead, it will either return - 201 Created or 500 with Reason ServerTimeout - indicating a unique name could not be - found in the time allotted, and the client - should retry (optionally after the time - indicated in the Retry-After header). - \n Applied only if Name is not specified. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string keys and values - that can be used to organize and categorize - (scope and select) objects. May match - selectors of replication controllers and - services. More info: http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must be unique within - a namespace. Is required when creating - resources, although some resources may - allow a client to request the generation - of an appropriate name automatically. - Name is primarily intended for creation - idempotence and configuration definition. - Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace defines the space - within each name must be unique. An empty - namespace is equivalent to the \"default\" - namespace, but \"default\" is the canonical - representation. Not all objects are required - to be scoped to a namespace - the value - of this field for those objects will be - empty. \n Must be a DNS_LABEL. Cannot - be updated. More info: http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects depended by - this object. If ALL objects in the list - have been deleted, this object will be - garbage collected. If this object is managed - by a controller, then an entry in this - list will point to this controller, with - the controller field set to true. There - cannot be more than one managing controller. items: - description: OwnerReference contains enough - information to let you identify an owning - object. An owning object must be in - the same namespace as the dependent, - or be cluster-scoped, so there is no - namespace field. properties: apiVersion: - description: API version of the referent. type: string blockOwnerDeletion: - description: If true, AND if the owner - has the "foregroundDeletion" finalizer, - then the owner cannot be deleted - from the key-value store until this - reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage collector interacts - with this field and enforces the - foreground deletion. Defaults to - false. To set this field, a user - needs "delete" permission of the - owner, otherwise 422 (Unprocessable - Entity) will be returned. type: boolean controller: - description: If true, this reference - points to the managing controller. type: boolean kind: - description: 'Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -22119,52 +8895,19 @@ spec: type: array type: object spec: - description: The specification for the PersistentVolumeClaim. - The entire content is copied unchanged into - the PVC that gets created from this template. - The same fields as in a PersistentVolumeClaim - are also valid here. properties: accessModes: - description: 'accessModes contains the desired - access modes the volume should have. More - info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource field can be used - to specify either: * An existing VolumeSnapshot - object (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an external controller - can support the specified data source, - it will create a new volume based on the - contents of the specified data source. - When the AnyVolumeDataSource feature gate - is enabled, dataSource contents will be - copied to dataSourceRef, and dataSourceRef - contents will be copied to dataSource - when dataSourceRef.namespace is not specified. - If the namespace is specified, then dataSourceRef - will not be copied to dataSource.' properties: apiGroup: - description: APIGroup is the group for - the resource being referenced. If - APIGroup is not specified, the specified - Kind must be in the core API group. - For any other third-party types, APIGroup - is required. type: string kind: - description: Kind is the type of resource - being referenced type: string name: - description: Name is the name of resource - being referenced type: string required: - kind @@ -22172,85 +8915,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef specifies the - object from which to populate the volume - with data, if a non-empty volume is desired. - This may be any object from a non-empty - API group (non core object) or a PersistentVolumeClaim - object. When this field is specified, - volume binding will only succeed if the - type of the specified object matches some - installed volume populator or dynamic - provisioner. This field will replace the - functionality of the dataSource field - and as such if both fields are non-empty, - they must have the same value. For backwards - compatibility, when namespace isn''t specified - in dataSourceRef, both fields (dataSource - and dataSourceRef) will be set to the - same value automatically if one of them - is empty and the other is non-empty. When - namespace is specified in dataSourceRef, - dataSource isn''t set to the same value - and must be empty. There are three important - differences between dataSource and dataSourceRef: - * While dataSource only allows two specific - types of objects, dataSourceRef allows - any non-core object, as well as PersistentVolumeClaim - objects. * While dataSource ignores disallowed - values (dropping them), dataSourceRef - preserves all values, and generates an - error if a disallowed value is specified. - * While dataSource only allows local objects, - dataSourceRef allows objects in any namespaces. - (Beta) Using this field requires the AnyVolumeDataSource - feature gate to be enabled. (Alpha) Using - the namespace field of dataSourceRef requires - the CrossNamespaceVolumeDataSource feature - gate to be enabled.' properties: apiGroup: - description: APIGroup is the group for - the resource being referenced. If - APIGroup is not specified, the specified - Kind must be in the core API group. - For any other third-party types, APIGroup - is required. type: string kind: - description: Kind is the type of resource - being referenced type: string name: - description: Name is the name of resource - being referenced type: string namespace: - description: Namespace is the namespace - of resource being referenced Note - that when a namespace is specified, - a gateway.networking.k8s.io/ReferenceGrant - object is required in the referent - namespace to allow that namespace's - owner to accept the reference. See - the ReferenceGrant documentation for - details. (Alpha) This field requires - the CrossNamespaceVolumeDataSource - feature gate to be enabled. type: string required: - kind - name type: object resources: - description: 'resources represents the minimum - resources the volume should have. If RecoverVolumeExpansionFailure - feature is enabled users are allowed to - specify resource requirements that are - lower than previous value but must still - be higher than capacity recorded in the - status field of the claim. More info: - https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -22259,9 +8937,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum - amount of compute resources allowed. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -22270,50 +8945,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the - minimum amount of compute resources - required. If Requests is omitted for - a container, it defaults to Limits - if that is explicitly specified, otherwise - to an implementation-defined value. - Requests cannot exceed Limits. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is a label query over - volumes to consider for binding. properties: matchExpressions: - description: matchExpressions is a list - of label selector requirements. The - requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to a set - of values. Valid operators are - In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array - of string values. If the operator - is In or NotIn, the values array - must be non-empty. If the operator - is Exists or DoesNotExist, the - values array must be empty. - This array is replaced during - a strategic merge patch. items: type: string type: array @@ -22327,57 +8970,16 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of - {key,value} pairs. A single {key,value} - in the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName is the name - of the StorageClass required by the claim. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName - may be used to set the VolumeAttributesClass - used by this claim. If specified, the - CSI driver will create or update the volume - with the attributes defined in the corresponding - VolumeAttributesClass. This has a different - purpose than storageClassName, it can - be changed after the claim is created. - An empty string value means that no VolumeAttributesClass - will be applied to the claim but it''s - not allowed to reset this field to empty - string once it is set. If unspecified - and the PersistentVolumeClaim is unbound, - the default VolumeAttributesClass will - be set by the persistentvolume controller - if it exists. If the resource referred - to by volumeAttributesClass does not exist, - this PersistentVolumeClaim will be set - to a Pending state, as reflected by the - modifyVolumeStatus field, until such as - a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires the - VolumeAttributesClass feature gate to - be enabled.' type: string volumeMode: - description: volumeMode defines what type - of volume is required by the claim. Value - of Filesystem is implied when not included - in claim spec. type: string volumeName: - description: volumeName is the binding reference - to the PersistentVolume backing this claim. type: string type: object required: @@ -22385,89 +8987,41 @@ spec: type: object type: object fc: - description: fc represents a Fibre Channel resource - that is attached to a kubelet's host machine and then - exposed to the pod. properties: fsType: - description: 'fsType is the filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. TODO: how - do we prevent errors in the filesystem from compromising - the machine' type: string lun: - description: 'lun is Optional: FC target lun number' format: int32 type: integer readOnly: - description: 'readOnly is Optional: Defaults to - false (read/write). ReadOnly here will force the - ReadOnly setting in VolumeMounts.' type: boolean targetWWNs: - description: 'targetWWNs is Optional: FC target - worldwide names (WWNs)' items: type: string type: array x-kubernetes-list-type: atomic wwids: - description: 'wwids Optional: FC volume world wide - identifiers (wwids) Either wwids or combination - of targetWWNs and lun must be set, but not both - simultaneously.' items: type: string type: array x-kubernetes-list-type: atomic type: object flexVolume: - description: flexVolume represents a generic volume - resource that is provisioned/attached using an exec - based plugin. properties: driver: - description: driver is the name of the driver to - use for this volume. type: string fsType: - description: fsType is the filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". The - default filesystem depends on FlexVolume script. type: string options: additionalProperties: type: string - description: 'options is Optional: this field holds - extra command options if any.' type: object readOnly: - description: 'readOnly is Optional: defaults to - false (read/write). ReadOnly here will force the - ReadOnly setting in VolumeMounts.' type: boolean secretRef: - description: 'secretRef is Optional: secretRef is - reference to the secret object containing sensitive - information to pass to the plugin scripts. This - may be empty if no secret object is specified. - If the secret object contains more than one secret, - all secrets are passed to the plugin scripts.' properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic @@ -22475,179 +9029,79 @@ spec: - driver type: object flocker: - description: flocker represents a Flocker volume attached - to a kubelet's host machine. This depends on the Flocker - control service being running properties: datasetName: - description: datasetName is Name of the dataset - stored as metadata -> name on the dataset for - Flocker should be considered as deprecated type: string datasetUUID: - description: datasetUUID is the UUID of the dataset. - This is unique identifier of a Flocker dataset type: string type: object gcePersistentDisk: - description: 'gcePersistentDisk represents a GCE Disk - resource that is attached to a kubelet''s host machine - and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' properties: fsType: - description: 'fsType is filesystem type of the volume - that you want to mount. Tip: Ensure that the filesystem - type is supported by the host operating system. - Examples: "ext4", "xfs", "ntfs". Implicitly inferred - to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string partition: - description: 'partition is the partition in the - volume that you want to mount. If omitted, the - default is to mount by volume name. Examples: - For volume /dev/sda1, you specify the partition - as "1". Similarly, the volume partition for /dev/sda - is "0" (or you can leave the property empty). - More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' format: int32 type: integer pdName: - description: 'pdName is unique name of the PD resource - in GCE. Used to identify the disk in GCE. More - info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: string readOnly: - description: 'readOnly here will force the ReadOnly - setting in VolumeMounts. Defaults to false. More - info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: boolean required: - pdName type: object glusterfs: - description: 'glusterfs represents a Glusterfs mount - on the host that shares a pod''s lifetime. More info: - https://examples.k8s.io/volumes/glusterfs/README.md' properties: endpoints: - description: 'endpoints is the endpoint name that - details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string path: - description: 'path is the Glusterfs volume path. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string readOnly: - description: 'readOnly here will force the Glusterfs - volume to be mounted with read-only permissions. - Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: boolean required: - endpoints - path type: object hostPath: - description: 'hostPath represents a pre-existing file - or directory on the host machine that is directly - exposed to the container. This is generally used for - system agents or other privileged things that are - allowed to see the host machine. Most containers will - NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- TODO(jonesdl) We need to restrict who can use - host directory mounts and who can/can not mount host - directories as read/write.' properties: path: - description: 'path of the directory on the host. - If the path is a symlink, it will follow the link - to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string type: - description: 'type for HostPath Volume Defaults - to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string required: - path type: object iscsi: - description: 'iscsi represents an ISCSI Disk resource - that is attached to a kubelet''s host machine and - then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md' properties: chapAuthDiscovery: - description: chapAuthDiscovery defines whether support - iSCSI Discovery CHAP authentication type: boolean chapAuthSession: - description: chapAuthSession defines whether support - iSCSI Session CHAP authentication type: boolean fsType: - description: 'fsType is the filesystem type of the - volume that you want to mount. Tip: Ensure that - the filesystem type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string initiatorName: - description: initiatorName is the custom iSCSI Initiator - Name. If initiatorName is specified with iscsiInterface - simultaneously, new iSCSI interface : will be created for the connection. type: string iqn: - description: iqn is the target iSCSI Qualified Name. type: string iscsiInterface: - description: iscsiInterface is the interface Name - that uses an iSCSI transport. Defaults to 'default' - (tcp). type: string lun: - description: lun represents iSCSI Target Lun number. format: int32 type: integer portals: - description: portals is the iSCSI Target Portal - List. The portal is either an IP or ip_addr:port - if the port is other than default (typically TCP - ports 860 and 3260). items: type: string type: array x-kubernetes-list-type: atomic readOnly: - description: readOnly here will force the ReadOnly - setting in VolumeMounts. Defaults to false. type: boolean secretRef: - description: secretRef is the CHAP Secret for iSCSI - target and initiator authentication properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic targetPortal: - description: targetPortal is iSCSI Target Portal. - The Portal is either an IP or ip_addr:port if - the port is other than default (typically TCP - ports 860 and 3260). type: string required: - iqn @@ -22655,167 +9109,68 @@ spec: - targetPortal type: object name: - description: 'name of the volume. Must be a DNS_LABEL - and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string nfs: - description: 'nfs represents an NFS mount on the host - that shares a pod''s lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' properties: path: - description: 'path that is exported by the NFS server. - More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string readOnly: - description: 'readOnly here will force the NFS export - to be mounted with read-only permissions. Defaults - to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: boolean server: - description: 'server is the hostname or IP address - of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string required: - path - server type: object persistentVolumeClaim: - description: 'persistentVolumeClaimVolumeSource represents - a reference to a PersistentVolumeClaim in the same - namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: claimName: - description: 'claimName is the name of a PersistentVolumeClaim - in the same namespace as the pod using this volume. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' type: string readOnly: - description: readOnly Will force the ReadOnly setting - in VolumeMounts. Default false. type: boolean required: - claimName type: object photonPersistentDisk: - description: photonPersistentDisk represents a PhotonController - persistent disk attached and mounted on kubelets host - machine properties: fsType: - description: fsType is the filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string pdID: - description: pdID is the ID that identifies Photon - Controller persistent disk type: string required: - pdID type: object portworxVolume: - description: portworxVolume represents a portworx volume - attached and mounted on kubelets host machine properties: fsType: - description: fSType represents the filesystem type - to mount Must be a filesystem type supported by - the host operating system. Ex. "ext4", "xfs". - Implicitly inferred to be "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean volumeID: - description: volumeID uniquely identifies a Portworx - volume type: string required: - volumeID type: object projected: - description: projected items for all in one resources - secrets, configmaps, and downward API properties: defaultMode: - description: defaultMode are the mode bits used - to set permissions on created files by default. - Must be an octal value between 0000 and 0777 or - a decimal value between 0 and 511. YAML accepts - both octal and decimal values, JSON requires decimal - values for mode bits. Directories within the path - are not affected by this setting. This might be - in conflict with other options that affect the - file mode, like fsGroup, and the result can be - other mode bits set. format: int32 type: integer sources: - description: sources is the list of volume projections items: - description: Projection that may be projected - along with other supported volume types properties: clusterTrustBundle: - description: "ClusterTrustBundle allows a - pod to access the `.spec.trustBundle` field - of ClusterTrustBundle objects in an auto-updating - file. \n Alpha, gated by the ClusterTrustBundleProjection - feature gate. \n ClusterTrustBundle objects - can either be selected by name, or by the - combination of signer name and a label selector. - \n Kubelet performs aggressive normalization - of the PEM contents written into the pod - filesystem. Esoteric PEM features such - as inter-block comments and block headers - are stripped. Certificates are deduplicated. - The ordering of certificates within the - file is arbitrary, and Kubelet may change - the order over time." properties: labelSelector: - description: Select all ClusterTrustBundles - that match this label selector. Only - has effect if signerName is set. Mutually-exclusive - with name. If unset, interpreted as - "match nothing". If set but empty, - interpreted as "match everything". properties: matchExpressions: - description: matchExpressions is a - list of label selector requirements. - The requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label - key that the selector applies - to. type: string operator: - description: operator represents - a key's relationship to a - set of values. Valid operators - are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an array - of string values. If the operator - is In or NotIn, the values - array must be non-empty. If - the operator is Exists or - DoesNotExist, the values array - must be empty. This array - is replaced during a strategic - merge patch. items: type: string type: array @@ -22829,95 +9184,31 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map - of {key,value} pairs. A single {key,value} - in the matchLabels map is equivalent - to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are - ANDed. type: object type: object x-kubernetes-map-type: atomic name: - description: Select a single ClusterTrustBundle - by object name. Mutually-exclusive - with signerName and labelSelector. type: string optional: - description: If true, don't block pod - startup if the referenced ClusterTrustBundle(s) - aren't available. If using name, then - the named ClusterTrustBundle is allowed - not to exist. If using signerName, - then the combination of signerName and - labelSelector is allowed to match zero - ClusterTrustBundles. type: boolean path: - description: Relative path from the volume - root to write the bundle. type: string signerName: - description: Select all ClusterTrustBundles - that match this signer name. Mutually-exclusive - with name. The contents of all selected - ClusterTrustBundles will be unified - and deduplicated. type: string required: - path type: object configMap: - description: configMap information about the - configMap data to project properties: items: - description: items if unspecified, each - key-value pair in the Data field of - the referenced ConfigMap will be projected - into the volume as a file whose name - is the key and content is the value. - If specified, the listed keys will be - projected into the specified paths, - and unlisted keys will not be present. - If a key is specified which is not present - in the ConfigMap, the volume setup will - error unless it is marked optional. - Paths must be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key to a - path within a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an octal - value between 0000 and 0777 or - a decimal value between 0 and - 511. YAML accepts both octal and - decimal values, JSON requires - decimal values for mode bits. - If not specified, the volume defaultMode - will be used. This might be in - conflict with other options that - affect the file mode, like fsGroup, - and the result can be other mode - bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the key - to. May not be an absolute path. - May not contain the path element - '..'. May not start with the string - '..'. type: string required: - key @@ -22927,106 +9218,42 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether - the ConfigMap or its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic downwardAPI: - description: downwardAPI information about - the downwardAPI data to project properties: items: - description: Items is a list of DownwardAPIVolume - file items: - description: DownwardAPIVolumeFile represents - information to create the file containing - the pod field properties: fieldRef: - description: 'Required: Selects - a field of the pod: only annotations, - labels, name, namespace and uid - are supported.' properties: apiVersion: - description: Version of the - schema the FieldPath is written - in terms of, defaults to "v1". type: string fieldPath: - description: Path of the field - to select in the specified - API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode bits - used to set permissions on this - file, must be an octal value between - 0000 and 0777 or a decimal value - between 0 and 511. YAML accepts - both octal and decimal values, - JSON requires decimal values for - mode bits. If not specified, the - volume defaultMode will be used. - This might be in conflict with - other options that affect the - file mode, like fsGroup, and the - result can be other mode bits - set.' format: int32 type: integer path: - description: 'Required: Path is the - relative path name of the file - to be created. Must not be absolute - or contain the ''..'' path. Must - be utf-8 encoded. The first item - of the relative path must not - start with ''..''' type: string resourceFieldRef: - description: 'Selects a resource - of the container: only resources - limits and requests (limits.cpu, - limits.memory, requests.cpu and - requests.memory) are currently - supported.' properties: containerName: - description: 'Container name: - required for volumes, optional - for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource - to select' type: string required: - resource @@ -23039,54 +9266,16 @@ spec: x-kubernetes-list-type: atomic type: object secret: - description: secret information about the - secret data to project properties: items: - description: items if unspecified, each - key-value pair in the Data field of - the referenced Secret will be projected - into the volume as a file whose name - is the key and content is the value. - If specified, the listed keys will be - projected into the specified paths, - and unlisted keys will not be present. - If a key is specified which is not present - in the Secret, the volume setup will - error unless it is marked optional. - Paths must be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key to a - path within a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: - mode bits used to set permissions - on this file. Must be an octal - value between 0000 and 0777 or - a decimal value between 0 and - 511. YAML accepts both octal and - decimal values, JSON requires - decimal values for mode bits. - If not specified, the volume defaultMode - will be used. This might be in - conflict with other options that - affect the file mode, like fsGroup, - and the result can be other mode - bits set.' format: int32 type: integer path: - description: path is the relative - path of the file to map the key - to. May not be an absolute path. - May not contain the path element - '..'. May not start with the string - '..'. type: string required: - key @@ -23096,54 +9285,19 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. This - field is effectively required, but due - to backwards compatibility is allowed - to be empty. Instances of this type - with an empty value here are almost - certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when - controller-gen doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional field specify whether - the Secret or its key must be defined type: boolean type: object x-kubernetes-map-type: atomic serviceAccountToken: - description: serviceAccountToken is information - about the serviceAccountToken data to project properties: audience: - description: audience is the intended - audience of the token. A recipient of - a token must identify itself with an - identifier specified in the audience - of the token, and otherwise should reject - the token. The audience defaults to - the identifier of the apiserver. type: string expirationSeconds: - description: expirationSeconds is the - requested duration of validity of the - service account token. As the token - approaches expiration, the kubelet volume - plugin will proactively rotate the service - account token. The kubelet will start - trying to rotate the token if the token - is older than 80 percent of its time - to live or if the token is older than - 24 hours.Defaults to 1 hour and must - be at least 10 minutes. format: int64 type: integer path: - description: path is the path relative - to the mount point of the file to project - the token into. type: string required: - path @@ -23153,173 +9307,79 @@ spec: x-kubernetes-list-type: atomic type: object quobyte: - description: quobyte represents a Quobyte mount on the - host that shares a pod's lifetime properties: group: - description: group to map volume access to Default - is no group type: string readOnly: - description: readOnly here will force the Quobyte - volume to be mounted with read-only permissions. - Defaults to false. type: boolean registry: - description: registry represents a single or multiple - Quobyte Registry services specified as a string - as host:port pair (multiple entries are separated - with commas) which acts as the central registry - for volumes type: string tenant: - description: tenant owning the given Quobyte volume - in the Backend Used with dynamically provisioned - Quobyte volumes, value is set by the plugin type: string user: - description: user to map volume access to Defaults - to serivceaccount user type: string volume: - description: volume is a string that references - an already created Quobyte volume by name. type: string required: - registry - volume type: object rbd: - description: 'rbd represents a Rados Block Device mount - on the host that shares a pod''s lifetime. More info: - https://examples.k8s.io/volumes/rbd/README.md' properties: fsType: - description: 'fsType is the filesystem type of the - volume that you want to mount. Tip: Ensure that - the filesystem type is supported by the host operating - system. Examples: "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. More info: - https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the filesystem - from compromising the machine' type: string image: - description: 'image is the rados image name. More - info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string keyring: - description: 'keyring is the path to key ring for - RBDUser. Default is /etc/ceph/keyring. More info: - https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string monitors: - description: 'monitors is a collection of Ceph monitors. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic pool: - description: 'pool is the rados pool name. Default - is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string readOnly: - description: 'readOnly here will force the ReadOnly - setting in VolumeMounts. Defaults to false. More - info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: boolean secretRef: - description: 'secretRef is name of the authentication - secret for RBDUser. If provided overrides keyring. - Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is the rados user name. Default - is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string required: - image - monitors type: object scaleIO: - description: scaleIO represents a ScaleIO persistent - volume attached and mounted on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". Default - is "xfs". type: string gateway: - description: gateway is the host address of the - ScaleIO API Gateway. type: string protectionDomain: - description: protectionDomain is the name of the - ScaleIO Protection Domain for the configured storage. type: string readOnly: - description: readOnly Defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean secretRef: - description: secretRef references to the secret - for ScaleIO user and other sensitive information. - If this is not provided, Login operation will - fail. properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic sslEnabled: - description: sslEnabled Flag enable/disable SSL - communication with Gateway, default false type: boolean storageMode: - description: storageMode indicates whether the storage - for a volume should be ThickProvisioned or ThinProvisioned. - Default is ThinProvisioned. type: string storagePool: - description: storagePool is the ScaleIO Storage - Pool associated with the protection domain. type: string system: - description: system is the name of the storage system - as configured in ScaleIO. type: string volumeName: - description: volumeName is the name of a volume - already created in the ScaleIO system that is - associated with this volume source. type: string required: - gateway @@ -23327,61 +9387,19 @@ spec: - system type: object secret: - description: 'secret represents a secret that should - populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' properties: defaultMode: - description: 'defaultMode is Optional: mode bits - used to set permissions on created files by default. - Must be an octal value between 0000 and 0777 or - a decimal value between 0 and 511. YAML accepts - both octal and decimal values, JSON requires decimal - values for mode bits. Defaults to 0644. Directories - within the path are not affected by this setting. - This might be in conflict with other options that - affect the file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer items: - description: items If unspecified, each key-value - pair in the Data field of the referenced Secret - will be projected into the volume as a file whose - name is the key and content is the value. If specified, - the listed keys will be projected into the specified - paths, and unlisted keys will not be present. - If a key is specified which is not present in - the Secret, the volume setup will error unless - it is marked optional. Paths must be relative - and may not contain the '..' path or start with - '..'. items: - description: Maps a string key to a path within - a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: mode bits - used to set permissions on this file. Must - be an octal value between 0000 and 0777 - or a decimal value between 0 and 511. YAML - accepts both octal and decimal values, JSON - requires decimal values for mode bits. If - not specified, the volume defaultMode will - be used. This might be in conflict with - other options that affect the file mode, - like fsGroup, and the result can be other - mode bits set.' format: int32 type: integer path: - description: path is the relative path of - the file to map the key to. May not be an - absolute path. May not contain the path - element '..'. May not start with the string - '..'. type: string required: - key @@ -23390,87 +9408,37 @@ spec: type: array x-kubernetes-list-type: atomic optional: - description: optional field specify whether the - Secret or its keys must be defined type: boolean secretName: - description: 'secretName is the name of the secret - in the pod''s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' type: string type: object storageos: - description: storageOS represents a StorageOS volume - attached and mounted on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string readOnly: - description: readOnly defaults to false (read/write). - ReadOnly here will force the ReadOnly setting - in VolumeMounts. type: boolean secretRef: - description: secretRef specifies the secret to use - for obtaining the StorageOS API credentials. If - not specified, default values will be attempted. properties: name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are - almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeName: - description: volumeName is the human-readable name - of the StorageOS volume. Volume names are only - unique within a namespace. type: string volumeNamespace: - description: volumeNamespace specifies the scope - of the volume within StorageOS. If no namespace - is specified then the Pod's namespace will be - used. This allows the Kubernetes name scoping - to be mirrored within StorageOS for tighter integration. - Set VolumeName to any name to override the default - behaviour. Set to "default" if you are not using - namespaces within StorageOS. Namespaces that do - not pre-exist within StorageOS will be created. type: string type: object vsphereVolume: - description: vsphereVolume represents a vSphere volume - attached and mounted on kubelets host machine properties: fsType: - description: fsType is filesystem type to mount. - Must be a filesystem type supported by the host - operating system. Ex. "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. type: string storagePolicyID: - description: storagePolicyID is the storage Policy - Based Management (SPBM) profile ID associated - with the StoragePolicyName. type: string storagePolicyName: - description: storagePolicyName is the storage Policy - Based Management (SPBM) profile name. type: string volumePath: - description: volumePath is the path that identifies - vSphere volume vmdk type: string required: - volumePath @@ -23483,105 +9451,59 @@ spec: type: array type: object manifestOptions: - description: ManifestOptions provide options to select particular manifest - object to restore properties: druid: - description: Druid specifies the options for selecting particular - Druid components to restore in manifest restore properties: authSecret: default: true - description: AuthSecret specifies whether to restore the AuthSecret - manifest or not type: boolean authSecretName: - description: AuthSecretName specifies new name of the AuthSecret - yaml after restore type: string configSecret: default: true - description: ConfigSecret specifies whether to restore the ConfigSecret - manifest or not type: boolean configSecretName: - description: ConfigSecretName specifies new name of the ConfigSecret - yaml after restore type: string db: default: true - description: DB specifies whether to restore the DB manifest - or not type: boolean dbName: - description: DBName specifies the new name of the DB yaml after - restore type: string deepStorageSecret: default: true - description: DeepStorageSecret specifies whether to restore - the DeepStorageSecret manifest or not type: boolean restoreNamespace: - description: RestoreNamespace specifies the Namespace where - the restored files will be applied type: string type: object mariaDB: - description: MariaDB specifies the options for selecting particular - MariaDB components to restore in manifest restore properties: authSecret: default: true - description: AuthSecret specifies whether to restore the AuthSecret - manifest or not type: boolean authSecretName: - description: AuthSecretName specifies new name of the AuthSecret - yaml after restore type: string configSecret: default: true - description: ConfigSecret specifies whether to restore the ConfigSecret - manifest or not type: boolean configSecretName: - description: ConfigSecretName specifies new name of the ConfigSecret - yaml after restore type: string db: default: true - description: DB specifies whether to restore the DB manifest - or not type: boolean dbName: - description: DBName specifies the new name of the DB yaml after - restore type: string initScript: default: true - description: InitScript specifies whether to restore the InitScript - manifest or not type: boolean restoreNamespace: - description: RestoreNamespace specifies the Namespace where - the restored files will be applied type: string tlsIssuerRef: - description: TLSIssuerRef specifies the name of the IssuerRef - used for TLS configurations for both client and server properties: apiGroup: - description: APIGroup is the group for the resource being - referenced. If APIGroup is not specified, the specified - Kind must be in the core API group. For any other third-party - types, APIGroup is required. type: string kind: - description: Kind is the type of resource being referenced type: string name: - description: Name is the name of resource being referenced type: string required: - kind @@ -23590,60 +9512,34 @@ spec: x-kubernetes-map-type: atomic type: object mongoDB: - description: MongoDB specifies the options for selecting particular - MongoDB components to restore in manifest restore properties: authSecret: default: true - description: AuthSecret specifies whether to restore the AuthSecret - manifest or not type: boolean authSecretName: - description: AuthSecretName specifies new name of the AuthSecret - yaml after restore type: string configSecret: default: true - description: ConfigSecret specifies whether to restore the ConfigSecret - manifest or not type: boolean configSecretName: - description: ConfigSecretName specifies new name of the ConfigSecret - yaml after restore type: string db: default: true - description: DB specifies whether to restore the DB manifest - or not type: boolean dbName: - description: DBName specifies the new name of the DB yaml after - restore type: string initScript: default: true - description: InitScript specifies whether to restore the InitScript - manifest or not type: boolean restoreNamespace: - description: RestoreNamespace specifies the Namespace where - the restored files will be applied type: string tlsIssuerRef: - description: TLSIssuerRef specifies the name of the IssuerRef - used for TLS configurations for both client and server properties: apiGroup: - description: APIGroup is the group for the resource being - referenced. If APIGroup is not specified, the specified - Kind must be in the core API group. For any other third-party - types, APIGroup is required. type: string kind: - description: Kind is the type of resource being referenced type: string name: - description: Name is the name of resource being referenced type: string required: - kind @@ -23652,67 +9548,26 @@ spec: x-kubernetes-map-type: atomic type: object msSQLServer: - description: MSSQLServer specifies the options for selecting particular - MSSQLServer components to restore in manifest restore properties: authSecret: default: true - description: AuthSecret specifies whether to restore the AuthSecret - manifest or not type: boolean authSecretName: - description: AuthSecretName specifies new name of the AuthSecret - yaml after restore type: string db: default: true - description: DB specifies whether to restore the DB manifest - or not type: boolean dbName: - description: DBName specifies the new name of the DB yaml after - restore type: string - internalAuthIssuerRef: - description: InternalAuthIssuerRef specifies the name of the - IssuerRef used for endpoint authentication. - properties: - apiGroup: - description: APIGroup is the group for the resource being - referenced. If APIGroup is not specified, the specified - Kind must be in the core API group. For any other third-party - types, APIGroup is required. - type: string - kind: - description: Kind is the type of resource being referenced - type: string - name: - description: Name is the name of resource being referenced - type: string - required: - - kind - - name - type: object - x-kubernetes-map-type: atomic restoreNamespace: - description: RestoreNamespace specifies the Namespace where - the restored files will be applied type: string tlsIssuerRef: - description: TLSIssuerRef specifies the name of the IssuerRef - used for TLS configurations for both client and server. properties: apiGroup: - description: APIGroup is the group for the resource being - referenced. If APIGroup is not specified, the specified - Kind must be in the core API group. For any other third-party - types, APIGroup is required. type: string kind: - description: Kind is the type of resource being referenced type: string name: - description: Name is the name of resource being referenced type: string required: - kind @@ -23721,60 +9576,34 @@ spec: x-kubernetes-map-type: atomic type: object mySQL: - description: MySQL specifies the options for selecting particular - MySQL components to restore in manifest restore properties: authSecret: default: true - description: AuthSecret specifies whether to restore the AuthSecret - manifest or not type: boolean authSecretName: - description: AuthSecretName specifies new name of the AuthSecret - yaml after restore type: string configSecret: default: true - description: ConfigSecret specifies whether to restore the ConfigSecret - manifest or not type: boolean configSecretName: - description: ConfigSecretName specifies new name of the ConfigSecret - yaml after restore type: string db: default: true - description: DB specifies whether to restore the DB manifest - or not type: boolean dbName: - description: DBName specifies the new name of the DB yaml after - restore type: string initScript: default: true - description: InitScript specifies whether to restore the InitScript - manifest or not type: boolean restoreNamespace: - description: RestoreNamespace specifies the Namespace where - the restored files will be applied type: string tlsIssuerRef: - description: TLSIssuerRef specifies the name of the IssuerRef - used for TLS configurations for both client and server properties: apiGroup: - description: APIGroup is the group for the resource being - referenced. If APIGroup is not specified, the specified - Kind must be in the core API group. For any other third-party - types, APIGroup is required. type: string kind: - description: Kind is the type of resource being referenced type: string name: - description: Name is the name of resource being referenced type: string required: - kind @@ -23783,60 +9612,34 @@ spec: x-kubernetes-map-type: atomic type: object postgres: - description: Postgres specifies the options for selecting particular - Postgres components to restore in manifest restore properties: authSecret: default: true - description: AuthSecret specifies whether to restore the AuthSecret - manifest or not type: boolean authSecretName: - description: AuthSecretName specifies new name of the AuthSecret - yaml after restore type: string configSecret: default: true - description: ConfigSecret specifies whether to restore the ConfigSecret - manifest or not type: boolean configSecretName: - description: ConfigSecretName specifies new name of the ConfigSecret - yaml after restore type: string db: default: true - description: DB specifies whether to restore the DB manifest - or not type: boolean dbName: - description: DBName specifies the new name of the DB yaml after - restore type: string initScript: default: true - description: InitScript specifies whether to restore the InitScript - manifest or not type: boolean restoreNamespace: - description: RestoreNamespace specifies the Namespace where - the restored files will be applied type: string tlsIssuerRef: - description: TLSIssuerRef specifies the name of the IssuerRef - used for TLS configurations for both client and server properties: apiGroup: - description: APIGroup is the group for the resource being - referenced. If APIGroup is not specified, the specified - Kind must be in the core API group. For any other third-party - types, APIGroup is required. type: string kind: - description: Kind is the type of resource being referenced type: string name: - description: Name is the name of resource being referenced type: string required: - kind @@ -23845,60 +9648,62 @@ spec: x-kubernetes-map-type: atomic type: object redis: - description: Redis specifies the options for selecting particular - Redis components to restore in manifest restore properties: authSecret: default: true - description: AuthSecret specifies whether to restore the AuthSecret - manifest or not type: boolean authSecretName: - description: AuthSecretName specifies new name of the AuthSecret - yaml after restore type: string configSecret: default: true - description: ConfigSecret specifies whether to restore the ConfigSecret - manifest or not type: boolean configSecretName: - description: ConfigSecretName specifies new name of the ConfigSecret - yaml after restore type: string db: default: true - description: DB specifies whether to restore the DB manifest - or not type: boolean dbName: - description: DBName specifies the new name of the DB yaml after - restore type: string initScript: default: true - description: InitScript specifies whether to restore the InitScript - manifest or not type: boolean restoreNamespace: - description: RestoreNamespace specifies the Namespace where - the restored files will be applied type: string tlsIssuerRef: - description: TLSIssuerRef specifies the name of the IssuerRef - used for TLS configurations for both client and server properties: apiGroup: - description: APIGroup is the group for the resource being - referenced. If APIGroup is not specified, the specified - Kind must be in the core API group. For any other third-party - types, APIGroup is required. type: string kind: - description: Kind is the type of resource being referenced type: string name: - description: Name is the name of resource being referenced + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: object + redisSentinel: + properties: + SentinelName: + type: string + authSecret: + default: true + type: boolean + authSecretName: + type: string + restoreNamespace: + type: string + sentinel: + default: true + type: boolean + tlsIssuerRef: + properties: + apiGroup: + type: string + kind: + type: string + name: type: string required: - kind @@ -23907,60 +9712,34 @@ spec: x-kubernetes-map-type: atomic type: object singlestore: - description: Singlestore specifies the options for selecting particular - Singlestore components to restore in manifest restore properties: authSecret: default: true - description: AuthSecret specifies whether to restore the AuthSecret - manifest or not type: boolean authSecretName: - description: AuthSecretName specifies new name of the AuthSecret - yaml after restore type: string configSecret: default: true - description: ConfigSecret specifies whether to restore the ConfigSecret - manifest or not type: boolean configSecretName: - description: ConfigSecretName specifies new name of the ConfigSecret - yaml after restore type: string db: default: true - description: DB specifies whether to restore the DB manifest - or not type: boolean dbName: - description: DBName specifies the new name of the DB yaml after - restore type: string initScript: default: true - description: InitScript specifies whether to restore the InitScript - manifest or not type: boolean restoreNamespace: - description: RestoreNamespace specifies the Namespace where - the restored files will be applied type: string tlsIssuerRef: - description: TLSIssuerRef specifies the name of the IssuerRef - used for TLS configurations for both client and server properties: apiGroup: - description: APIGroup is the group for the resource being - referenced. If APIGroup is not specified, the specified - Kind must be in the core API group. For any other third-party - types, APIGroup is required. type: string kind: - description: Kind is the type of resource being referenced type: string name: - description: Name is the name of resource being referenced type: string required: - kind @@ -23969,69 +9748,39 @@ spec: x-kubernetes-map-type: atomic type: object workload: - description: Workload specifies the options for Workload components - to restore in manifest restore properties: restoreNamespace: - description: RestoreNamespace specifies the Namespace where - the restored files will be applied type: string type: object zooKeeper: - description: ZooKeeper specifies the options for selecting particular - ZooKeeper components to restore in manifest restore properties: authSecret: default: true - description: AuthSecret specifies whether to restore the AuthSecret - manifest or not type: boolean authSecretName: - description: AuthSecretName specifies new name of the AuthSecret - yaml after restore type: string configSecret: default: true - description: ConfigSecret specifies whether to restore the ConfigSecret - manifest or not type: boolean configSecretName: - description: ConfigSecretName specifies new name of the ConfigSecret - yaml after restore type: string db: default: true - description: DB specifies whether to restore the DB manifest - or not type: boolean dbName: - description: DBName specifies the new name of the DB yaml after - restore type: string initScript: default: true - description: InitScript specifies whether to restore the InitScript - manifest or not type: boolean restoreNamespace: - description: RestoreNamespace specifies the Namespace where - the restored files will be applied type: string tlsIssuerRef: - description: TLSIssuerRef specifies the name of the IssuerRef - used for TLS configurations for both client and server properties: apiGroup: - description: APIGroup is the group for the resource being - referenced. If APIGroup is not specified, the specified - Kind must be in the core API group. For any other third-party - types, APIGroup is required. type: string kind: - description: Kind is the type of resource being referenced type: string name: - description: Name is the name of resource being referenced type: string required: - kind @@ -24041,25 +9790,16 @@ spec: type: object type: object restoreTimeout: - description: RestoreTimeout specifies a duration that KubeStash should - wait for the restore to be completed. If the restore tasks do not - finish within this time period, KubeStash will consider this restore - as a failure. type: string target: - description: Target indicates the target application where the data - will be restored. The target must be in the same namespace as the - RestoreSession CR. properties: apiGroup: type: string kind: type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string required: - name diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/meta.k8s.appscode.com/v1alpha1/ClusterProfiles.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/meta.k8s.appscode.com/v1alpha1/clusterprofiles.yaml similarity index 96% rename from vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/meta.k8s.appscode.com/v1alpha1/ClusterProfiles.yaml rename to vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/meta.k8s.appscode.com/v1alpha1/clusterprofiles.yaml index 03aa4d7a1..dd12d7dd8 100644 --- a/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/meta.k8s.appscode.com/v1alpha1/ClusterProfiles.yaml +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/meta.k8s.appscode.com/v1alpha1/clusterprofiles.yaml @@ -5,14 +5,14 @@ metadata: labels: k8s.io/group: meta.k8s.appscode.com k8s.io/kind: ClusterProfile - k8s.io/resource: ClusterProfiles + k8s.io/resource: clusterprofiles k8s.io/version: v1alpha1 - name: meta.k8s.appscode.com-v1alpha1-ClusterProfiles + name: meta.k8s.appscode.com-v1alpha1-clusterprofiles spec: resource: group: meta.k8s.appscode.com kind: ClusterProfile - name: ClusterProfiles + name: clusterprofiles scope: Cluster version: v1alpha1 validation: diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/storage.kubestash.com/v1alpha1/backupstorages.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/storage.kubestash.com/v1alpha1/backupstorages.yaml index 2324834fd..18bb849c6 100644 --- a/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/storage.kubestash.com/v1alpha1/backupstorages.yaml +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/storage.kubestash.com/v1alpha1/backupstorages.yaml @@ -26,21 +26,10 @@ spec: version: v1alpha1 validation: openAPIV3Schema: - description: BackupStorage specifies the backend information where the backed - up data of different applications will be stored. You can consider BackupStorage - as a representation of a bucket in Kubernetes native way. This is a namespaced - object. However, you can use the BackupStorage from any namespace as long - as it is permitted by the `.spec.usagePolicy` field. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: properties: @@ -76,152 +65,75 @@ spec: type: object type: object spec: - description: BackupStorageSpec defines information regarding remote backend, - its access credentials, usage policy etc. properties: default: - description: Default specifies whether to use this BackupStorage as - default storage for the current namespace as well as the allowed namespaces. - One namespace can have at most one default BackupStorage configured. type: boolean deletionPolicy: default: Delete - description: 'DeletionPolicy specifies what to do when you delete a - BackupStorage CR. The valid values are: "Delete": This will delete - the respective Repository and Snapshot CRs from the cluster but keep - the backed up data in the remote backend. This is the default behavior. - "WipeOut": This will delete the respective Repository and Snapshot - CRs as well as the backed up data from the backend.' enum: - Delete - WipeOut type: string runtimeSettings: - description: RuntimeSettings allow to specify Resources, NodeSelector, - Affinity, Toleration, ReadinessProbe etc. for the storage initializer/cleaner - job. properties: container: properties: env: - description: List of environment variables to set in the container. - Cannot be updated. items: - description: EnvVar represents an environment variable present - in a Container. properties: name: - description: Name of the environment variable. Must be - a C_IDENTIFIER. type: string value: - description: 'Variable references $(VAR_NAME) are expanded - using the previously defined environment variables in - the container and any service environment variables. - If a variable cannot be resolved, the reference in the - input string will be unchanged. Double $$ are reduced - to a single $, which allows for escaping the $(VAR_NAME) - syntax: i.e. "$$(VAR_NAME)" will produce the string - literal "$(VAR_NAME)". Escaped references will never - be expanded, regardless of whether the variable exists - or not. Defaults to "".' type: string valueFrom: - description: Source for the environment variable's value. - Cannot be used if value is not empty. properties: configMapKeyRef: - description: Selects a key of a ConfigMap. properties: key: - description: The key to select. type: string name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are almost - certainly wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap or - its key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: - description: 'Selects a field of the pod: supports - metadata.name, metadata.namespace, `metadata.labels['''']`, - `metadata.annotations['''']`, spec.nodeName, - spec.serviceAccountName, status.hostIP, status.podIP, - status.podIPs.' properties: apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". type: string fieldPath: - description: Path of the field to select in the - specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: - description: 'Selects a resource of the container: - only resources limits and requests (limits.cpu, - limits.memory, limits.ephemeral-storage, requests.cpu, - requests.memory and requests.ephemeral-storage) - are currently supported.' properties: containerName: - description: 'Container name: required for volumes, - optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource to select' type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: Selects a key of a secret in the pod's - namespace properties: key: - description: The key of the secret to select from. Must - be a valid secret key. type: string name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are almost - certainly wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret or its - key must be defined type: boolean required: - key @@ -233,66 +145,31 @@ spec: type: object type: array envFrom: - description: List of sources to populate environment variables - in the container. The keys defined within a source must be - a C_IDENTIFIER. All invalid keys will be reported as an event - when the container is starting. When a key exists in multiple - sources, the value associated with the last source will take - precedence. Values defined by an Env with a duplicate key - will take precedence. Cannot be updated. items: - description: EnvFromSource represents the source of a set - of ConfigMaps properties: configMapRef: - description: The ConfigMap to select from properties: name: default: "" - description: 'Name of the referent. This field is - effectively required, but due to backwards compatibility - is allowed to be empty. Instances of this type with - an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, - uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the ConfigMap must be - defined type: boolean type: object x-kubernetes-map-type: atomic prefix: - description: An optional identifier to prepend to each - key in the ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: - description: The Secret to select from properties: name: default: "" - description: 'Name of the referent. This field is - effectively required, but due to backwards compatibility - is allowed to be empty. Instances of this type with - an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, - uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: Specify whether the Secret must be defined type: boolean type: object x-kubernetes-map-type: atomic type: object type: array ionice: - description: 'Settings to configure `ionice` to throttle the - load on disk. More info: http://kennystechtalk.blogspot.com/2015/04/throttling-cpu-usage-with-linux-cgroups.html - More info: https://oakbytes.wordpress.com/2012/06/06/linux-scheduler-cfs-and-nice/' properties: class: format: int32 @@ -302,56 +179,27 @@ spec: type: integer type: object lifecycle: - description: Actions that the management system should take - in response to container lifecycle events. Cannot be updated. properties: postStart: - description: 'PostStart is called immediately after a container - is created. If the handler fails, the container is terminated - and restarted according to its restart policy. Other management - of the container blocks until the hook completes. More - info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action to take. properties: command: - description: Command is the command line to execute - inside the container, the working directory for - the command is root ('/') in the container's - filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions - ('|', etc) won't work. To use a shell, you need - to explicitly call out to that shell. Exit status - of 0 is treated as live/healthy and non-zero is - unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http request to perform. properties: host: - description: Host name to connect to, defaults to - the pod IP. You probably want to set "Host" in - httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in the request. - HTTP allows repeated headers. items: - description: HTTPHeader describes a custom header - to be used in HTTP probes properties: name: - description: The header field name. This will - be canonicalized upon output, so case-variant - names will be understood as the same header. type: string value: - description: The header field value type: string required: - name @@ -360,110 +208,58 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port to access - on the container. Number must be in the range - 1 to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting to the - host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration that the - container should sleep before being terminated. properties: seconds: - description: Seconds is the number of seconds to - sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is NOT supported - as a LifecycleHandler and kept for the backward compatibility. - There are no validation of this field and lifecycle - hooks will fail in runtime when tcp handler is specified. properties: host: - description: 'Optional: Host name to connect to, - defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port to access - on the container. Number must be in the range - 1 to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object type: object preStop: - description: 'PreStop is called immediately before a container - is terminated due to an API request or management event - such as liveness/startup probe failure, preemption, resource - contention, etc. The handler is not called if the container - crashes or exits. The Pod''s termination grace period - countdown begins before the PreStop hook is executed. - Regardless of the outcome of the handler, the container - will eventually terminate within the Pod''s termination - grace period (unless delayed by finalizers). Other management - of the container blocks until the hook completes or until - the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' properties: exec: - description: Exec specifies the action to take. properties: command: - description: Command is the command line to execute - inside the container, the working directory for - the command is root ('/') in the container's - filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions - ('|', etc) won't work. To use a shell, you need - to explicitly call out to that shell. Exit status - of 0 is treated as live/healthy and non-zero is - unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object httpGet: - description: HTTPGet specifies the http request to perform. properties: host: - description: Host name to connect to, defaults to - the pod IP. You probably want to set "Host" in - httpHeaders instead. type: string httpHeaders: - description: Custom headers to set in the request. - HTTP allows repeated headers. items: - description: HTTPHeader describes a custom header - to be used in HTTP probes properties: name: - description: The header field name. This will - be canonicalized upon output, so case-variant - names will be understood as the same header. type: string value: - description: The header field value type: string required: - name @@ -472,52 +268,33 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port to access - on the container. Number must be in the range - 1 to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting to the - host. Defaults to HTTP. type: string required: - port type: object sleep: - description: Sleep represents the duration that the - container should sleep before being terminated. properties: seconds: - description: Seconds is the number of seconds to - sleep. format: int64 type: integer required: - seconds type: object tcpSocket: - description: Deprecated. TCPSocket is NOT supported - as a LifecycleHandler and kept for the backward compatibility. - There are no validation of this field and lifecycle - hooks will fail in runtime when tcp handler is specified. properties: host: - description: 'Optional: Host name to connect to, - defaults to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port to access - on the container. Number must be in the range - 1 to 65535. Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port @@ -525,72 +302,38 @@ spec: type: object type: object livenessProbe: - description: 'Periodic probe of container liveness. Container - will be restarted if the probe fails. Cannot be updated. More - info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to take. properties: command: - description: Command is the command line to execute - inside the container, the working directory for the - command is root ('/') in the container's filesystem. - The command is simply exec'd, it is not run inside - a shell, so traditional shell instructions ('|', etc) - won't work. To use a shell, you need to explicitly - call out to that shell. Exit status of 0 is treated - as live/healthy and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures for the probe - to be considered failed after having succeeded. Defaults - to 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving a GRPC port. properties: port: - description: Port number of the gRPC service. Number - must be in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name of the service to - place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default behavior - is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http request to perform. properties: host: - description: Host name to connect to, defaults to the - pod IP. You probably want to set "Host" in httpHeaders - instead. type: string httpHeaders: - description: Custom headers to set in the request. HTTP - allows repeated headers. items: - description: HTTPHeader describes a custom header - to be used in HTTP probes properties: name: - description: The header field name. This will - be canonicalized upon output, so case-variant - names will be understood as the same header. type: string value: - description: The header field value type: string required: - name @@ -599,160 +342,84 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port to access on - the container. Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting to the host. - Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the container has - started before liveness probes are initiated. More info: - https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform the probe. - Default to 10 seconds. Minimum value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes for the probe - to be considered successful after having failed. Defaults - to 1. Must be 1 for liveness and startup. Minimum value - is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action involving a TCP - port. properties: host: - description: 'Optional: Host name to connect to, defaults - to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port to access on - the container. Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds the pod needs - to terminate gracefully upon probe failure. The grace - period is the duration in seconds after the processes - running in the pod are sent a termination signal and the - time when the processes are forcibly halted with a kill - signal. Set this value longer than the expected cleanup - time for your process. If this value is nil, the pod's - terminationGracePeriodSeconds will be used. Otherwise, - this value overrides the value provided by the pod spec. - Value must be non-negative integer. The value zero indicates - stop immediately via the kill signal (no opportunity to - shut down). This is a beta field and requires enabling - ProbeTerminationGracePeriod feature gate. Minimum value - is 1. spec.terminationGracePeriodSeconds is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which the probe times - out. Defaults to 1 second. Minimum value is 1. More info: - https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object nice: - description: 'Settings to configure `nice` to throttle the load - on cpu. More info: http://kennystechtalk.blogspot.com/2015/04/throttling-cpu-usage-with-linux-cgroups.html - More info: https://oakbytes.wordpress.com/2012/06/06/linux-scheduler-cfs-and-nice/' properties: adjustment: format: int32 type: integer type: object readinessProbe: - description: 'Periodic probe of container service readiness. - Container will be removed from service endpoints if the probe - fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' properties: exec: - description: Exec specifies the action to take. properties: command: - description: Command is the command line to execute - inside the container, the working directory for the - command is root ('/') in the container's filesystem. - The command is simply exec'd, it is not run inside - a shell, so traditional shell instructions ('|', etc) - won't work. To use a shell, you need to explicitly - call out to that shell. Exit status of 0 is treated - as live/healthy and non-zero is unhealthy. items: type: string type: array x-kubernetes-list-type: atomic type: object failureThreshold: - description: Minimum consecutive failures for the probe - to be considered failed after having succeeded. Defaults - to 3. Minimum value is 1. format: int32 type: integer grpc: - description: GRPC specifies an action involving a GRPC port. properties: port: - description: Port number of the gRPC service. Number - must be in the range 1 to 65535. format: int32 type: integer service: - description: "Service is the name of the service to - place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - \n If this is not specified, the default behavior - is defined by gRPC." type: string required: - port type: object httpGet: - description: HTTPGet specifies the http request to perform. properties: host: - description: Host name to connect to, defaults to the - pod IP. You probably want to set "Host" in httpHeaders - instead. type: string httpHeaders: - description: Custom headers to set in the request. HTTP - allows repeated headers. items: - description: HTTPHeader describes a custom header - to be used in HTTP probes properties: name: - description: The header field name. This will - be canonicalized upon output, so case-variant - names will be understood as the same header. type: string value: - description: The header field value type: string required: - name @@ -761,102 +428,51 @@ spec: type: array x-kubernetes-list-type: atomic path: - description: Path to access on the HTTP server. type: string port: anyOf: - type: integer - type: string - description: Name or number of the port to access on - the container. Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true scheme: - description: Scheme to use for connecting to the host. - Defaults to HTTP. type: string required: - port type: object initialDelaySeconds: - description: 'Number of seconds after the container has - started before liveness probes are initiated. More info: - https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: - description: How often (in seconds) to perform the probe. - Default to 10 seconds. Minimum value is 1. format: int32 type: integer successThreshold: - description: Minimum consecutive successes for the probe - to be considered successful after having failed. Defaults - to 1. Must be 1 for liveness and startup. Minimum value - is 1. format: int32 type: integer tcpSocket: - description: TCPSocket specifies an action involving a TCP - port. properties: host: - description: 'Optional: Host name to connect to, defaults - to the pod IP.' type: string port: anyOf: - type: integer - type: string - description: Number or name of the port to access on - the container. Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. x-kubernetes-int-or-string: true required: - port type: object terminationGracePeriodSeconds: - description: Optional duration in seconds the pod needs - to terminate gracefully upon probe failure. The grace - period is the duration in seconds after the processes - running in the pod are sent a termination signal and the - time when the processes are forcibly halted with a kill - signal. Set this value longer than the expected cleanup - time for your process. If this value is nil, the pod's - terminationGracePeriodSeconds will be used. Otherwise, - this value overrides the value provided by the pod spec. - Value must be non-negative integer. The value zero indicates - stop immediately via the kill signal (no opportunity to - shut down). This is a beta field and requires enabling - ProbeTerminationGracePeriod feature gate. Minimum value - is 1. spec.terminationGracePeriodSeconds is used if unset. format: int64 type: integer timeoutSeconds: - description: 'Number of seconds after which the probe times - out. Defaults to 1 second. Minimum value is 1. More info: - https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer type: object resources: - description: 'Compute Resources required by container. Cannot - be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' properties: claims: - description: "Claims lists the names of resources, defined - in spec.resourceClaims, that are used by this container. - \n This is an alpha field and requires enabling the DynamicResourceAllocation - feature gate. \n This field is immutable. It can only - be set for containers." items: - description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry - in pod.spec.resourceClaims of the Pod where this - field is used. It makes that resource available - inside a container. type: string required: - name @@ -872,8 +488,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -882,206 +496,77 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, - otherwise to an implementation-defined value. Requests - cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object securityContext: - description: 'Security options the pod should run with. More - info: https://kubernetes.io/docs/concepts/policy/security-context/ - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: allowPrivilegeEscalation: - description: 'AllowPrivilegeEscalation controls whether - a process can gain more privileges than its parent process. - This bool directly controls if the no_new_privs flag will - be set on the container process. AllowPrivilegeEscalation - is true always when the container is: 1) run as Privileged - 2) has CAP_SYS_ADMIN Note that this field cannot be set - when spec.os.name is windows.' type: boolean appArmorProfile: - description: appArmorProfile is the AppArmor options to - use by this container. If set, this profile overrides - the pod's appArmorProfile. Note that this field cannot - be set when spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates a profile loaded - on the node that should be used. The profile must - be preconfigured on the node to work. Must match the - loaded name of the profile. Must be set if and only - if type is "Localhost". type: string type: - description: 'type indicates which kind of AppArmor - profile will be applied. Valid options are: Localhost - - a profile pre-loaded on the node. RuntimeDefault - - the container runtime''s default profile. Unconfined - - no AppArmor enforcement.' type: string required: - type type: object capabilities: - description: The capabilities to add/drop when running containers. - Defaults to the default set of capabilities granted by - the container runtime. Note that this field cannot be - set when spec.os.name is windows. properties: add: - description: Added capabilities items: - description: Capability represent POSIX capabilities - type type: string type: array x-kubernetes-list-type: atomic drop: - description: Removed capabilities items: - description: Capability represent POSIX capabilities - type type: string type: array x-kubernetes-list-type: atomic type: object privileged: - description: Run container in privileged mode. Processes - in privileged containers are essentially equivalent to - root on the host. Defaults to false. Note that this field - cannot be set when spec.os.name is windows. type: boolean procMount: - description: procMount denotes the type of proc mount to - use for the containers. The default is DefaultProcMount - which uses the container runtime defaults for readonly - paths and masked paths. This requires the ProcMountType - feature flag to be enabled. Note that this field cannot - be set when spec.os.name is windows. type: string readOnlyRootFilesystem: - description: Whether this container has a read-only root - filesystem. Default is false. Note that this field cannot - be set when spec.os.name is windows. type: boolean runAsGroup: - description: The GID to run the entrypoint of the container - process. Uses runtime default if unset. May also be set - in PodSecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified in SecurityContext - takes precedence. Note that this field cannot be set when - spec.os.name is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container must run as a - non-root user. If true, the Kubelet will validate the - image at runtime to ensure that it does not run as UID - 0 (root) and fail to start the container if it does. If - unset or false, no such validation will be performed. - May also be set in PodSecurityContext. If set in both - SecurityContext and PodSecurityContext, the value specified - in SecurityContext takes precedence. type: boolean runAsUser: - description: The UID to run the entrypoint of the container - process. Defaults to user specified in image metadata - if unspecified. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, the - value specified in SecurityContext takes precedence. Note - that this field cannot be set when spec.os.name is windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be applied to the container. - If unspecified, the container runtime will allocate a - random SELinux context for each container. May also be - set in PodSecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified in SecurityContext - takes precedence. Note that this field cannot be set when - spec.os.name is windows. properties: level: - description: Level is SELinux level label that applies - to the container. type: string role: - description: Role is a SELinux role label that applies - to the container. type: string type: - description: Type is a SELinux type label that applies - to the container. type: string user: - description: User is a SELinux user label that applies - to the container. type: string type: object seccompProfile: - description: The seccomp options to use by this container. - If seccomp options are provided at both the pod & container - level, the container options override the pod options. - Note that this field cannot be set when spec.os.name is - windows. properties: localhostProfile: - description: localhostProfile indicates a profile defined - in a file on the node should be used. The profile - must be preconfigured on the node to work. Must be - a descending path, relative to the kubelet's configured - seccomp profile location. Must be set if type is "Localhost". - Must NOT be set for any other type. type: string type: - description: "type indicates which kind of seccomp profile - will be applied. Valid options are: \n Localhost - - a profile defined in a file on the node should be - used. RuntimeDefault - the container runtime default - profile should be used. Unconfined - no profile should - be applied." type: string required: - type type: object windowsOptions: - description: The Windows specific settings applied to all - containers. If unspecified, the options from the PodSecurityContext - will be used. If set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext takes precedence. - Note that this field cannot be set when spec.os.name is - linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is where the GMSA admission - webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA credential spec named - by the GMSACredentialSpecName field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName is the name of the - GMSA credential spec to use. type: string hostProcess: - description: HostProcess determines if a container should - be run as a 'Host Process' container. All of a Pod's - containers must have the same effective HostProcess - value (it is not allowed to have a mix of HostProcess - containers and non-HostProcess containers). In addition, - if HostProcess is true then HostNetwork must also - be set to true. type: boolean runAsUserName: - description: The UserName in Windows to run the entrypoint - of the container process. Defaults to the user specified - in image metadata if unspecified. May also be set - in PodSecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified in SecurityContext - takes precedence. type: string type: object type: object @@ -1089,64 +574,22 @@ spec: pod: properties: affinity: - description: If specified, the pod's scheduling constraints properties: nodeAffinity: - description: Describes node affinity scheduling rules for - the pod. properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer to schedule pods - to nodes that satisfy the affinity expressions specified - by this field, but it may choose a node that violates - one or more of the expressions. The node that is most - preferred is the one with the greatest sum of weights, - i.e. for each node that meets all of the scheduling - requirements (resource request, requiredDuringScheduling - affinity expressions, etc.), compute a sum by iterating - through the elements of this field and adding "weight" - to the sum if the node matches the corresponding matchExpressions; - the node(s) with the highest sum are the most preferred. items: - description: An empty preferred scheduling term matches - all objects with implicit weight 0 (i.e. it's a - no-op). A null preferred scheduling term matches - no objects (i.e. is also a no-op). properties: preference: - description: A node selector term, associated - with the corresponding weight. properties: matchExpressions: - description: A list of node selector requirements - by node's labels. items: - description: A node selector requirement - is a selector that contains values, a - key, and an operator that relates the - key and values. properties: key: - description: The label key that the - selector applies to. type: string operator: - description: Represents a key's relationship - to a set of values. Valid operators - are In, NotIn, Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An array of string values. - If the operator is In or NotIn, the - values array must be non-empty. If - the operator is Exists or DoesNotExist, - the values array must be empty. If - the operator is Gt or Lt, the values - array must have a single element, - which will be interpreted as an integer. - This array is replaced during a strategic - merge patch. items: type: string type: array @@ -1158,35 +601,13 @@ spec: type: array x-kubernetes-list-type: atomic matchFields: - description: A list of node selector requirements - by node's fields. items: - description: A node selector requirement - is a selector that contains values, a - key, and an operator that relates the - key and values. properties: key: - description: The label key that the - selector applies to. type: string operator: - description: Represents a key's relationship - to a set of values. Valid operators - are In, NotIn, Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An array of string values. - If the operator is In or NotIn, the - values array must be non-empty. If - the operator is Exists or DoesNotExist, - the values array must be empty. If - the operator is Gt or Lt, the values - array must have a single element, - which will be interpreted as an integer. - This array is replaced during a strategic - merge patch. items: type: string type: array @@ -1200,9 +621,6 @@ spec: type: object x-kubernetes-map-type: atomic weight: - description: Weight associated with matching the - corresponding nodeSelectorTerm, in the range - 1-100. format: int32 type: integer required: @@ -1212,53 +630,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements specified - by this field are not met at scheduling time, the - pod will not be scheduled onto the node. If the affinity - requirements specified by this field cease to be met - at some point during pod execution (e.g. due to an - update), the system may or may not try to eventually - evict the pod from its node. properties: nodeSelectorTerms: - description: Required. A list of node selector terms. - The terms are ORed. items: - description: A null or empty node selector term - matches no objects. The requirements of them - are ANDed. The TopologySelectorTerm type implements - a subset of the NodeSelectorTerm. properties: matchExpressions: - description: A list of node selector requirements - by node's labels. items: - description: A node selector requirement - is a selector that contains values, a - key, and an operator that relates the - key and values. properties: key: - description: The label key that the - selector applies to. type: string operator: - description: Represents a key's relationship - to a set of values. Valid operators - are In, NotIn, Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An array of string values. - If the operator is In or NotIn, the - values array must be non-empty. If - the operator is Exists or DoesNotExist, - the values array must be empty. If - the operator is Gt or Lt, the values - array must have a single element, - which will be interpreted as an integer. - This array is replaced during a strategic - merge patch. items: type: string type: array @@ -1270,35 +653,13 @@ spec: type: array x-kubernetes-list-type: atomic matchFields: - description: A list of node selector requirements - by node's fields. items: - description: A node selector requirement - is a selector that contains values, a - key, and an operator that relates the - key and values. properties: key: - description: The label key that the - selector applies to. type: string operator: - description: Represents a key's relationship - to a set of values. Valid operators - are In, NotIn, Exists, DoesNotExist. - Gt, and Lt. type: string values: - description: An array of string values. - If the operator is In or NotIn, the - values array must be non-empty. If - the operator is Exists or DoesNotExist, - the values array must be empty. If - the operator is Gt or Lt, the values - array must have a single element, - which will be interpreted as an integer. - This array is replaced during a strategic - merge patch. items: type: string type: array @@ -1319,66 +680,22 @@ spec: x-kubernetes-map-type: atomic type: object podAffinity: - description: Describes pod affinity scheduling rules (e.g. - co-locate this pod in the same node, zone, etc. as some - other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer to schedule pods - to nodes that satisfy the affinity expressions specified - by this field, but it may choose a node that violates - one or more of the expressions. The node that is most - preferred is the one with the greatest sum of weights, - i.e. for each node that meets all of the scheduling - requirements (resource request, requiredDuringScheduling - affinity expressions, etc.), compute a sum by iterating - through the elements of this field and adding "weight" - to the sum if the node has pods which matches the - corresponding podAffinityTerm; the node(s) with the - highest sum are the most preferred. items: - description: The weights of all of the matched WeightedPodAffinityTerm - fields are added per-node to find the most preferred - node(s) properties: podAffinityTerm: - description: Required. A pod affinity term, associated - with the corresponding weight. properties: labelSelector: - description: A label query over a set of resources, - in this case pods. If it's null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions is a list - of label selector requirements. The - requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label key - that the selector applies to. type: string operator: - description: operator represents - a key's relationship to a set - of values. Valid operators are - In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array - of string values. If the operator - is In or NotIn, the values array - must be non-empty. If the operator - is Exists or DoesNotExist, the - values array must be empty. This - array is replaced during a strategic - merge patch. items: type: string type: array @@ -1392,97 +709,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is a set of pod - label keys to select which pods will be - taken into consideration. The keys are used - to lookup values from the incoming pod labels, - those key-value labels are merged with `labelSelector` - as `key in (value)` to select the group - of existing pods which pods will be taken - into consideration for the incoming pod's - pod (anti) affinity. Keys that don't exist - in the incoming pod labels will be ignored. - The default value is empty. The same key - is forbidden to exist in both matchLabelKeys - and labelSelector. Also, matchLabelKeys - cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling - MatchLabelKeysInPodAffinity feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys is a set of - pod label keys to select which pods will - be taken into consideration. The keys are - used to lookup values from the incoming - pod labels, those key-value labels are merged - with `labelSelector` as `key notin (value)` - to select the group of existing pods which - pods will be taken into consideration for - the incoming pod's pod (anti) affinity. - Keys that don't exist in the incoming pod - labels will be ignored. The default value - is empty. The same key is forbidden to exist - in both mismatchLabelKeys and labelSelector. - Also, mismatchLabelKeys cannot be set when - labelSelector isn't set. This is an alpha - field and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over the set of - namespaces that the term applies to. The - term is applied to the union of the namespaces - selected by this field and the ones listed - in the namespaces field. null selector and - null or empty namespaces list means "this - pod's namespace". An empty selector ({}) - matches all namespaces. properties: matchExpressions: - description: matchExpressions is a list - of label selector requirements. The - requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label key - that the selector applies to. type: string operator: - description: operator represents - a key's relationship to a set - of values. Valid operators are - In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array - of string values. If the operator - is In or NotIn, the values array - must be non-empty. If the operator - is Exists or DoesNotExist, the - values array must be empty. This - array is replaced during a strategic - merge patch. items: type: string type: array @@ -1496,45 +745,20 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies a static - list of namespace names that the term applies - to. The term is applied to the union of - the namespaces listed in this field and - the ones selected by namespaceSelector. - null or empty namespaces list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be co-located - (affinity) or not co-located (anti-affinity) - with the pods matching the labelSelector - in the specified namespaces, where co-located - is defined as running on a node whose value - of the label with key topologyKey matches - that of any node on which any of the selected - pods is running. Empty topologyKey is not - allowed. type: string required: - topologyKey type: object weight: - description: weight associated with matching the - corresponding podAffinityTerm, in the range - 1-100. format: int32 type: integer required: @@ -1544,58 +768,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements specified - by this field are not met at scheduling time, the - pod will not be scheduled onto the node. If the affinity - requirements specified by this field cease to be met - at some point during pod execution (e.g. due to a - pod label update), the system may or may not try to - eventually evict the pod from its node. When there - are multiple elements, the lists of nodes corresponding - to each podAffinityTerm are intersected, i.e. all - terms must be satisfied. items: - description: Defines a set of pods (namely those matching - the labelSelector relative to the given namespace(s)) - that this pod should be co-located (affinity) or - not co-located (anti-affinity) with, where co-located - is defined as running on a node whose value of the - label with key matches that of any - node on which a pod of the set of pods is running properties: labelSelector: - description: A label query over a set of resources, - in this case pods. If it's null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions is a list of - label selector requirements. The requirements - are ANDed. items: - description: A label selector requirement - is a selector that contains values, a - key, and an operator that relates the - key and values. properties: key: - description: key is the label key that - the selector applies to. type: string operator: - description: operator represents a key's - relationship to a set of values. Valid - operators are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an array of string - values. If the operator is In or NotIn, - the values array must be non-empty. - If the operator is Exists or DoesNotExist, - the values array must be empty. This - array is replaced during a strategic - merge patch. items: type: string type: array @@ -1609,92 +793,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator is - "In", and the values array contains only - "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is a set of pod label - keys to select which pods will be taken into - consideration. The keys are used to lookup values - from the incoming pod labels, those key-value - labels are merged with `labelSelector` as `key - in (value)` to select the group of existing - pods which pods will be taken into consideration - for the incoming pod's pod (anti) affinity. - Keys that don't exist in the incoming pod labels - will be ignored. The default value is empty. - The same key is forbidden to exist in both matchLabelKeys - and labelSelector. Also, matchLabelKeys cannot - be set when labelSelector isn't set. This is - an alpha field and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys is a set of pod - label keys to select which pods will be taken - into consideration. The keys are used to lookup - values from the incoming pod labels, those key-value - labels are merged with `labelSelector` as `key - notin (value)` to select the group of existing - pods which pods will be taken into consideration - for the incoming pod's pod (anti) affinity. - Keys that don't exist in the incoming pod labels - will be ignored. The default value is empty. - The same key is forbidden to exist in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys cannot - be set when labelSelector isn't set. This is - an alpha field and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over the set of namespaces - that the term applies to. The term is applied - to the union of the namespaces selected by this - field and the ones listed in the namespaces - field. null selector and null or empty namespaces - list means "this pod's namespace". An empty - selector ({}) matches all namespaces. properties: matchExpressions: - description: matchExpressions is a list of - label selector requirements. The requirements - are ANDed. items: - description: A label selector requirement - is a selector that contains values, a - key, and an operator that relates the - key and values. properties: key: - description: key is the label key that - the selector applies to. type: string operator: - description: operator represents a key's - relationship to a set of values. Valid - operators are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an array of string - values. If the operator is In or NotIn, - the values array must be non-empty. - If the operator is Exists or DoesNotExist, - the values array must be empty. This - array is replaced during a strategic - merge patch. items: type: string type: array @@ -1708,36 +829,15 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator is - "In", and the values array contains only - "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies a static list - of namespace names that the term applies to. - The term is applied to the union of the namespaces - listed in this field and the ones selected by - namespaceSelector. null or empty namespaces - list and null namespaceSelector means "this - pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be co-located (affinity) - or not co-located (anti-affinity) with the pods - matching the labelSelector in the specified - namespaces, where co-located is defined as running - on a node whose value of the label with key - topologyKey matches that of any node on which - any of the selected pods is running. Empty topologyKey - is not allowed. type: string required: - topologyKey @@ -1746,66 +846,22 @@ spec: x-kubernetes-list-type: atomic type: object podAntiAffinity: - description: Describes pod anti-affinity scheduling rules - (e.g. avoid putting this pod in the same node, zone, etc. - as some other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer to schedule pods - to nodes that satisfy the anti-affinity expressions - specified by this field, but it may choose a node - that violates one or more of the expressions. The - node that is most preferred is the one with the greatest - sum of weights, i.e. for each node that meets all - of the scheduling requirements (resource request, - requiredDuringScheduling anti-affinity expressions, - etc.), compute a sum by iterating through the elements - of this field and adding "weight" to the sum if the - node has pods which matches the corresponding podAffinityTerm; - the node(s) with the highest sum are the most preferred. items: - description: The weights of all of the matched WeightedPodAffinityTerm - fields are added per-node to find the most preferred - node(s) properties: podAffinityTerm: - description: Required. A pod affinity term, associated - with the corresponding weight. properties: labelSelector: - description: A label query over a set of resources, - in this case pods. If it's null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions is a list - of label selector requirements. The - requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label key - that the selector applies to. type: string operator: - description: operator represents - a key's relationship to a set - of values. Valid operators are - In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array - of string values. If the operator - is In or NotIn, the values array - must be non-empty. If the operator - is Exists or DoesNotExist, the - values array must be empty. This - array is replaced during a strategic - merge patch. items: type: string type: array @@ -1819,97 +875,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is a set of pod - label keys to select which pods will be - taken into consideration. The keys are used - to lookup values from the incoming pod labels, - those key-value labels are merged with `labelSelector` - as `key in (value)` to select the group - of existing pods which pods will be taken - into consideration for the incoming pod's - pod (anti) affinity. Keys that don't exist - in the incoming pod labels will be ignored. - The default value is empty. The same key - is forbidden to exist in both matchLabelKeys - and labelSelector. Also, matchLabelKeys - cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling - MatchLabelKeysInPodAffinity feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys is a set of - pod label keys to select which pods will - be taken into consideration. The keys are - used to lookup values from the incoming - pod labels, those key-value labels are merged - with `labelSelector` as `key notin (value)` - to select the group of existing pods which - pods will be taken into consideration for - the incoming pod's pod (anti) affinity. - Keys that don't exist in the incoming pod - labels will be ignored. The default value - is empty. The same key is forbidden to exist - in both mismatchLabelKeys and labelSelector. - Also, mismatchLabelKeys cannot be set when - labelSelector isn't set. This is an alpha - field and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over the set of - namespaces that the term applies to. The - term is applied to the union of the namespaces - selected by this field and the ones listed - in the namespaces field. null selector and - null or empty namespaces list means "this - pod's namespace". An empty selector ({}) - matches all namespaces. properties: matchExpressions: - description: matchExpressions is a list - of label selector requirements. The - requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. properties: key: - description: key is the label key - that the selector applies to. type: string operator: - description: operator represents - a key's relationship to a set - of values. Valid operators are - In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array - of string values. If the operator - is In or NotIn, the values array - must be non-empty. If the operator - is Exists or DoesNotExist, the - values array must be empty. This - array is replaced during a strategic - merge patch. items: type: string type: array @@ -1923,45 +911,20 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies a static - list of namespace names that the term applies - to. The term is applied to the union of - the namespaces listed in this field and - the ones selected by namespaceSelector. - null or empty namespaces list and null namespaceSelector - means "this pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be co-located - (affinity) or not co-located (anti-affinity) - with the pods matching the labelSelector - in the specified namespaces, where co-located - is defined as running on a node whose value - of the label with key topologyKey matches - that of any node on which any of the selected - pods is running. Empty topologyKey is not - allowed. type: string required: - topologyKey type: object weight: - description: weight associated with matching the - corresponding podAffinityTerm, in the range - 1-100. format: int32 type: integer required: @@ -1971,58 +934,18 @@ spec: type: array x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the anti-affinity requirements specified - by this field are not met at scheduling time, the - pod will not be scheduled onto the node. If the anti-affinity - requirements specified by this field cease to be met - at some point during pod execution (e.g. due to a - pod label update), the system may or may not try to - eventually evict the pod from its node. When there - are multiple elements, the lists of nodes corresponding - to each podAffinityTerm are intersected, i.e. all - terms must be satisfied. items: - description: Defines a set of pods (namely those matching - the labelSelector relative to the given namespace(s)) - that this pod should be co-located (affinity) or - not co-located (anti-affinity) with, where co-located - is defined as running on a node whose value of the - label with key matches that of any - node on which a pod of the set of pods is running properties: labelSelector: - description: A label query over a set of resources, - in this case pods. If it's null, this PodAffinityTerm - matches with no Pods. properties: matchExpressions: - description: matchExpressions is a list of - label selector requirements. The requirements - are ANDed. items: - description: A label selector requirement - is a selector that contains values, a - key, and an operator that relates the - key and values. properties: key: - description: key is the label key that - the selector applies to. type: string operator: - description: operator represents a key's - relationship to a set of values. Valid - operators are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an array of string - values. If the operator is In or NotIn, - the values array must be non-empty. - If the operator is Exists or DoesNotExist, - the values array must be empty. This - array is replaced during a strategic - merge patch. items: type: string type: array @@ -2036,92 +959,29 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator is - "In", and the values array contains only - "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is a set of pod label - keys to select which pods will be taken into - consideration. The keys are used to lookup values - from the incoming pod labels, those key-value - labels are merged with `labelSelector` as `key - in (value)` to select the group of existing - pods which pods will be taken into consideration - for the incoming pod's pod (anti) affinity. - Keys that don't exist in the incoming pod labels - will be ignored. The default value is empty. - The same key is forbidden to exist in both matchLabelKeys - and labelSelector. Also, matchLabelKeys cannot - be set when labelSelector isn't set. This is - an alpha field and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys is a set of pod - label keys to select which pods will be taken - into consideration. The keys are used to lookup - values from the incoming pod labels, those key-value - labels are merged with `labelSelector` as `key - notin (value)` to select the group of existing - pods which pods will be taken into consideration - for the incoming pod's pod (anti) affinity. - Keys that don't exist in the incoming pod labels - will be ignored. The default value is empty. - The same key is forbidden to exist in both mismatchLabelKeys - and labelSelector. Also, mismatchLabelKeys cannot - be set when labelSelector isn't set. This is - an alpha field and requires enabling MatchLabelKeysInPodAffinity - feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over the set of namespaces - that the term applies to. The term is applied - to the union of the namespaces selected by this - field and the ones listed in the namespaces - field. null selector and null or empty namespaces - list means "this pod's namespace". An empty - selector ({}) matches all namespaces. properties: matchExpressions: - description: matchExpressions is a list of - label selector requirements. The requirements - are ANDed. items: - description: A label selector requirement - is a selector that contains values, a - key, and an operator that relates the - key and values. properties: key: - description: key is the label key that - the selector applies to. type: string operator: - description: operator represents a key's - relationship to a set of values. Valid - operators are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an array of string - values. If the operator is In or NotIn, - the values array must be non-empty. - If the operator is Exists or DoesNotExist, - the values array must be empty. This - array is replaced during a strategic - merge patch. items: type: string type: array @@ -2135,36 +995,15 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator is - "In", and the values array contains only - "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies a static list - of namespace names that the term applies to. - The term is applied to the union of the namespaces - listed in this field and the ones selected by - namespaceSelector. null or empty namespaces - list and null namespaceSelector means "this - pod's namespace". items: type: string type: array x-kubernetes-list-type: atomic topologyKey: - description: This pod should be co-located (affinity) - or not co-located (anti-affinity) with the pods - matching the labelSelector in the specified - namespaces, where co-located is defined as running - on a node whose value of the label with key - topologyKey matches that of any node on which - any of the selected pods is running. Empty topologyKey - is not allowed. type: string required: - topologyKey @@ -2174,272 +1013,106 @@ spec: type: object type: object automountServiceAccountToken: - description: AutomountServiceAccountToken indicates whether - a service account token should be automatically mounted. type: boolean enableServiceLinks: - description: 'EnableServiceLinks indicates whether information - about services should be injected into pod''s environment - variables, matching the syntax of Docker links. Optional: - Defaults to true.' type: boolean imagePullSecrets: - description: 'ImagePullSecrets is an optional list of references - to secrets in the same namespace to use for pulling any of - the images used by this PodRuntimeSettings. If specified, - these secrets will be passed to individual puller implementations - for them to use. For example, in the case of docker, only - DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod' items: - description: LocalObjectReference contains enough information - to let you locate the referenced object inside the same - namespace. properties: name: default: "" - description: 'Name of the referent. This field is effectively - required, but due to backwards compatibility is allowed - to be empty. Instances of this type with an empty value - here are almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic type: array nodeName: - description: NodeName is a request to schedule this pod onto - a specific node. If it is non-empty, the scheduler simply - schedules this pod onto that node, assuming that it fits resource - requirements. type: string nodeSelector: additionalProperties: type: string - description: 'NodeSelector is a selector which must be true - for the pod to fit on a node. Selector which must match a - node''s labels for the pod to be scheduled on that node. More - info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/' type: object podAnnotations: additionalProperties: type: string - description: PodAnnotations are the annotations that will be - attached with the respective Pod type: object podLabels: additionalProperties: type: string - description: PodLabels are the labels that will be attached - with the respective Pod type: object priority: - description: The priority value. Various system components use - this field to find the priority of the pod. When Priority - Admission Controller is enabled, it prevents users from setting - this field. The admission controller populates this field - from PriorityClassName. The higher the value, the higher the - priority. format: int32 type: integer priorityClassName: - description: If specified, indicates the pod's priority. "system-node-critical" - and "system-cluster-critical" are two special keywords which - indicate the highest priorities with the former being the - highest priority. Any other name must be defined by creating - a PriorityClass object with that name. If not specified, the - pod priority will be default or zero if there is no default. type: string readinessGates: - description: 'If specified, all readiness gates will be evaluated - for pod readiness. A pod is ready when all its containers - are ready AND all conditions specified in the readiness gates - have status equal to "True" More info: https://git.k8s.io/enhancements/keps/sig-network/0007-pod-ready%2B%2B.md' items: - description: PodReadinessGate contains the reference to a - pod condition properties: conditionType: - description: ConditionType refers to a condition in the - pod's condition list with matching type. type: string required: - conditionType type: object type: array runtimeClassName: - description: 'RuntimeClassName refers to a RuntimeClass object - in the node.k8s.io group, which should be used to run this - pod. If no RuntimeClass resource matches the named class, - the pod will not be run. If unset or empty, the "legacy" RuntimeClass - will be used, which is an implicit class with an empty definition - that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md - This is an alpha feature and may change in the future.' type: string schedulerName: - description: If specified, the pod will be dispatched by specified - scheduler. If not specified, the pod will be dispatched by - default scheduler. type: string securityContext: - description: 'Security options the pod should run with. More - info: https://kubernetes.io/docs/concepts/policy/security-context/ - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: appArmorProfile: - description: appArmorProfile is the AppArmor options to - use by the containers in this pod. Note that this field - cannot be set when spec.os.name is windows. properties: localhostProfile: - description: localhostProfile indicates a profile loaded - on the node that should be used. The profile must - be preconfigured on the node to work. Must match the - loaded name of the profile. Must be set if and only - if type is "Localhost". type: string type: - description: 'type indicates which kind of AppArmor - profile will be applied. Valid options are: Localhost - - a profile pre-loaded on the node. RuntimeDefault - - the container runtime''s default profile. Unconfined - - no AppArmor enforcement.' type: string required: - type type: object fsGroup: - description: "A special supplemental group that applies - to all containers in a pod. Some volume types allow the - Kubelet to change the ownership of that volume to be owned - by the pod: \n 1. The owning GID will be the FSGroup 2. - The setgid bit is set (new files created in the volume - will be owned by FSGroup) 3. The permission bits are OR'd - with rw-rw---- \n If unset, the Kubelet will not modify - the ownership and permissions of any volume. Note that - this field cannot be set when spec.os.name is windows." format: int64 type: integer fsGroupChangePolicy: - description: 'fsGroupChangePolicy defines behavior of changing - ownership and permission of the volume before being exposed - inside Pod. This field will only apply to volume types - which support fsGroup based ownership(and permissions). - It will have no effect on ephemeral volume types such - as: secret, configmaps and emptydir. Valid values are - "OnRootMismatch" and "Always". If not specified, "Always" - is used. Note that this field cannot be set when spec.os.name - is windows.' type: string runAsGroup: - description: The GID to run the entrypoint of the container - process. Uses runtime default if unset. May also be set - in SecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext - takes precedence for that container. Note that this field - cannot be set when spec.os.name is windows. format: int64 type: integer runAsNonRoot: - description: Indicates that the container must run as a - non-root user. If true, the Kubelet will validate the - image at runtime to ensure that it does not run as UID - 0 (root) and fail to start the container if it does. If - unset or false, no such validation will be performed. - May also be set in SecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified in SecurityContext - takes precedence. type: boolean runAsUser: - description: The UID to run the entrypoint of the container - process. Defaults to user specified in image metadata - if unspecified. May also be set in SecurityContext. If - set in both SecurityContext and PodSecurityContext, the - value specified in SecurityContext takes precedence for - that container. Note that this field cannot be set when - spec.os.name is windows. format: int64 type: integer seLinuxOptions: - description: The SELinux context to be applied to all containers. - If unspecified, the container runtime will allocate a - random SELinux context for each container. May also be - set in SecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified in SecurityContext - takes precedence for that container. Note that this field - cannot be set when spec.os.name is windows. properties: level: - description: Level is SELinux level label that applies - to the container. type: string role: - description: Role is a SELinux role label that applies - to the container. type: string type: - description: Type is a SELinux type label that applies - to the container. type: string user: - description: User is a SELinux user label that applies - to the container. type: string type: object seccompProfile: - description: The seccomp options to use by the containers - in this pod. Note that this field cannot be set when spec.os.name - is windows. properties: localhostProfile: - description: localhostProfile indicates a profile defined - in a file on the node should be used. The profile - must be preconfigured on the node to work. Must be - a descending path, relative to the kubelet's configured - seccomp profile location. Must be set if type is "Localhost". - Must NOT be set for any other type. type: string type: - description: "type indicates which kind of seccomp profile - will be applied. Valid options are: \n Localhost - - a profile defined in a file on the node should be - used. RuntimeDefault - the container runtime default - profile should be used. Unconfined - no profile should - be applied." type: string required: - type type: object supplementalGroups: - description: A list of groups applied to the first process - run in each container, in addition to the container's - primary GID, the fsGroup (if specified), and group memberships - defined in the container image for the uid of the container - process. If unspecified, no additional groups are added - to any container. Note that group memberships defined - in the container image for the uid of the container process - are still effective, even if they are not included in - this list. Note that this field cannot be set when spec.os.name - is windows. items: format: int64 type: integer type: array x-kubernetes-list-type: atomic sysctls: - description: Sysctls hold a list of namespaced sysctls used - for the pod. Pods with unsupported sysctls (by the container - runtime) might fail to launch. Note that this field cannot - be set when spec.os.name is windows. items: - description: Sysctl defines a kernel parameter to be set properties: name: - description: Name of a property to set type: string value: - description: Value of a property to set type: string required: - name @@ -2448,132 +1121,52 @@ spec: type: array x-kubernetes-list-type: atomic windowsOptions: - description: The Windows specific settings applied to all - containers. If unspecified, the options within a container's - SecurityContext will be used. If set in both SecurityContext - and PodSecurityContext, the value specified in SecurityContext - takes precedence. Note that this field cannot be set when - spec.os.name is linux. properties: gmsaCredentialSpec: - description: GMSACredentialSpec is where the GMSA admission - webhook (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA credential spec named - by the GMSACredentialSpecName field. type: string gmsaCredentialSpecName: - description: GMSACredentialSpecName is the name of the - GMSA credential spec to use. type: string hostProcess: - description: HostProcess determines if a container should - be run as a 'Host Process' container. All of a Pod's - containers must have the same effective HostProcess - value (it is not allowed to have a mix of HostProcess - containers and non-HostProcess containers). In addition, - if HostProcess is true then HostNetwork must also - be set to true. type: boolean runAsUserName: - description: The UserName in Windows to run the entrypoint - of the container process. Defaults to the user specified - in image metadata if unspecified. May also be set - in PodSecurityContext. If set in both SecurityContext - and PodSecurityContext, the value specified in SecurityContext - takes precedence. type: string type: object type: object serviceAccountAnnotations: additionalProperties: type: string - description: ServiceAccountAnnotations are the annotations that - will be attached with the respective ServiceAccount type: object serviceAccountName: - description: 'ServiceAccountName is the name of the ServiceAccount - to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/' type: string tolerations: - description: If specified, the pod's tolerations. items: - description: The pod this Toleration is attached to tolerates - any taint that matches the triple using - the matching operator . properties: effect: - description: Effect indicates the taint effect to match. - Empty means match all taint effects. When specified, - allowed values are NoSchedule, PreferNoSchedule and - NoExecute. type: string key: - description: Key is the taint key that the toleration - applies to. Empty means match all taint keys. If the - key is empty, operator must be Exists; this combination - means to match all values and all keys. type: string operator: - description: Operator represents a key's relationship - to the value. Valid operators are Exists and Equal. - Defaults to Equal. Exists is equivalent to wildcard - for value, so that a pod can tolerate all taints of - a particular category. type: string tolerationSeconds: - description: TolerationSeconds represents the period of - time the toleration (which must be of effect NoExecute, - otherwise this field is ignored) tolerates the taint. - By default, it is not set, which means tolerate the - taint forever (do not evict). Zero and negative values - will be treated as 0 (evict immediately) by the system. format: int64 type: integer value: - description: Value is the taint value the toleration matches - to. If the operator is Exists, the value should be empty, - otherwise just a regular string. type: string type: object type: array topologySpreadConstraints: - description: TopologySpreadConstraints describes how a group - of pods ought to spread across topology domains. Scheduler - will schedule pods in a way which abides by the constraints. - All topologySpreadConstraints are ANDed. items: - description: TopologySpreadConstraint specifies how to spread - matching pods among the given topology. properties: labelSelector: - description: LabelSelector is used to find matching pods. - Pods that match this label selector are counted to determine - the number of pods in their corresponding topology domain. properties: matchExpressions: - description: matchExpressions is a list of label selector - requirements. The requirements are ANDed. items: - description: A label selector requirement is a selector - that contains values, a key, and an operator that - relates the key and values. properties: key: - description: key is the label key that the selector - applies to. type: string operator: - description: operator represents a key's relationship - to a set of values. Valid operators are In, - NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string values. - If the operator is In or NotIn, the values - array must be non-empty. If the operator is - Exists or DoesNotExist, the values array must - be empty. This array is replaced during a - strategic merge patch. items: type: string type: array @@ -2587,134 +1180,27 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} pairs. - A single {key,value} in the matchLabels map is equivalent - to an element of matchExpressions, whose key field - is "key", the operator is "In", and the values array - contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: "MatchLabelKeys is a set of pod label keys - to select the pods over which spreading will be calculated. - The keys are used to lookup values from the incoming - pod labels, those key-value labels are ANDed with labelSelector - to select the group of existing pods over which spreading - will be calculated for the incoming pod. The same key - is forbidden to exist in both MatchLabelKeys and LabelSelector. - MatchLabelKeys cannot be set when LabelSelector isn't - set. Keys that don't exist in the incoming pod labels - will be ignored. A null or empty list means only match - against labelSelector. \n This is a beta field and requires - the MatchLabelKeysInPodTopologySpread feature gate to - be enabled (enabled by default)." items: type: string type: array x-kubernetes-list-type: atomic maxSkew: - description: 'MaxSkew describes the degree to which pods - may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, - it is the maximum permitted difference between the number - of matching pods in the target topology and the global - minimum. The global minimum is the minimum number of - matching pods in an eligible domain or zero if the number - of eligible domains is less than MinDomains. For example, - in a 3-zone cluster, MaxSkew is set to 1, and pods with - the same labelSelector spread as 2/2/1: In this case, - the global minimum is 1. | zone1 | zone2 | zone3 | | P - P | P P | P | - if MaxSkew is 1, incoming pod - can only be scheduled to zone3 to become 2/2/2; scheduling - it onto zone1(zone2) would make the ActualSkew(3-1) - on zone1(zone2) violate MaxSkew(1). - if MaxSkew is - 2, incoming pod can be scheduled onto any zone. When - `whenUnsatisfiable=ScheduleAnyway`, it is used to give - higher precedence to topologies that satisfy it. It''s - a required field. Default value is 1 and 0 is not allowed.' format: int32 type: integer minDomains: - description: "MinDomains indicates a minimum number of - eligible domains. When the number of eligible domains - with matching topology keys is less than minDomains, - Pod Topology Spread treats \"global minimum\" as 0, - and then the calculation of Skew is performed. And when - the number of eligible domains with matching topology - keys equals or greater than minDomains, this value has - no effect on scheduling. As a result, when the number - of eligible domains is less than minDomains, scheduler - won't schedule more than maxSkew Pods to those domains. - If value is nil, the constraint behaves as if MinDomains - is equal to 1. Valid values are integers greater than - 0. When value is not nil, WhenUnsatisfiable must be - DoNotSchedule. \n For example, in a 3-zone cluster, - MaxSkew is set to 2, MinDomains is set to 5 and pods - with the same labelSelector spread as 2/2/2: | zone1 - | zone2 | zone3 | | P P | P P | P P | The number - of domains is less than 5(MinDomains), so \"global minimum\" - is treated as 0. In this situation, new pod with the - same labelSelector cannot be scheduled, because computed - skew will be 3(3 - 0) if new Pod is scheduled to any - of the three zones, it will violate MaxSkew." format: int32 type: integer nodeAffinityPolicy: - description: "NodeAffinityPolicy indicates how we will - treat Pod's nodeAffinity/nodeSelector when calculating - pod topology spread skew. Options are: - Honor: only - nodes matching nodeAffinity/nodeSelector are included - in the calculations. - Ignore: nodeAffinity/nodeSelector - are ignored. All nodes are included in the calculations. - \n If this value is nil, the behavior is equivalent - to the Honor policy. This is a beta-level feature default - enabled by the NodeInclusionPolicyInPodTopologySpread - feature flag." type: string nodeTaintsPolicy: - description: "NodeTaintsPolicy indicates how we will treat - node taints when calculating pod topology spread skew. - Options are: - Honor: nodes without taints, along with - tainted nodes for which the incoming pod has a toleration, - are included. - Ignore: node taints are ignored. All - nodes are included. \n If this value is nil, the behavior - is equivalent to the Ignore policy. This is a beta-level - feature default enabled by the NodeInclusionPolicyInPodTopologySpread - feature flag." type: string topologyKey: - description: TopologyKey is the key of node labels. Nodes - that have a label with this key and identical values - are considered to be in the same topology. We consider - each as a "bucket", and try to put balanced - number of pods into each bucket. We define a domain - as a particular instance of a topology. Also, we define - an eligible domain as a domain whose nodes meet the - requirements of nodeAffinityPolicy and nodeTaintsPolicy. - e.g. If TopologyKey is "kubernetes.io/hostname", each - Node is a domain of that topology. And, if TopologyKey - is "topology.kubernetes.io/zone", each zone is a domain - of that topology. It's a required field. type: string whenUnsatisfiable: - description: 'WhenUnsatisfiable indicates how to deal - with a pod if it doesn''t satisfy the spread constraint. - - DoNotSchedule (default) tells the scheduler not to - schedule it. - ScheduleAnyway tells the scheduler to - schedule the pod in any location, but giving higher - precedence to topologies that would help reduce the - skew. A constraint is considered "Unsatisfiable" for - an incoming pod if and only if every possible node assignment - for that pod would violate "MaxSkew" on some topology. - For example, in a 3-zone cluster, MaxSkew is set to - 1, and pods with the same labelSelector spread as 3/1/1: - | zone1 | zone2 | zone3 | | P P P | P | P | - If WhenUnsatisfiable is set to DoNotSchedule, incoming - pod can only be scheduled to zone2(zone3) to become - 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies - MaxSkew(1). In other words, the cluster can still be - imbalanced, but scheduler won''t make it *more* imbalanced. - It''s a required field.' type: string required: - maxSkew @@ -2729,284 +1215,136 @@ spec: type: object type: object storage: - description: Storage specifies the remote storage information properties: azure: - description: Azure specifies the storage information for Azure Blob - container properties: container: - description: Container specifies the name of the Azure Blob - container that will be used as storage backend. type: string maxConnections: - description: MaxConnections specifies the maximum number of - concurrent connections to use to upload/download data to this - backend. format: int64 type: integer prefix: - description: Prefix specifies a directory inside the bucket/container - where the data for this backend will be stored. type: string secretName: - description: SecretName specifies the name of the Secret that - contains the access credential for this storage. type: string storageAccount: - description: StorageAccount specifies the name of the Azure - Storage Account type: string type: object gcs: - description: GCS specifies the storage information for GCS bucket properties: bucket: - description: Bucket specifies the name of the bucket that will - be used as storage backend. type: string maxConnections: - description: MaxConnections specifies the maximum number of - concurrent connections to use to upload/download data to this - backend. format: int64 type: integer prefix: - description: Prefix specifies a directory inside the bucket/container - where the data for this backend will be stored. type: string secretName: - description: SecretName specifies the name of the Secret that - contains the access credential for this storage. type: string type: object local: - description: Local specifies the storage information for local provider properties: awsElasticBlockStore: - description: 'awsElasticBlockStore represents an AWS Disk resource - that is attached to a kubelet''s host machine and then exposed - to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' properties: fsType: - description: 'fsType is the filesystem type of the volume - that you want to mount. Tip: Ensure that the filesystem - type is supported by the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" - if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the filesystem from - compromising the machine' type: string partition: - description: 'partition is the partition in the volume that - you want to mount. If omitted, the default is to mount - by volume name. Examples: For volume /dev/sda1, you specify - the partition as "1". Similarly, the volume partition - for /dev/sda is "0" (or you can leave the property empty).' format: int32 type: integer readOnly: - description: 'readOnly value true will force the readOnly - setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: boolean volumeID: - description: 'volumeID is unique ID of the persistent disk - resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: string required: - volumeID type: object azureDisk: - description: azureDisk represents an Azure Data Disk mount on - the host and bind mount to the pod. properties: cachingMode: - description: 'cachingMode is the Host Caching mode: None, - Read Only, Read Write.' type: string diskName: - description: diskName is the Name of the data disk in the - blob storage type: string diskURI: - description: diskURI is the URI of data disk in the blob - storage type: string fsType: - description: fsType is Filesystem type to mount. Must be - a filesystem type supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" - if unspecified. type: string kind: - description: 'kind expected values are Shared: multiple - blob disks per storage account Dedicated: single blob - disk per storage account Managed: azure managed data - disk (only in managed availability set). defaults to shared' type: string readOnly: - description: readOnly Defaults to false (read/write). ReadOnly - here will force the ReadOnly setting in VolumeMounts. type: boolean required: - diskName - diskURI type: object azureFile: - description: azureFile represents an Azure File Service mount - on the host and bind mount to the pod. properties: readOnly: - description: readOnly defaults to false (read/write). ReadOnly - here will force the ReadOnly setting in VolumeMounts. type: boolean secretName: - description: secretName is the name of secret that contains - Azure Storage Account Name and Key type: string shareName: - description: shareName is the azure share Name type: string required: - secretName - shareName type: object cephfs: - description: cephFS represents a Ceph FS mount on the host that - shares a pod's lifetime properties: monitors: - description: 'monitors is Required: Monitors is a collection - of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic path: - description: 'path is Optional: Used as the mounted root, - rather than the full Ceph tree, default is /' type: string readOnly: - description: 'readOnly is Optional: Defaults to false (read/write). - ReadOnly here will force the ReadOnly setting in VolumeMounts. - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: boolean secretFile: - description: 'secretFile is Optional: SecretFile is the - path to key ring for User, default is /etc/ceph/user.secret - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string secretRef: - description: 'secretRef is Optional: SecretRef is reference - to the authentication secret for User, default is empty. - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. This field is effectively - required, but due to backwards compatibility is allowed - to be empty. Instances of this type with an empty - value here are almost certainly wrong. TODO: Add other - useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is optional: User is the rados user name, - default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' type: string required: - monitors type: object cinder: - description: 'cinder represents a cinder volume attached and - mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' properties: fsType: - description: 'fsType is the filesystem type to mount. Must - be a filesystem type supported by the host operating system. - Examples: "ext4", "xfs", "ntfs". Implicitly inferred to - be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string readOnly: - description: 'readOnly defaults to false (read/write). ReadOnly - here will force the ReadOnly setting in VolumeMounts. - More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: boolean secretRef: - description: 'secretRef is optional: points to a secret - object containing parameters used to connect to OpenStack.' properties: name: default: "" - description: 'Name of the referent. This field is effectively - required, but due to backwards compatibility is allowed - to be empty. Instances of this type with an empty - value here are almost certainly wrong. TODO: Add other - useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeID: - description: 'volumeID used to identify the volume in cinder. - More info: https://examples.k8s.io/mysql-cinder-pd/README.md' type: string required: - volumeID type: object configMap: - description: configMap represents a configMap that should populate - this volume properties: defaultMode: - description: 'defaultMode is optional: mode bits used to - set permissions on created files by default. Must be an - octal value between 0000 and 0777 or a decimal value between - 0 and 511. YAML accepts both octal and decimal values, - JSON requires decimal values for mode bits. Defaults to - 0644. Directories within the path are not affected by - this setting. This might be in conflict with other options - that affect the file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer items: - description: items if unspecified, each key-value pair in - the Data field of the referenced ConfigMap will be projected - into the volume as a file whose name is the key and content - is the value. If specified, the listed keys will be projected - into the specified paths, and unlisted keys will not be - present. If a key is specified which is not present in - the ConfigMap, the volume setup will error unless it is - marked optional. Paths must be relative and may not contain - the '..' path or start with '..'. items: - description: Maps a string key to a path within a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: mode bits used to - set permissions on this file. Must be an octal value - between 0000 and 0777 or a decimal value between - 0 and 511. YAML accepts both octal and decimal values, - JSON requires decimal values for mode bits. If not - specified, the volume defaultMode will be used. - This might be in conflict with other options that - affect the file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative path of the file - to map the key to. May not be an absolute path. - May not contain the path element '..'. May not start - with the string '..'. type: string required: - key @@ -3016,150 +1354,67 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. This field is effectively - required, but due to backwards compatibility is allowed - to be empty. Instances of this type with an empty value - here are almost certainly wrong. TODO: Add other useful - fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn''t - need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether the ConfigMap or its - keys must be defined type: boolean type: object x-kubernetes-map-type: atomic csi: - description: csi (Container Storage Interface) represents ephemeral - storage that is handled by certain external CSI drivers (Beta - feature). properties: driver: - description: driver is the name of the CSI driver that handles - this volume. Consult with your admin for the correct name - as registered in the cluster. type: string fsType: - description: fsType to mount. Ex. "ext4", "xfs", "ntfs". - If not provided, the empty value is passed to the associated - CSI driver which will determine the default filesystem - to apply. type: string nodePublishSecretRef: - description: nodePublishSecretRef is a reference to the - secret object containing sensitive information to pass - to the CSI driver to complete the CSI NodePublishVolume - and NodeUnpublishVolume calls. This field is optional, - and may be empty if no secret is required. If the secret - object contains more than one secret, all secret references - are passed. properties: name: default: "" - description: 'Name of the referent. This field is effectively - required, but due to backwards compatibility is allowed - to be empty. Instances of this type with an empty - value here are almost certainly wrong. TODO: Add other - useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic readOnly: - description: readOnly specifies a read-only configuration - for the volume. Defaults to false (read/write). type: boolean volumeAttributes: additionalProperties: type: string - description: volumeAttributes stores driver-specific properties - that are passed to the CSI driver. Consult your driver's - documentation for supported values. type: object required: - driver type: object downwardAPI: - description: downwardAPI represents downward API about the pod - that should populate this volume properties: defaultMode: - description: 'Optional: mode bits to use on created files - by default. Must be a Optional: mode bits used to set - permissions on created files by default. Must be an octal - value between 0000 and 0777 or a decimal value between - 0 and 511. YAML accepts both octal and decimal values, - JSON requires decimal values for mode bits. Defaults to - 0644. Directories within the path are not affected by - this setting. This might be in conflict with other options - that affect the file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer items: - description: Items is a list of downward API volume file items: - description: DownwardAPIVolumeFile represents information - to create the file containing the pod field properties: fieldRef: - description: 'Required: Selects a field of the pod: - only annotations, labels, name, namespace and uid - are supported.' properties: apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". type: string fieldPath: - description: Path of the field to select in the - specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode bits used to set permissions - on this file, must be an octal value between 0000 - and 0777 or a decimal value between 0 and 511. YAML - accepts both octal and decimal values, JSON requires - decimal values for mode bits. If not specified, - the volume defaultMode will be used. This might - be in conflict with other options that affect the - file mode, like fsGroup, and the result can be other - mode bits set.' format: int32 type: integer path: - description: 'Required: Path is the relative path - name of the file to be created. Must not be absolute - or contain the ''..'' path. Must be utf-8 encoded. - The first item of the relative path must not start - with ''..''' type: string resourceFieldRef: - description: 'Selects a resource of the container: - only resources limits and requests (limits.cpu, - limits.memory, requests.cpu and requests.memory) - are currently supported.' properties: containerName: - description: 'Container name: required for volumes, - optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource to select' type: string required: - resource @@ -3172,176 +1427,50 @@ spec: x-kubernetes-list-type: atomic type: object emptyDir: - description: 'emptyDir represents a temporary directory that - shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' properties: medium: - description: 'medium represents what type of storage medium - should back this directory. The default is "" which means - to use the node''s default medium. Must be an empty string - (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' type: string sizeLimit: anyOf: - type: integer - type: string - description: 'sizeLimit is the total amount of local storage - required for this EmptyDir volume. The size limit is also - applicable for memory medium. The maximum usage on memory - medium EmptyDir would be the minimum value between the - SizeLimit specified here and the sum of memory limits - of all containers in a pod. The default is nil which means - that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object ephemeral: - description: "ephemeral represents a volume that is handled - by a cluster storage driver. The volume's lifecycle is tied - to the pod that defines it - it will be created before the - pod starts, and deleted when the pod is removed. \n Use this - if: a) the volume is only needed while the pod runs, b) features - of normal volumes like restoring from snapshot or capacity - tracking are needed, c) the storage driver is specified through - a storage class, and d) the storage driver supports dynamic - volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource - for more information on the connection between this volume - type and PersistentVolumeClaim). \n Use PersistentVolumeClaim - or one of the vendor-specific APIs for volumes that persist - for longer than the lifecycle of an individual pod. \n Use - CSI for light-weight local ephemeral volumes if the CSI driver - is meant to be used that way - see the documentation of the - driver for more information. \n A pod can use both types of - ephemeral volumes and persistent volumes at the same time." properties: volumeClaimTemplate: - description: "Will be used to create a stand-alone PVC to - provision the volume. The pod in which this EphemeralVolumeSource - is embedded will be the owner of the PVC, i.e. the PVC - will be deleted together with the pod. The name of the - PVC will be `-` where `` is the name from the `PodSpec.Volumes` array entry. - Pod validation will reject the pod if the concatenated - name is not valid for a PVC (for example, too long). \n - An existing PVC with that name that is not owned by the - pod will *not* be used for the pod to avoid using an unrelated - volume by mistake. Starting the pod is then blocked until - the unrelated PVC is removed. If such a pre-created PVC - is meant to be used by the pod, the PVC has to updated - with an owner reference to the pod once the pod exists. - Normally this should not be necessary, but it may be useful - when manually reconstructing a broken cluster. \n This - field is read-only and no changes will be made by Kubernetes - to the PVC after it has been created. \n Required, must - not be nil." properties: metadata: - description: May contain labels and annotations that - will be copied into the PVC when creating it. No other - fields are allowed and will be rejected during validation. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key - value map stored with a resource that may be set - by external tools to store and retrieve arbitrary - metadata. They are not queryable and should be - preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' type: object generateName: - description: "GenerateName is an optional prefix, - used by the server, to generate a unique name - ONLY IF the Name field has not been provided. - If this field is used, the name returned to the - client will be different than the name passed. - This value will also be combined with a unique - suffix. The provided value has the same validation - rules as the Name field, and may be truncated - by the length of the suffix required to make the - value unique on the server. \n If this field is - specified and the generated name exists, the server - will NOT return a 409 - instead, it will either - return 201 Created or 500 with Reason ServerTimeout - indicating a unique name could not be found in - the time allotted, and the client should retry - (optionally after the time indicated in the Retry-After - header). \n Applied only if Name is not specified. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" type: string labels: additionalProperties: type: string - description: 'Map of string keys and values that - can be used to organize and categorize (scope - and select) objects. May match selectors of replication - controllers and services. More info: http://kubernetes.io/docs/user-guide/labels' type: object name: - description: 'Name must be unique within a namespace. - Is required when creating resources, although - some resources may allow a client to request the - generation of an appropriate name automatically. - Name is primarily intended for creation idempotence - and configuration definition. Cannot be updated. - More info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: - description: "Namespace defines the space within - each name must be unique. An empty namespace is - equivalent to the \"default\" namespace, but \"default\" - is the canonical representation. Not all objects - are required to be scoped to a namespace - the - value of this field for those objects will be - empty. \n Must be a DNS_LABEL. Cannot be updated. - More info: http://kubernetes.io/docs/user-guide/namespaces" type: string ownerReferences: - description: List of objects depended by this object. - If ALL objects in the list have been deleted, - this object will be garbage collected. If this - object is managed by a controller, then an entry - in this list will point to this controller, with - the controller field set to true. There cannot - be more than one managing controller. items: - description: OwnerReference contains enough information - to let you identify an owning object. An owning - object must be in the same namespace as the - dependent, or be cluster-scoped, so there is - no namespace field. properties: apiVersion: - description: API version of the referent. type: string blockOwnerDeletion: - description: If true, AND if the owner has - the "foregroundDeletion" finalizer, then - the owner cannot be deleted from the key-value - store until this reference is removed. See - https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage collector interacts - with this field and enforces the foreground - deletion. Defaults to false. To set this - field, a user needs "delete" permission - of the owner, otherwise 422 (Unprocessable - Entity) will be returned. type: boolean controller: - description: If true, this reference points - to the managing controller. type: boolean kind: - description: 'Kind of the referent. More info: - https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: - description: 'Name of the referent. More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' type: string uid: - description: 'UID of the referent. More info: - https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' type: string required: - apiVersion @@ -3353,46 +1482,19 @@ spec: type: array type: object spec: - description: The specification for the PersistentVolumeClaim. - The entire content is copied unchanged into the PVC - that gets created from this template. The same fields - as in a PersistentVolumeClaim are also valid here. properties: accessModes: - description: 'accessModes contains the desired access - modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array x-kubernetes-list-type: atomic dataSource: - description: 'dataSource field can be used to specify - either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) If the - provisioner or an external controller can support - the specified data source, it will create a new - volume based on the contents of the specified - data source. When the AnyVolumeDataSource feature - gate is enabled, dataSource contents will be copied - to dataSourceRef, and dataSourceRef contents will - be copied to dataSource when dataSourceRef.namespace - is not specified. If the namespace is specified, - then dataSourceRef will not be copied to dataSource.' properties: apiGroup: - description: APIGroup is the group for the resource - being referenced. If APIGroup is not specified, - the specified Kind must be in the core API - group. For any other third-party types, APIGroup - is required. type: string kind: - description: Kind is the type of resource being - referenced type: string name: - description: Name is the name of resource being - referenced type: string required: - kind @@ -3400,76 +1502,20 @@ spec: type: object x-kubernetes-map-type: atomic dataSourceRef: - description: 'dataSourceRef specifies the object - from which to populate the volume with data, if - a non-empty volume is desired. This may be any - object from a non-empty API group (non core object) - or a PersistentVolumeClaim object. When this field - is specified, volume binding will only succeed - if the type of the specified object matches some - installed volume populator or dynamic provisioner. - This field will replace the functionality of the - dataSource field and as such if both fields are - non-empty, they must have the same value. For - backwards compatibility, when namespace isn''t - specified in dataSourceRef, both fields (dataSource - and dataSourceRef) will be set to the same value - automatically if one of them is empty and the - other is non-empty. When namespace is specified - in dataSourceRef, dataSource isn''t set to the - same value and must be empty. There are three - important differences between dataSource and dataSourceRef: - * While dataSource only allows two specific types - of objects, dataSourceRef allows any non-core - object, as well as PersistentVolumeClaim objects. - * While dataSource ignores disallowed values (dropping - them), dataSourceRef preserves all values, and - generates an error if a disallowed value is specified. - * While dataSource only allows local objects, - dataSourceRef allows objects in any namespaces. - (Beta) Using this field requires the AnyVolumeDataSource - feature gate to be enabled. (Alpha) Using the - namespace field of dataSourceRef requires the - CrossNamespaceVolumeDataSource feature gate to - be enabled.' properties: apiGroup: - description: APIGroup is the group for the resource - being referenced. If APIGroup is not specified, - the specified Kind must be in the core API - group. For any other third-party types, APIGroup - is required. type: string kind: - description: Kind is the type of resource being - referenced type: string name: - description: Name is the name of resource being - referenced type: string namespace: - description: Namespace is the namespace of resource - being referenced Note that when a namespace - is specified, a gateway.networking.k8s.io/ReferenceGrant - object is required in the referent namespace - to allow that namespace's owner to accept - the reference. See the ReferenceGrant documentation - for details. (Alpha) This field requires the - CrossNamespaceVolumeDataSource feature gate - to be enabled. type: string required: - kind - name type: object resources: - description: 'resources represents the minimum resources - the volume should have. If RecoverVolumeExpansionFailure - feature is enabled users are allowed to specify - resource requirements that are lower than previous - value but must still be higher than capacity recorded - in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' properties: limits: additionalProperties: @@ -3478,8 +1524,6 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount - of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: @@ -3488,46 +1532,18 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum - amount of compute resources required. If Requests - is omitted for a container, it defaults to - Limits if that is explicitly specified, otherwise - to an implementation-defined value. Requests - cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object selector: - description: selector is a label query over volumes - to consider for binding. properties: matchExpressions: - description: matchExpressions is a list of label - selector requirements. The requirements are - ANDed. items: - description: A label selector requirement - is a selector that contains values, a key, - and an operator that relates the key and - values. properties: key: - description: key is the label key that - the selector applies to. type: string operator: - description: operator represents a key's - relationship to a set of values. Valid - operators are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an array of string - values. If the operator is In or NotIn, - the values array must be non-empty. - If the operator is Exists or DoesNotExist, - the values array must be empty. This - array is replaced during a strategic - merge patch. items: type: string type: array @@ -3541,50 +1557,16 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator is - "In", and the values array contains only "value". - The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic storageClassName: - description: 'storageClassName is the name of the - StorageClass required by the claim. More info: - https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeAttributesClassName: - description: 'volumeAttributesClassName may be used - to set the VolumeAttributesClass used by this - claim. If specified, the CSI driver will create - or update the volume with the attributes defined - in the corresponding VolumeAttributesClass. This - has a different purpose than storageClassName, - it can be changed after the claim is created. - An empty string value means that no VolumeAttributesClass - will be applied to the claim but it''s not allowed - to reset this field to empty string once it is - set. If unspecified and the PersistentVolumeClaim - is unbound, the default VolumeAttributesClass - will be set by the persistentvolume controller - if it exists. If the resource referred to by volumeAttributesClass - does not exist, this PersistentVolumeClaim will - be set to a Pending state, as reflected by the - modifyVolumeStatus field, until such as a resource - exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires the VolumeAttributesClass - feature gate to be enabled.' type: string volumeMode: - description: volumeMode defines what type of volume - is required by the claim. Value of Filesystem - is implied when not included in claim spec. type: string volumeName: - description: volumeName is the binding reference - to the PersistentVolume backing this claim. type: string type: object required: @@ -3592,82 +1574,41 @@ spec: type: object type: object fc: - description: fc represents a Fibre Channel resource that is - attached to a kubelet's host machine and then exposed to the - pod. properties: fsType: - description: 'fsType is the filesystem type to mount. Must - be a filesystem type supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" - if unspecified. TODO: how do we prevent errors in the - filesystem from compromising the machine' type: string lun: - description: 'lun is Optional: FC target lun number' format: int32 type: integer readOnly: - description: 'readOnly is Optional: Defaults to false (read/write). - ReadOnly here will force the ReadOnly setting in VolumeMounts.' type: boolean targetWWNs: - description: 'targetWWNs is Optional: FC target worldwide - names (WWNs)' items: type: string type: array x-kubernetes-list-type: atomic wwids: - description: 'wwids Optional: FC volume world wide identifiers - (wwids) Either wwids or combination of targetWWNs and - lun must be set, but not both simultaneously.' items: type: string type: array x-kubernetes-list-type: atomic type: object flexVolume: - description: flexVolume represents a generic volume resource - that is provisioned/attached using an exec based plugin. properties: driver: - description: driver is the name of the driver to use for - this volume. type: string fsType: - description: fsType is the filesystem type to mount. Must - be a filesystem type supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". The default filesystem depends - on FlexVolume script. type: string options: additionalProperties: type: string - description: 'options is Optional: this field holds extra - command options if any.' type: object readOnly: - description: 'readOnly is Optional: defaults to false (read/write). - ReadOnly here will force the ReadOnly setting in VolumeMounts.' type: boolean secretRef: - description: 'secretRef is Optional: secretRef is reference - to the secret object containing sensitive information - to pass to the plugin scripts. This may be empty if no - secret object is specified. If the secret object contains - more than one secret, all secrets are passed to the plugin - scripts.' properties: name: default: "" - description: 'Name of the referent. This field is effectively - required, but due to backwards compatibility is allowed - to be empty. Instances of this type with an empty - value here are almost certainly wrong. TODO: Add other - useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic @@ -3675,167 +1616,79 @@ spec: - driver type: object flocker: - description: flocker represents a Flocker volume attached to - a kubelet's host machine. This depends on the Flocker control - service being running properties: datasetName: - description: datasetName is Name of the dataset stored as - metadata -> name on the dataset for Flocker should be - considered as deprecated type: string datasetUUID: - description: datasetUUID is the UUID of the dataset. This - is unique identifier of a Flocker dataset type: string type: object gcePersistentDisk: - description: 'gcePersistentDisk represents a GCE Disk resource - that is attached to a kubelet''s host machine and then exposed - to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' properties: fsType: - description: 'fsType is filesystem type of the volume that - you want to mount. Tip: Ensure that the filesystem type - is supported by the host operating system. Examples: "ext4", - "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the filesystem from - compromising the machine' type: string partition: - description: 'partition is the partition in the volume that - you want to mount. If omitted, the default is to mount - by volume name. Examples: For volume /dev/sda1, you specify - the partition as "1". Similarly, the volume partition - for /dev/sda is "0" (or you can leave the property empty). - More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' format: int32 type: integer pdName: - description: 'pdName is unique name of the PD resource in - GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: string readOnly: - description: 'readOnly here will force the ReadOnly setting - in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: boolean required: - pdName type: object glusterfs: - description: 'glusterfs represents a Glusterfs mount on the - host that shares a pod''s lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md' properties: endpoints: - description: 'endpoints is the endpoint name that details - Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string path: - description: 'path is the Glusterfs volume path. More info: - https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: string readOnly: - description: 'readOnly here will force the Glusterfs volume - to be mounted with read-only permissions. Defaults to - false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' type: boolean required: - endpoints - path type: object hostPath: - description: 'hostPath represents a pre-existing file or directory - on the host machine that is directly exposed to the container. - This is generally used for system agents or other privileged - things that are allowed to see the host machine. Most containers - will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- TODO(jonesdl) We need to restrict who can use host directory - mounts and who can/can not mount host directories as read/write.' properties: path: - description: 'path of the directory on the host. If the - path is a symlink, it will follow the link to the real - path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string type: - description: 'type for HostPath Volume Defaults to "" More - info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string required: - path type: object iscsi: - description: 'iscsi represents an ISCSI Disk resource that is - attached to a kubelet''s host machine and then exposed to - the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md' properties: chapAuthDiscovery: - description: chapAuthDiscovery defines whether support iSCSI - Discovery CHAP authentication type: boolean chapAuthSession: - description: chapAuthSession defines whether support iSCSI - Session CHAP authentication type: boolean fsType: - description: 'fsType is the filesystem type of the volume - that you want to mount. Tip: Ensure that the filesystem - type is supported by the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" - if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the filesystem from - compromising the machine' type: string initiatorName: - description: initiatorName is the custom iSCSI Initiator - Name. If initiatorName is specified with iscsiInterface - simultaneously, new iSCSI interface : will be created for the connection. type: string iqn: - description: iqn is the target iSCSI Qualified Name. type: string iscsiInterface: - description: iscsiInterface is the interface Name that uses - an iSCSI transport. Defaults to 'default' (tcp). type: string lun: - description: lun represents iSCSI Target Lun number. format: int32 type: integer portals: - description: portals is the iSCSI Target Portal List. The - portal is either an IP or ip_addr:port if the port is - other than default (typically TCP ports 860 and 3260). items: type: string type: array x-kubernetes-list-type: atomic readOnly: - description: readOnly here will force the ReadOnly setting - in VolumeMounts. Defaults to false. type: boolean secretRef: - description: secretRef is the CHAP Secret for iSCSI target - and initiator authentication properties: name: default: "" - description: 'Name of the referent. This field is effectively - required, but due to backwards compatibility is allowed - to be empty. Instances of this type with an empty - value here are almost certainly wrong. TODO: Add other - useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic targetPortal: - description: targetPortal is iSCSI Target Portal. The Portal - is either an IP or ip_addr:port if the port is other than - default (typically TCP ports 860 and 3260). type: string required: - iqn @@ -3843,155 +1696,68 @@ spec: - targetPortal type: object mountPath: - description: MountPath specifies the directory where this volume - will be mounted type: string nfs: - description: 'nfs represents an NFS mount on the host that shares - a pod''s lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' properties: path: - description: 'path that is exported by the NFS server. More - info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string readOnly: - description: 'readOnly here will force the NFS export to - be mounted with read-only permissions. Defaults to false. - More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: boolean server: - description: 'server is the hostname or IP address of the - NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string required: - path - server type: object persistentVolumeClaim: - description: 'persistentVolumeClaimVolumeSource represents a - reference to a PersistentVolumeClaim in the same namespace. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' properties: claimName: - description: 'claimName is the name of a PersistentVolumeClaim - in the same namespace as the pod using this volume. More - info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' type: string readOnly: - description: readOnly Will force the ReadOnly setting in - VolumeMounts. Default false. type: boolean required: - claimName type: object photonPersistentDisk: - description: photonPersistentDisk represents a PhotonController - persistent disk attached and mounted on kubelets host machine properties: fsType: - description: fsType is the filesystem type to mount. Must - be a filesystem type supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" - if unspecified. type: string pdID: - description: pdID is the ID that identifies Photon Controller - persistent disk type: string required: - pdID type: object portworxVolume: - description: portworxVolume represents a portworx volume attached - and mounted on kubelets host machine properties: fsType: - description: fSType represents the filesystem type to mount - Must be a filesystem type supported by the host operating - system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" - if unspecified. type: string readOnly: - description: readOnly defaults to false (read/write). ReadOnly - here will force the ReadOnly setting in VolumeMounts. type: boolean volumeID: - description: volumeID uniquely identifies a Portworx volume type: string required: - volumeID type: object projected: - description: projected items for all in one resources secrets, - configmaps, and downward API properties: defaultMode: - description: defaultMode are the mode bits used to set permissions - on created files by default. Must be an octal value between - 0000 and 0777 or a decimal value between 0 and 511. YAML - accepts both octal and decimal values, JSON requires decimal - values for mode bits. Directories within the path are - not affected by this setting. This might be in conflict - with other options that affect the file mode, like fsGroup, - and the result can be other mode bits set. format: int32 type: integer sources: - description: sources is the list of volume projections items: - description: Projection that may be projected along with - other supported volume types properties: clusterTrustBundle: - description: "ClusterTrustBundle allows a pod to access - the `.spec.trustBundle` field of ClusterTrustBundle - objects in an auto-updating file. \n Alpha, gated - by the ClusterTrustBundleProjection feature gate. - \n ClusterTrustBundle objects can either be selected - by name, or by the combination of signer name and - a label selector. \n Kubelet performs aggressive - normalization of the PEM contents written into the - pod filesystem. Esoteric PEM features such as inter-block - comments and block headers are stripped. Certificates - are deduplicated. The ordering of certificates within - the file is arbitrary, and Kubelet may change the - order over time." properties: labelSelector: - description: Select all ClusterTrustBundles that - match this label selector. Only has effect - if signerName is set. Mutually-exclusive with - name. If unset, interpreted as "match nothing". If - set but empty, interpreted as "match everything". properties: matchExpressions: - description: matchExpressions is a list of - label selector requirements. The requirements - are ANDed. items: - description: A label selector requirement - is a selector that contains values, a - key, and an operator that relates the - key and values. properties: key: - description: key is the label key that - the selector applies to. type: string operator: - description: operator represents a key's - relationship to a set of values. Valid - operators are In, NotIn, Exists and - DoesNotExist. type: string values: - description: values is an array of string - values. If the operator is In or NotIn, - the values array must be non-empty. - If the operator is Exists or DoesNotExist, - the values array must be empty. This - array is replaced during a strategic - merge patch. items: type: string type: array @@ -4005,84 +1771,31 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator is - "In", and the values array contains only - "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic name: - description: Select a single ClusterTrustBundle - by object name. Mutually-exclusive with signerName - and labelSelector. type: string optional: - description: If true, don't block pod startup - if the referenced ClusterTrustBundle(s) aren't - available. If using name, then the named ClusterTrustBundle - is allowed not to exist. If using signerName, - then the combination of signerName and labelSelector - is allowed to match zero ClusterTrustBundles. type: boolean path: - description: Relative path from the volume root - to write the bundle. type: string signerName: - description: Select all ClusterTrustBundles that - match this signer name. Mutually-exclusive with - name. The contents of all selected ClusterTrustBundles - will be unified and deduplicated. type: string required: - path type: object configMap: - description: configMap information about the configMap - data to project properties: items: - description: items if unspecified, each key-value - pair in the Data field of the referenced ConfigMap - will be projected into the volume as a file - whose name is the key and content is the value. - If specified, the listed keys will be projected - into the specified paths, and unlisted keys - will not be present. If a key is specified which - is not present in the ConfigMap, the volume - setup will error unless it is marked optional. - Paths must be relative and may not contain the - '..' path or start with '..'. items: - description: Maps a string key to a path within - a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: mode bits - used to set permissions on this file. - Must be an octal value between 0000 and - 0777 or a decimal value between 0 and - 511. YAML accepts both octal and decimal - values, JSON requires decimal values for - mode bits. If not specified, the volume - defaultMode will be used. This might be - in conflict with other options that affect - the file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative path of - the file to map the key to. May not be - an absolute path. May not contain the - path element '..'. May not start with - the string '..'. type: string required: - key @@ -4092,95 +1805,42 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are almost - certainly wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional specify whether the ConfigMap - or its keys must be defined type: boolean type: object x-kubernetes-map-type: atomic downwardAPI: - description: downwardAPI information about the downwardAPI - data to project properties: items: - description: Items is a list of DownwardAPIVolume - file items: - description: DownwardAPIVolumeFile represents - information to create the file containing - the pod field properties: fieldRef: - description: 'Required: Selects a field - of the pod: only annotations, labels, - name, namespace and uid are supported.' properties: apiVersion: - description: Version of the schema the - FieldPath is written in terms of, - defaults to "v1". type: string fieldPath: - description: Path of the field to select - in the specified API version. type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: - description: 'Optional: mode bits used to - set permissions on this file, must be - an octal value between 0000 and 0777 or - a decimal value between 0 and 511. YAML - accepts both octal and decimal values, - JSON requires decimal values for mode - bits. If not specified, the volume defaultMode - will be used. This might be in conflict - with other options that affect the file - mode, like fsGroup, and the result can - be other mode bits set.' format: int32 type: integer path: - description: 'Required: Path is the relative - path name of the file to be created. Must - not be absolute or contain the ''..'' - path. Must be utf-8 encoded. The first - item of the relative path must not start - with ''..''' type: string resourceFieldRef: - description: 'Selects a resource of the - container: only resources limits and requests - (limits.cpu, limits.memory, requests.cpu - and requests.memory) are currently supported.' properties: containerName: - description: 'Container name: required - for volumes, optional for env vars' type: string divisor: anyOf: - type: integer - type: string - description: Specifies the output format - of the exposed resources, defaults - to "1" pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: - description: 'Required: resource to - select' type: string required: - resource @@ -4193,48 +1853,16 @@ spec: x-kubernetes-list-type: atomic type: object secret: - description: secret information about the secret data - to project properties: items: - description: items if unspecified, each key-value - pair in the Data field of the referenced Secret - will be projected into the volume as a file - whose name is the key and content is the value. - If specified, the listed keys will be projected - into the specified paths, and unlisted keys - will not be present. If a key is specified which - is not present in the Secret, the volume setup - will error unless it is marked optional. Paths - must be relative and may not contain the '..' - path or start with '..'. items: - description: Maps a string key to a path within - a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: mode bits - used to set permissions on this file. - Must be an octal value between 0000 and - 0777 or a decimal value between 0 and - 511. YAML accepts both octal and decimal - values, JSON requires decimal values for - mode bits. If not specified, the volume - defaultMode will be used. This might be - in conflict with other options that affect - the file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative path of - the file to map the key to. May not be - an absolute path. May not contain the - path element '..'. May not start with - the string '..'. type: string required: - key @@ -4244,49 +1872,19 @@ spec: x-kubernetes-list-type: atomic name: default: "" - description: 'Name of the referent. This field - is effectively required, but due to backwards - compatibility is allowed to be empty. Instances - of this type with an empty value here are almost - certainly wrong. TODO: Add other useful fields. - apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string optional: - description: optional field specify whether the - Secret or its key must be defined type: boolean type: object x-kubernetes-map-type: atomic serviceAccountToken: - description: serviceAccountToken is information about - the serviceAccountToken data to project properties: audience: - description: audience is the intended audience - of the token. A recipient of a token must identify - itself with an identifier specified in the audience - of the token, and otherwise should reject the - token. The audience defaults to the identifier - of the apiserver. type: string expirationSeconds: - description: expirationSeconds is the requested - duration of validity of the service account - token. As the token approaches expiration, the - kubelet volume plugin will proactively rotate - the service account token. The kubelet will - start trying to rotate the token if the token - is older than 80 percent of its time to live - or if the token is older than 24 hours.Defaults - to 1 hour and must be at least 10 minutes. format: int64 type: integer path: - description: path is the path relative to the - mount point of the file to project the token - into. type: string required: - path @@ -4296,161 +1894,79 @@ spec: x-kubernetes-list-type: atomic type: object quobyte: - description: quobyte represents a Quobyte mount on the host - that shares a pod's lifetime properties: group: - description: group to map volume access to Default is no - group type: string readOnly: - description: readOnly here will force the Quobyte volume - to be mounted with read-only permissions. Defaults to - false. type: boolean registry: - description: registry represents a single or multiple Quobyte - Registry services specified as a string as host:port pair - (multiple entries are separated with commas) which acts - as the central registry for volumes type: string tenant: - description: tenant owning the given Quobyte volume in the - Backend Used with dynamically provisioned Quobyte volumes, - value is set by the plugin type: string user: - description: user to map volume access to Defaults to serivceaccount - user type: string volume: - description: volume is a string that references an already - created Quobyte volume by name. type: string required: - registry - volume type: object rbd: - description: 'rbd represents a Rados Block Device mount on the - host that shares a pod''s lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md' properties: fsType: - description: 'fsType is the filesystem type of the volume - that you want to mount. Tip: Ensure that the filesystem - type is supported by the host operating system. Examples: - "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" - if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the filesystem from - compromising the machine' type: string image: - description: 'image is the rados image name. More info: - https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string keyring: - description: 'keyring is the path to key ring for RBDUser. - Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string monitors: - description: 'monitors is a collection of Ceph monitors. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' items: type: string type: array x-kubernetes-list-type: atomic pool: - description: 'pool is the rados pool name. Default is rbd. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string readOnly: - description: 'readOnly here will force the ReadOnly setting - in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: boolean secretRef: - description: 'secretRef is name of the authentication secret - for RBDUser. If provided overrides keyring. Default is - nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' properties: name: default: "" - description: 'Name of the referent. This field is effectively - required, but due to backwards compatibility is allowed - to be empty. Instances of this type with an empty - value here are almost certainly wrong. TODO: Add other - useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic user: - description: 'user is the rados user name. Default is admin. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' type: string required: - image - monitors type: object scaleIO: - description: scaleIO represents a ScaleIO persistent volume - attached and mounted on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem type to mount. Must - be a filesystem type supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". Default is "xfs". type: string gateway: - description: gateway is the host address of the ScaleIO - API Gateway. type: string protectionDomain: - description: protectionDomain is the name of the ScaleIO - Protection Domain for the configured storage. type: string readOnly: - description: readOnly Defaults to false (read/write). ReadOnly - here will force the ReadOnly setting in VolumeMounts. type: boolean secretRef: - description: secretRef references to the secret for ScaleIO - user and other sensitive information. If this is not provided, - Login operation will fail. properties: name: default: "" - description: 'Name of the referent. This field is effectively - required, but due to backwards compatibility is allowed - to be empty. Instances of this type with an empty - value here are almost certainly wrong. TODO: Add other - useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic sslEnabled: - description: sslEnabled Flag enable/disable SSL communication - with Gateway, default false type: boolean storageMode: - description: storageMode indicates whether the storage for - a volume should be ThickProvisioned or ThinProvisioned. - Default is ThinProvisioned. type: string storagePool: - description: storagePool is the ScaleIO Storage Pool associated - with the protection domain. type: string system: - description: system is the name of the storage system as - configured in ScaleIO. type: string volumeName: - description: volumeName is the name of a volume already - created in the ScaleIO system that is associated with - this volume source. type: string required: - gateway @@ -4458,54 +1974,19 @@ spec: - system type: object secret: - description: 'secret represents a secret that should populate - this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' properties: defaultMode: - description: 'defaultMode is Optional: mode bits used to - set permissions on created files by default. Must be an - octal value between 0000 and 0777 or a decimal value between - 0 and 511. YAML accepts both octal and decimal values, - JSON requires decimal values for mode bits. Defaults to - 0644. Directories within the path are not affected by - this setting. This might be in conflict with other options - that affect the file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer items: - description: items If unspecified, each key-value pair in - the Data field of the referenced Secret will be projected - into the volume as a file whose name is the key and content - is the value. If specified, the listed keys will be projected - into the specified paths, and unlisted keys will not be - present. If a key is specified which is not present in - the Secret, the volume setup will error unless it is marked - optional. Paths must be relative and may not contain the - '..' path or start with '..'. items: - description: Maps a string key to a path within a volume. properties: key: - description: key is the key to project. type: string mode: - description: 'mode is Optional: mode bits used to - set permissions on this file. Must be an octal value - between 0000 and 0777 or a decimal value between - 0 and 511. YAML accepts both octal and decimal values, - JSON requires decimal values for mode bits. If not - specified, the volume defaultMode will be used. - This might be in conflict with other options that - affect the file mode, like fsGroup, and the result - can be other mode bits set.' format: int32 type: integer path: - description: path is the relative path of the file - to map the key to. May not be an absolute path. - May not contain the path element '..'. May not start - with the string '..'. type: string required: - key @@ -4514,181 +1995,83 @@ spec: type: array x-kubernetes-list-type: atomic optional: - description: optional field specify whether the Secret or - its keys must be defined type: boolean secretName: - description: 'secretName is the name of the secret in the - pod''s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' type: string type: object storageos: - description: storageOS represents a StorageOS volume attached - and mounted on Kubernetes nodes. properties: fsType: - description: fsType is the filesystem type to mount. Must - be a filesystem type supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" - if unspecified. type: string readOnly: - description: readOnly defaults to false (read/write). ReadOnly - here will force the ReadOnly setting in VolumeMounts. type: boolean secretRef: - description: secretRef specifies the secret to use for obtaining - the StorageOS API credentials. If not specified, default - values will be attempted. properties: name: default: "" - description: 'Name of the referent. This field is effectively - required, but due to backwards compatibility is allowed - to be empty. Instances of this type with an empty - value here are almost certainly wrong. TODO: Add other - useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen - doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.' type: string type: object x-kubernetes-map-type: atomic volumeName: - description: volumeName is the human-readable name of the - StorageOS volume. Volume names are only unique within - a namespace. type: string volumeNamespace: - description: volumeNamespace specifies the scope of the - volume within StorageOS. If no namespace is specified - then the Pod's namespace will be used. This allows the - Kubernetes name scoping to be mirrored within StorageOS - for tighter integration. Set VolumeName to any name to - override the default behaviour. Set to "default" if you - are not using namespaces within StorageOS. Namespaces - that do not pre-exist within StorageOS will be created. type: string type: object subPath: - description: Path within the volume from which the container's - volume should be mounted. Defaults to "" (volume's root). type: string vsphereVolume: - description: vsphereVolume represents a vSphere volume attached - and mounted on kubelets host machine properties: fsType: - description: fsType is filesystem type to mount. Must be - a filesystem type supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" - if unspecified. type: string storagePolicyID: - description: storagePolicyID is the storage Policy Based - Management (SPBM) profile ID associated with the StoragePolicyName. type: string storagePolicyName: - description: storagePolicyName is the storage Policy Based - Management (SPBM) profile name. type: string volumePath: - description: volumePath is the path that identifies vSphere - volume vmdk type: string required: - volumePath type: object type: object provider: - description: Provider specifies the provider of the storage type: string s3: - description: S3 specifies the storage information for AWS S3 and - S3 compatible storage. properties: bucket: - description: Bucket specifies the name of the bucket that will - be used as storage backend. type: string endpoint: - description: Endpoint specifies the URL of the S3 or S3 compatible - storage bucket. type: string insecureTLS: - description: InsecureTLS controls whether a client should skip - TLS certificate verification. Setting this field to true disables - verification, which might be necessary in cases where the - server uses self-signed certificates or certificates from - an untrusted CA. Use this option with caution, as it can expose - the client to man-in-the-middle attacks and other security - risks. Only use it when absolutely necessary. type: boolean prefix: - description: Prefix specifies a directory inside the bucket/container - where the data for this backend will be stored. type: string region: - description: Region specifies the region where the bucket is - located type: string secretName: - description: SecretName specifies the name of the Secret that - contains the access credential for this storage. type: string type: object type: object usagePolicy: - description: UsagePolicy specifies a policy of how this BackupStorage - will be used. For example, you can use `allowedNamespaces` policy - to restrict the usage of this BackupStorage to particular namespaces. - This field is optional. If you don't provide the usagePolicy, then - it can be used only from the current namespace. properties: allowedNamespaces: - description: AllowedNamespaces specifies which namespaces are allowed - to use the resource properties: from: default: Same - description: 'From indicates how to select the namespaces that - are allowed to use this resource. Possible values are: * All: - All namespaces can use this resource. * Selector: Namespaces - that matches the selector can use this resource. * Same: Only - current namespace can use the resource.' enum: - All - Selector - Same type: string selector: - description: Selector must be specified when From is set to - "Selector". In that case, only the selected namespaces are - allowed to use this resource. This field is ignored for other - values of "From". properties: matchExpressions: - description: matchExpressions is a list of label selector - requirements. The requirements are ANDed. items: - description: A label selector requirement is a selector - that contains values, a key, and an operator that relates - the key and values. properties: key: - description: key is the label key that the selector - applies to. type: string operator: - description: operator represents a key's relationship - to a set of values. Valid operators are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values is an array of string values. - If the operator is In or NotIn, the values array - must be non-empty. If the operator is Exists or - DoesNotExist, the values array must be empty. This - array is replaced during a strategic merge patch. items: type: string type: array @@ -4702,11 +2085,6 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} pairs. - A single {key,value} in the matchLabels map is equivalent - to an element of matchExpressions, whose key field is - "key", the operator is "In", and the values array contains - only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/storage.kubestash.com/v1alpha1/repositories.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/storage.kubestash.com/v1alpha1/repositories.yaml index 370fe0d65..bca4c7764 100644 --- a/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/storage.kubestash.com/v1alpha1/repositories.yaml +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/storage.kubestash.com/v1alpha1/repositories.yaml @@ -106,21 +106,10 @@ spec: version: v1alpha1 validation: openAPIV3Schema: - description: Repository specifies the information about the targeted application - that has been backed up and the BackupStorage where the backed up data is - being stored. It also holds a list of recent Snapshots that have been taken - in this Repository. Repository is a namespaced object. It must be in the same - namespace as the targeted application. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: properties: @@ -156,76 +145,44 @@ spec: type: object type: object spec: - description: RepositorySpec specifies the application reference and the - BackupStorage reference.It also specifies what should be the behavior - when a Repository CR is deleted from the cluster. properties: appRef: - description: AppRef refers to the application that is being backed up - in this Repository. properties: apiGroup: type: string kind: type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string required: - name type: object deletionPolicy: default: Delete - description: 'DeletionPolicy specifies what to do when you delete a - Repository CR. The valid values are: "Delete": This will delete the - respective Snapshot CRs from the cluster but keep the backed up data - in the remote backend. This is the default behavior. "WipeOut": This - will delete the respective Snapshot CRs as well as the backed up data - from the backend.' enum: - Delete - WipeOut type: string encryptionSecret: - description: EncryptionSecret refers to the Secret containing the encryption - key which will be used to encode/decode the backed up data. You can - refer to a Secret of a different namespace. If you don't provide the - namespace field, KubeStash will look for the Secret in the same namespace - as the BackupConfiguration / BackupBatch. properties: name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string required: - name type: object path: - description: Path represents the directory inside the BackupStorage - where this Repository is storing its data This path is relative to - the path of BackupStorage. type: string paused: - description: Paused specifies whether the Repository is paused or not. - If the Repository is paused, KubeStash will not process any further - event for the Repository. type: boolean storageRef: - description: StorageRef refers to the BackupStorage CR which contain - the backend information where the backed up data will be stored. The - BackupStorage could be in a different namespace. However, the Repository - namespace must be allowed to use the BackupStorage. properties: name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string required: - name diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/storage.kubestash.com/v1alpha1/retentionpolicies.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/storage.kubestash.com/v1alpha1/retentionpolicies.yaml index fe44519be..b831e86a9 100644 --- a/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/storage.kubestash.com/v1alpha1/retentionpolicies.yaml +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/storage.kubestash.com/v1alpha1/retentionpolicies.yaml @@ -17,19 +17,10 @@ spec: version: v1alpha1 validation: openAPIV3Schema: - description: RetentionPolicy specifies how the old Snapshots should be cleaned - up. This is a namespaced CRD. However, you can refer it from other namespaces - as long as it is permitted via `.spec.usagePolicy`. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: properties: @@ -65,121 +56,60 @@ spec: type: object type: object spec: - description: RetentionPolicySpec defines the policy of cleaning old Snapshots properties: default: - description: Default specifies whether to use this RetentionPolicy as - a default RetentionPolicy for the current namespace as well as the - permitted namespaces. One namespace can have at most one default RetentionPolicy - configured. type: boolean failedSnapshots: - description: FailedSnapshots specifies how many failed Snapshots should - be kept. properties: last: default: 1 - description: Last specifies how many last failed Snapshots should - be kept. By default, KubeStash will keep only the last 1 failed - Snapshot. format: int32 type: integer type: object maxRetentionPeriod: - description: "MaxRetentionPeriod specifies a duration up to which the - old Snapshots should be kept. KubeStash will remove all the Snapshots - that are older than the MaxRetentionPeriod. For example, MaxRetentionPeriod - of `30d` will keep only the Snapshots of last 30 days. Sample duration - format: - years: \t2y - months: \t6mo - days: \t\t30d - hours: \t12h - - minutes: \t30m You can also combine the above durations. For example: - 30d12h30m" type: string successfulSnapshots: - description: SuccessfulSnapshots specifies how many successful Snapshots - should be kept. properties: daily: - description: Daily specifies how many daily Snapshots should be - kept. format: int32 type: integer hourly: - description: Hourly specifies how many hourly Snapshots should be - kept. format: int32 type: integer last: - description: Last specifies how many last Snapshots should be kept. format: int32 type: integer monthly: - description: Monthly specifies how many monthly Snapshots should - be kept. format: int32 type: integer weekly: - description: Weekly specifies how many weekly Snapshots should be - kept. format: int32 type: integer yearly: - description: Yearly specifies how many yearly Snapshots should be - kept. format: int32 type: integer type: object usagePolicy: - description: UsagePolicy specifies a policy of how this RetentionPolicy - will be used. For example, you can use `allowedNamespaces` policy - to restrict the usage of this RetentionPolicy to particular namespaces. - This field is optional. If you don't provide the usagePolicy, then - it can be used only from the current namespace. properties: allowedNamespaces: - description: AllowedNamespaces specifies which namespaces are allowed - to use the resource properties: from: default: Same - description: 'From indicates how to select the namespaces that - are allowed to use this resource. Possible values are: * All: - All namespaces can use this resource. * Selector: Namespaces - that matches the selector can use this resource. * Same: Only - current namespace can use the resource.' enum: - All - Selector - Same type: string selector: - description: Selector must be specified when From is set to - "Selector". In that case, only the selected namespaces are - allowed to use this resource. This field is ignored for other - values of "From". properties: matchExpressions: - description: matchExpressions is a list of label selector - requirements. The requirements are ANDed. items: - description: A label selector requirement is a selector - that contains values, a key, and an operator that relates - the key and values. properties: key: - description: key is the label key that the selector - applies to. type: string operator: - description: operator represents a key's relationship - to a set of values. Valid operators are In, NotIn, - Exists and DoesNotExist. type: string values: - description: values is an array of string values. - If the operator is In or NotIn, the values array - must be non-empty. If the operator is Exists or - DoesNotExist, the values array must be empty. This - array is replaced during a strategic merge patch. items: type: string type: array @@ -193,11 +123,6 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} pairs. - A single {key,value} in the matchLabels map is equivalent - to an element of matchExpressions, whose key field is - "key", the operator is "In", and the values array contains - only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/storage.kubestash.com/v1alpha1/snapshots.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/storage.kubestash.com/v1alpha1/snapshots.yaml index e2f3dfac5..c0ad29a93 100644 --- a/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/storage.kubestash.com/v1alpha1/snapshots.yaml +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourcedescriptors/storage.kubestash.com/v1alpha1/snapshots.yaml @@ -107,21 +107,10 @@ spec: version: v1alpha1 validation: openAPIV3Schema: - description: Snapshot represents the state of a backup run to a particular Repository. - Multiple components of the same target may be backed up in the same Snapshot. - This is a namespaced CRD. It should be in the same namespace as the respective - Repository. KubeStash operator is responsible for creating Snapshot CR. Snapshot - is not supposed to be created/edited by the end user. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: properties: @@ -157,67 +146,39 @@ spec: type: object type: object spec: - description: SnapshotSpec specifies the information regarding the application - that is being backed up, the Repository where the backed up data is being - stored, and the session which is responsible for this snapshot etc. properties: appRef: - description: AppRef specifies the reference of the application that - has been backed up in this Snapshot. properties: apiGroup: type: string kind: type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string required: - name type: object backupSession: - description: BackupSession represents the name of the respective BackupSession - which is responsible for this Snapshot. type: string deletionPolicy: default: Delete - description: 'DeletionPolicy specifies what to do when you delete a - Snapshot CR. The valid values are: - "Delete": This will delete just - the Snapshot CR from the cluster but keep the backed up data in the - remote backend. This is the default behavior. - "WipeOut": This will - delete the Snapshot CR as well as the backed up data from the backend.' enum: - Delete - WipeOut type: string paused: - description: Paused specifies whether the Snapshot is paused or not. - If the Snapshot is paused, KubeStash will not process any further - event for the Snapshot. type: boolean repository: - description: Repository specifies the name of the Repository where this - Snapshot is being stored. type: string session: - description: Session specifies the name of the session which is responsible - for this Snapshot type: string snapshotID: - description: 'SnapshotID represents a "Universally Unique Lexicographically - Sortable Identifier" (ULID) for the Snapshot. For more details about - ULID, please see: https://github.com/oklog/ulid' type: string type: - description: Type specifies whether this snapshot represents a full - or incremental backup type: string version: - description: Version denotes the respective data organization structure - inside the Repository type: string type: object type: object diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/core.kubestash.com/v1alpha1/backupverificationsession.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/core.kubestash.com/v1alpha1/backupverificationsession.yaml new file mode 100644 index 000000000..a8efe1c96 --- /dev/null +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/core.kubestash.com/v1alpha1/backupverificationsession.yaml @@ -0,0 +1,17 @@ +apiVersion: ui.k8s.appscode.com/v1alpha1 +kind: ResourceEditor +metadata: + creationTimestamp: null + labels: + k8s.io/group: core.kubestash.com + k8s.io/kind: BackupVerificationSession + k8s.io/resource: backupverificationsession + k8s.io/version: v1alpha1 + name: core.kubestash.com-v1alpha1-backupverificationsession +spec: + resource: + group: core.kubestash.com + kind: BackupVerificationSession + name: backupverificationsession + scope: Namespaced + version: v1alpha1 diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/core.kubestash.com/v1alpha1/backupverifier.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/core.kubestash.com/v1alpha1/backupverifier.yaml new file mode 100644 index 000000000..7bc3798d3 --- /dev/null +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/core.kubestash.com/v1alpha1/backupverifier.yaml @@ -0,0 +1,17 @@ +apiVersion: ui.k8s.appscode.com/v1alpha1 +kind: ResourceEditor +metadata: + creationTimestamp: null + labels: + k8s.io/group: core.kubestash.com + k8s.io/kind: BackupVerifier + k8s.io/resource: backupverifier + k8s.io/version: v1alpha1 + name: core.kubestash.com-v1alpha1-backupverifier +spec: + resource: + group: core.kubestash.com + kind: BackupVerifier + name: backupverifier + scope: Namespaced + version: v1alpha1 diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1/elasticsearches.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1/elasticsearches.yaml index 10cae32e1..04aa4de87 100644 --- a/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1/elasticsearches.yaml +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1/elasticsearches.yaml @@ -33,10 +33,24 @@ spec: enforceQuota: false flow: standalone-edit icons: - - src: https://cdn.appscode.com/k8s/icons/action-icons/backup.svg + - src: https://cdn.appscode.com/k8s/icons/action-icons/configure-backup.svg type: image/svg+xml - name: Backup + name: Configure Backup operationId: edit-self-backupconfiguration + - editor: + name: corekubestashcom-backupsession-editor + sourceRef: + apiGroup: source.toolkit.fluxcd.io + kind: HelmRepository + name: appscode-charts-oci + version: v0.11.0 + enforceQuota: false + flow: standalone-create + icons: + - src: https://cdn.appscode.com/k8s/icons/action-icons/instant-backup.svg + type: image/svg+xml + name: Instant Backup + operationId: create-instant-backup - editor: name: corekubestashcom-restoresession-editor-options sourceRef: diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1/mariadbs.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1/mariadbs.yaml index 9f1e98500..cd41af7d2 100644 --- a/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1/mariadbs.yaml +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1/mariadbs.yaml @@ -33,10 +33,24 @@ spec: enforceQuota: false flow: standalone-edit icons: - - src: https://cdn.appscode.com/k8s/icons/action-icons/backup.svg + - src: https://cdn.appscode.com/k8s/icons/action-icons/configure-backup.svg type: image/svg+xml - name: Backup + name: Configure Backup operationId: edit-self-backupconfiguration + - editor: + name: corekubestashcom-backupsession-editor + sourceRef: + apiGroup: source.toolkit.fluxcd.io + kind: HelmRepository + name: appscode-charts-oci + version: v0.11.0 + enforceQuota: false + flow: standalone-create + icons: + - src: https://cdn.appscode.com/k8s/icons/action-icons/instant-backup.svg + type: image/svg+xml + name: Instant Backup + operationId: create-instant-backup - editor: name: corekubestashcom-restoresession-editor-options sourceRef: diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1/mongodbs.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1/mongodbs.yaml index 61e2e7f48..09f9ea0b3 100644 --- a/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1/mongodbs.yaml +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1/mongodbs.yaml @@ -33,10 +33,24 @@ spec: enforceQuota: false flow: standalone-edit icons: - - src: https://cdn.appscode.com/k8s/icons/action-icons/backup.svg + - src: https://cdn.appscode.com/k8s/icons/action-icons/configure-backup.svg type: image/svg+xml - name: Backup + name: Configure Backup operationId: edit-self-backupconfiguration + - editor: + name: corekubestashcom-backupsession-editor + sourceRef: + apiGroup: source.toolkit.fluxcd.io + kind: HelmRepository + name: appscode-charts-oci + version: v0.11.0 + enforceQuota: false + flow: standalone-create + icons: + - src: https://cdn.appscode.com/k8s/icons/action-icons/instant-backup.svg + type: image/svg+xml + name: Instant Backup + operationId: create-instant-backup - editor: name: corekubestashcom-restoresession-editor-options sourceRef: diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1/mysqls.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1/mysqls.yaml index c2782c632..c4c71b40c 100644 --- a/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1/mysqls.yaml +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1/mysqls.yaml @@ -33,10 +33,24 @@ spec: enforceQuota: false flow: standalone-edit icons: - - src: https://cdn.appscode.com/k8s/icons/action-icons/backup.svg + - src: https://cdn.appscode.com/k8s/icons/action-icons/configure-backup.svg type: image/svg+xml - name: Backup + name: Configure Backup operationId: edit-self-backupconfiguration + - editor: + name: corekubestashcom-backupsession-editor + sourceRef: + apiGroup: source.toolkit.fluxcd.io + kind: HelmRepository + name: appscode-charts-oci + version: v0.11.0 + enforceQuota: false + flow: standalone-create + icons: + - src: https://cdn.appscode.com/k8s/icons/action-icons/instant-backup.svg + type: image/svg+xml + name: Instant Backup + operationId: create-instant-backup - editor: name: corekubestashcom-restoresession-editor-options sourceRef: diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1/postgreses.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1/postgreses.yaml index 48d84a1ae..8dbe7d345 100644 --- a/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1/postgreses.yaml +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1/postgreses.yaml @@ -33,10 +33,24 @@ spec: enforceQuota: false flow: standalone-edit icons: - - src: https://cdn.appscode.com/k8s/icons/action-icons/backup.svg + - src: https://cdn.appscode.com/k8s/icons/action-icons/configure-backup.svg type: image/svg+xml - name: Backup + name: Configure Backup operationId: edit-self-backupconfiguration + - editor: + name: corekubestashcom-backupsession-editor + sourceRef: + apiGroup: source.toolkit.fluxcd.io + kind: HelmRepository + name: appscode-charts-oci + version: v0.11.0 + enforceQuota: false + flow: standalone-create + icons: + - src: https://cdn.appscode.com/k8s/icons/action-icons/instant-backup.svg + type: image/svg+xml + name: Instant Backup + operationId: create-instant-backup - editor: name: corekubestashcom-restoresession-editor-options sourceRef: diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1/redises.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1/redises.yaml index 868148eb4..c6b9c1e80 100644 --- a/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1/redises.yaml +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1/redises.yaml @@ -33,10 +33,24 @@ spec: enforceQuota: false flow: standalone-edit icons: - - src: https://cdn.appscode.com/k8s/icons/action-icons/backup.svg + - src: https://cdn.appscode.com/k8s/icons/action-icons/configure-backup.svg type: image/svg+xml - name: Backup + name: Configure Backup operationId: edit-self-backupconfiguration + - editor: + name: corekubestashcom-backupsession-editor + sourceRef: + apiGroup: source.toolkit.fluxcd.io + kind: HelmRepository + name: appscode-charts-oci + version: v0.11.0 + enforceQuota: false + flow: standalone-create + icons: + - src: https://cdn.appscode.com/k8s/icons/action-icons/instant-backup.svg + type: image/svg+xml + name: Instant Backup + operationId: create-instant-backup - editor: name: corekubestashcom-restoresession-editor-options sourceRef: diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/elasticsearches.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/elasticsearches.yaml index f6e903f8e..bdfb78e9e 100644 --- a/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/elasticsearches.yaml +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/elasticsearches.yaml @@ -33,9 +33,9 @@ spec: enforceQuota: false flow: standalone-edit icons: - - src: https://cdn.appscode.com/k8s/icons/action-icons/backup.svg + - src: https://cdn.appscode.com/k8s/icons/action-icons/configure-backup.svg type: image/svg+xml - name: Backup + name: Configure Backup operationId: edit-self-backupconfiguration - editor: name: corekubestashcom-restoresession-editor-options diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/mariadbs.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/mariadbs.yaml index 5eb9b9f1b..41c1b41dd 100644 --- a/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/mariadbs.yaml +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/mariadbs.yaml @@ -33,9 +33,9 @@ spec: enforceQuota: false flow: standalone-edit icons: - - src: https://cdn.appscode.com/k8s/icons/action-icons/backup.svg + - src: https://cdn.appscode.com/k8s/icons/action-icons/configure-backup.svg type: image/svg+xml - name: Backup + name: Configure Backup operationId: edit-self-backupconfiguration - editor: name: corekubestashcom-restoresession-editor-options diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/mongodbs.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/mongodbs.yaml index 57738a619..e05bd3892 100644 --- a/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/mongodbs.yaml +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/mongodbs.yaml @@ -33,9 +33,9 @@ spec: enforceQuota: false flow: standalone-edit icons: - - src: https://cdn.appscode.com/k8s/icons/action-icons/backup.svg + - src: https://cdn.appscode.com/k8s/icons/action-icons/configure-backup.svg type: image/svg+xml - name: Backup + name: Configure Backup operationId: edit-self-backupconfiguration - editor: name: corekubestashcom-restoresession-editor-options diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/mssqlservers.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/mssqlservers.yaml index 7c244ff9e..700fdc5ae 100644 --- a/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/mssqlservers.yaml +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/mssqlservers.yaml @@ -33,10 +33,24 @@ spec: enforceQuota: false flow: standalone-edit icons: - - src: https://cdn.appscode.com/k8s/icons/action-icons/backup.svg + - src: https://cdn.appscode.com/k8s/icons/action-icons/configure-backup.svg type: image/svg+xml - name: Backup + name: Configure Backup operationId: edit-self-backupconfiguration + - editor: + name: corekubestashcom-backupsession-editor + sourceRef: + apiGroup: source.toolkit.fluxcd.io + kind: HelmRepository + name: appscode-charts-oci + version: v0.11.0 + enforceQuota: false + flow: standalone-create + icons: + - src: https://cdn.appscode.com/k8s/icons/action-icons/instant-backup.svg + type: image/svg+xml + name: Instant Backup + operationId: create-instant-backup - editor: name: corekubestashcom-restoresession-editor-options sourceRef: diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/mysqls.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/mysqls.yaml index a8678b4ca..f7622d331 100644 --- a/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/mysqls.yaml +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/mysqls.yaml @@ -33,9 +33,9 @@ spec: enforceQuota: false flow: standalone-edit icons: - - src: https://cdn.appscode.com/k8s/icons/action-icons/backup.svg + - src: https://cdn.appscode.com/k8s/icons/action-icons/configure-backup.svg type: image/svg+xml - name: Backup + name: Configure Backup operationId: edit-self-backupconfiguration - editor: name: corekubestashcom-restoresession-editor-options diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/postgreses.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/postgreses.yaml index edbf831ae..70a07646e 100644 --- a/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/postgreses.yaml +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/postgreses.yaml @@ -33,9 +33,9 @@ spec: enforceQuota: false flow: standalone-edit icons: - - src: https://cdn.appscode.com/k8s/icons/action-icons/backup.svg + - src: https://cdn.appscode.com/k8s/icons/action-icons/configure-backup.svg type: image/svg+xml - name: Backup + name: Configure Backup operationId: edit-self-backupconfiguration - editor: name: corekubestashcom-restoresession-editor-options diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/redises.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/redises.yaml index b4b01a5e7..822145d96 100644 --- a/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/redises.yaml +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/redises.yaml @@ -33,9 +33,9 @@ spec: enforceQuota: false flow: standalone-edit icons: - - src: https://cdn.appscode.com/k8s/icons/action-icons/backup.svg + - src: https://cdn.appscode.com/k8s/icons/action-icons/configure-backup.svg type: image/svg+xml - name: Backup + name: Configure Backup operationId: edit-self-backupconfiguration - editor: name: corekubestashcom-restoresession-editor-options diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/singlestores.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/singlestores.yaml index ffb791590..64302420c 100644 --- a/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/singlestores.yaml +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/singlestores.yaml @@ -33,10 +33,24 @@ spec: enforceQuota: false flow: standalone-edit icons: - - src: https://cdn.appscode.com/k8s/icons/action-icons/backup.svg + - src: https://cdn.appscode.com/k8s/icons/action-icons/configure-backup.svg type: image/svg+xml - name: Backup + name: Configure Backup operationId: edit-self-backupconfiguration + - editor: + name: corekubestashcom-backupsession-editor + sourceRef: + apiGroup: source.toolkit.fluxcd.io + kind: HelmRepository + name: appscode-charts-oci + version: v0.11.0 + enforceQuota: false + flow: standalone-create + icons: + - src: https://cdn.appscode.com/k8s/icons/action-icons/instant-backup.svg + type: image/svg+xml + name: Instant Backup + operationId: create-instant-backup - editor: name: corekubestashcom-restoresession-editor-options sourceRef: diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/solrs.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/solrs.yaml index ae3a09c41..10645752b 100644 --- a/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/solrs.yaml +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/kubedb.com/v1alpha2/solrs.yaml @@ -33,10 +33,24 @@ spec: enforceQuota: false flow: standalone-edit icons: - - src: https://cdn.appscode.com/k8s/icons/action-icons/backup.svg + - src: https://cdn.appscode.com/k8s/icons/action-icons/configure-backup.svg type: image/svg+xml - name: Backup + name: Configure Backup operationId: edit-self-backupconfiguration + - editor: + name: corekubestashcom-backupsession-editor + sourceRef: + apiGroup: source.toolkit.fluxcd.io + kind: HelmRepository + name: appscode-charts-oci + version: v0.11.0 + enforceQuota: false + flow: standalone-create + icons: + - src: https://cdn.appscode.com/k8s/icons/action-icons/instant-backup.svg + type: image/svg+xml + name: Instant Backup + operationId: create-instant-backup - editor: name: corekubestashcom-restoresession-editor-options sourceRef: diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/meta.k8s.appscode.com/v1alpha1/ClusterProfiles.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/meta.k8s.appscode.com/v1alpha1/clusterprofiles.yaml similarity index 82% rename from vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/meta.k8s.appscode.com/v1alpha1/ClusterProfiles.yaml rename to vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/meta.k8s.appscode.com/v1alpha1/clusterprofiles.yaml index 0c511cc5d..4509c24b2 100644 --- a/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/meta.k8s.appscode.com/v1alpha1/ClusterProfiles.yaml +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourceeditors/meta.k8s.appscode.com/v1alpha1/clusterprofiles.yaml @@ -5,14 +5,14 @@ metadata: labels: k8s.io/group: meta.k8s.appscode.com k8s.io/kind: ClusterProfile - k8s.io/resource: ClusterProfiles + k8s.io/resource: clusterprofiles k8s.io/version: v1alpha1 - name: meta.k8s.appscode.com-v1alpha1-ClusterProfiles + name: meta.k8s.appscode.com-v1alpha1-clusterprofiles spec: resource: group: meta.k8s.appscode.com kind: ClusterProfile - name: ClusterProfiles + name: clusterprofiles scope: Cluster version: v1alpha1 ui: diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourcetabledefinitions/core.kubestash.com/v1alpha1/backupverificationsession.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourcetabledefinitions/core.kubestash.com/v1alpha1/backupverificationsession.yaml new file mode 100644 index 000000000..993ca2204 --- /dev/null +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourcetabledefinitions/core.kubestash.com/v1alpha1/backupverificationsession.yaml @@ -0,0 +1,18 @@ +apiVersion: meta.k8s.appscode.com/v1alpha1 +kind: ResourceTableDefinition +metadata: + creationTimestamp: null + labels: + k8s.io/group: core.kubestash.com + k8s.io/kind: BackupVerificationSession + k8s.io/resource: backupverificationsession + k8s.io/version: v1alpha1 + name: core.kubestash.com-v1alpha1-backupverificationsession +spec: + defaultView: true + resource: + group: core.kubestash.com + kind: BackupVerificationSession + name: backupverificationsession + scope: Namespaced + version: v1alpha1 diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourcetabledefinitions/core.kubestash.com/v1alpha1/backupverifier.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourcetabledefinitions/core.kubestash.com/v1alpha1/backupverifier.yaml new file mode 100644 index 000000000..9a1504a64 --- /dev/null +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourcetabledefinitions/core.kubestash.com/v1alpha1/backupverifier.yaml @@ -0,0 +1,18 @@ +apiVersion: meta.k8s.appscode.com/v1alpha1 +kind: ResourceTableDefinition +metadata: + creationTimestamp: null + labels: + k8s.io/group: core.kubestash.com + k8s.io/kind: BackupVerifier + k8s.io/resource: backupverifier + k8s.io/version: v1alpha1 + name: core.kubestash.com-v1alpha1-backupverifier +spec: + defaultView: true + resource: + group: core.kubestash.com + kind: BackupVerifier + name: backupverifier + scope: Namespaced + version: v1alpha1 diff --git a/vendor/kmodules.xyz/resource-metadata/hub/resourcetabledefinitions/meta.k8s.appscode.com/v1alpha1/ClusterProfiles.yaml b/vendor/kmodules.xyz/resource-metadata/hub/resourcetabledefinitions/meta.k8s.appscode.com/v1alpha1/clusterprofiles.yaml similarity index 75% rename from vendor/kmodules.xyz/resource-metadata/hub/resourcetabledefinitions/meta.k8s.appscode.com/v1alpha1/ClusterProfiles.yaml rename to vendor/kmodules.xyz/resource-metadata/hub/resourcetabledefinitions/meta.k8s.appscode.com/v1alpha1/clusterprofiles.yaml index ce2d4bd7b..ab40d6e1c 100644 --- a/vendor/kmodules.xyz/resource-metadata/hub/resourcetabledefinitions/meta.k8s.appscode.com/v1alpha1/ClusterProfiles.yaml +++ b/vendor/kmodules.xyz/resource-metadata/hub/resourcetabledefinitions/meta.k8s.appscode.com/v1alpha1/clusterprofiles.yaml @@ -5,14 +5,14 @@ metadata: labels: k8s.io/group: meta.k8s.appscode.com k8s.io/kind: ClusterProfile - k8s.io/resource: ClusterProfiles + k8s.io/resource: clusterprofiles k8s.io/version: v1alpha1 - name: meta.k8s.appscode.com-v1alpha1-ClusterProfiles + name: meta.k8s.appscode.com-v1alpha1-clusterprofiles spec: defaultView: true resource: group: meta.k8s.appscode.com kind: ClusterProfile - name: ClusterProfiles + name: clusterprofiles scope: Cluster version: v1alpha1 diff --git a/vendor/kubedb.dev/apimachinery/apis/catalog/v1alpha1/openapi_generated.go b/vendor/kubedb.dev/apimachinery/apis/catalog/v1alpha1/openapi_generated.go index 54bf95dd8..23fb8919c 100644 --- a/vendor/kubedb.dev/apimachinery/apis/catalog/v1alpha1/openapi_generated.go +++ b/vendor/kubedb.dev/apimachinery/apis/catalog/v1alpha1/openapi_generated.go @@ -410,6 +410,8 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA "kmodules.xyz/client-go/api/v1.CAPIClusterInfo": schema_kmodulesxyz_client_go_api_v1_CAPIClusterInfo(ref), "kmodules.xyz/client-go/api/v1.CertificatePrivateKey": schema_kmodulesxyz_client_go_api_v1_CertificatePrivateKey(ref), "kmodules.xyz/client-go/api/v1.CertificateSpec": schema_kmodulesxyz_client_go_api_v1_CertificateSpec(ref), + "kmodules.xyz/client-go/api/v1.ClusterClaimFeatures": schema_kmodulesxyz_client_go_api_v1_ClusterClaimFeatures(ref), + "kmodules.xyz/client-go/api/v1.ClusterClaimInfo": schema_kmodulesxyz_client_go_api_v1_ClusterClaimInfo(ref), "kmodules.xyz/client-go/api/v1.ClusterInfo": schema_kmodulesxyz_client_go_api_v1_ClusterInfo(ref), "kmodules.xyz/client-go/api/v1.ClusterMetadata": schema_kmodulesxyz_client_go_api_v1_ClusterMetadata(ref), "kmodules.xyz/client-go/api/v1.Condition": schema_kmodulesxyz_client_go_api_v1_Condition(ref), @@ -21331,6 +21333,81 @@ func schema_kmodulesxyz_client_go_api_v1_CertificateSpec(ref common.ReferenceCal } } +func schema_kmodulesxyz_client_go_api_v1_ClusterClaimFeatures(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "enabledFeatures": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "externallyManagedFeatures": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "disabledFeatures": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + }, + }, + }, + } +} + +func schema_kmodulesxyz_client_go_api_v1_ClusterClaimInfo(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "clusterMetadata": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("kmodules.xyz/client-go/api/v1.ClusterInfo"), + }, + }, + }, + Required: []string{"clusterMetadata"}, + }, + }, + Dependencies: []string{ + "kmodules.xyz/client-go/api/v1.ClusterInfo"}, + } +} + func schema_kmodulesxyz_client_go_api_v1_ClusterInfo(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ diff --git a/vendor/kubedb.dev/apimachinery/apis/kubedb/constants.go b/vendor/kubedb.dev/apimachinery/apis/kubedb/constants.go index 68ffd7773..4f8fa0c5f 100644 --- a/vendor/kubedb.dev/apimachinery/apis/kubedb/constants.go +++ b/vendor/kubedb.dev/apimachinery/apis/kubedb/constants.go @@ -67,6 +67,9 @@ const ( EtcdKey = "etcd" + "." + GroupName ProxySQLKey = "proxysql" + "." + GroupName + // Auth related constants + BasicAuthActiveFromAnnotation = "basic-auth-active-from" + // =========================== Elasticsearch Constants ============================ ElasticsearchRestPort = 9200 ElasticsearchRestPortName = "http" @@ -414,6 +417,7 @@ const ( // environment variables EnvAcceptEula = "ACCEPT_EULA" + EnvMSSQLPid = "MSSQL_PID" EnvMSSQLEnableHADR = "MSSQL_ENABLE_HADR" EnvMSSQLAgentEnabled = "MSSQL_AGENT_ENABLED" EnvMSSQLSAUsername = "MSSQL_SA_USERNAME" @@ -1610,9 +1614,19 @@ var ( core.ResourceMemory: resource.MustParse("256Mi"), }, } + DefaultArbiterMemoryIntensive = core.ResourceRequirements{ + Requests: core.ResourceList{ + // these are the default cpu & memory for a coordinator container + core.ResourceCPU: resource.MustParse(".200"), + core.ResourceMemory: resource.MustParse("500Mi"), + }, + Limits: core.ResourceList{ + core.ResourceMemory: resource.MustParse("500Mi"), + }, + } - // DefaultResourcesCPUIntensive is for MongoDB versions >= 6 - DefaultResourcesCPUIntensive = core.ResourceRequirements{ + // DefaultResourcesCPUIntensiveMongoDBv6 is for MongoDB versions >= 6 + DefaultResourcesCPUIntensiveMongoDBv6 = core.ResourceRequirements{ Requests: core.ResourceList{ core.ResourceCPU: resource.MustParse(".800"), core.ResourceMemory: resource.MustParse("1024Mi"), @@ -1621,6 +1635,16 @@ var ( core.ResourceMemory: resource.MustParse("1024Mi"), }, } + // DefaultResourcesCPUIntensiveMongoDBv8 is for MongoDB versions >= 8 + DefaultResourcesCPUIntensiveMongoDBv8 = core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceCPU: resource.MustParse(".800"), + core.ResourceMemory: resource.MustParse("1.5Gi"), + }, + Limits: core.ResourceList{ + core.ResourceMemory: resource.MustParse("1.5Gi"), + }, + } // DefaultResourcesMemoryIntensive must be used for elasticsearch // to avoid OOMKILLED while deploying ES V8 diff --git a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1/elasticsearch_helpers.go b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1/elasticsearch_helpers.go index a8a4ac291..82c685727 100644 --- a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1/elasticsearch_helpers.go +++ b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1/elasticsearch_helpers.go @@ -859,7 +859,7 @@ func (e *Elasticsearch) setDefaultInternalUsersAndRoleMappings(esVersion *catalo userSpec.SecretName = e.Spec.AuthSecret.Name } else { if userSpec.SecretName == "" { - userSpec.SecretName = e.DefaultUserCredSecretName(username) + userSpec.SecretName = e.GetAuthSecretName() } e.Spec.AuthSecret = &SecretReference{ LocalObjectReference: core.LocalObjectReference{ diff --git a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1/mongodb_helpers.go b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1/mongodb_helpers.go index 48c310d48..4422cccaf 100644 --- a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1/mongodb_helpers.go +++ b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1/mongodb_helpers.go @@ -713,8 +713,10 @@ func (m *MongoDB) setPodTemplateDefaultValues(podTemplate *ofstv2.PodTemplateSpe m.setDefaultPodSecurityContext(mgVersion, podTemplate) defaultResource := kubedb.DefaultResources - if m.isVersion6OrLater(mgVersion) { - defaultResource = kubedb.DefaultResourcesCPUIntensive + if m.isLaterVersion(mgVersion, 8) { + defaultResource = kubedb.DefaultResourcesCPUIntensiveMongoDBv8 + } else if m.isLaterVersion(mgVersion, 6) { + defaultResource = kubedb.DefaultResourcesCPUIntensiveMongoDBv6 } container := ofst_util.EnsureInitContainerExists(podTemplate, kubedb.MongoDBInitInstallContainerName) @@ -733,7 +735,11 @@ func (m *MongoDB) setContainerDefaultValues(container *core.Container, mgVersion defaultResource core.ResourceRequirements, isArbiter ...bool, ) { if len(isArbiter) > 0 && isArbiter[0] { - m.setContainerDefaultResources(container, kubedb.DefaultArbiter(true)) + if m.isLaterVersion(mgVersion, 7) { + m.setContainerDefaultResources(container, kubedb.DefaultArbiterMemoryIntensive) + } else { + m.setContainerDefaultResources(container, kubedb.DefaultArbiter(true)) + } } else { m.setContainerDefaultResources(container, defaultResource) } @@ -886,19 +892,19 @@ func (m *MongoDB) SetTLSDefaults() { }) } -func (m *MongoDB) isVersion6OrLater(mgVersion *v1alpha1.MongoDBVersion) bool { +func (m *MongoDB) isLaterVersion(mgVersion *v1alpha1.MongoDBVersion, version uint64) bool { v, _ := semver.NewVersion(mgVersion.Spec.Version) - return v.Major() >= 6 + return v.Major() >= version } func (m *MongoDB) GetEntryCommand(mgVersion *v1alpha1.MongoDBVersion) string { - if m.isVersion6OrLater(mgVersion) { + if m.isLaterVersion(mgVersion, 6) { return "mongosh" } return "mongo" } -func (m *MongoDB) getCmdForProbes(mgVersion *v1alpha1.MongoDBVersion, isArbiter ...bool) []string { +func (m *MongoDB) getCmdForProbes(mgVersion *v1alpha1.MongoDBVersion) []string { var sslArgs string if m.Spec.SSLMode == SSLModeRequireSSL { sslArgs = fmt.Sprintf("--tls --tlsCAFile=%v/%v --tlsCertificateKeyFile=%v/%v", @@ -917,17 +923,13 @@ func (m *MongoDB) getCmdForProbes(mgVersion *v1alpha1.MongoDBVersion, isArbiter } } - var authArgs string - if len(isArbiter) == 0 { // not arbiter - authArgs = "--username=$MONGO_INITDB_ROOT_USERNAME --password=$MONGO_INITDB_ROOT_PASSWORD --authenticationDatabase=admin" - } return []string{ "bash", "-c", - fmt.Sprintf(`set -x; if [[ $(%s admin --host=localhost %v %v --quiet --eval "db.adminCommand('ping').ok" ) -eq "1" ]]; then + fmt.Sprintf(`set -x; if [[ $(%s admin --host=localhost %v --quiet --eval "db.adminCommand('ping').ok" ) -eq "1" ]]; then exit 0 fi - exit 1`, m.GetEntryCommand(mgVersion), sslArgs, authArgs), + exit 1`, m.GetEntryCommand(mgVersion), sslArgs), } } @@ -935,7 +937,7 @@ func (m *MongoDB) GetDefaultLivenessProbeSpec(mgVersion *v1alpha1.MongoDBVersion return &core.Probe{ ProbeHandler: core.ProbeHandler{ Exec: &core.ExecAction{ - Command: m.getCmdForProbes(mgVersion, isArbiter...), + Command: m.getCmdForProbes(mgVersion), }, }, FailureThreshold: 3, @@ -949,7 +951,7 @@ func (m *MongoDB) GetDefaultReadinessProbeSpec(mgVersion *v1alpha1.MongoDBVersio return &core.Probe{ ProbeHandler: core.ProbeHandler{ Exec: &core.ExecAction{ - Command: m.getCmdForProbes(mgVersion, isArbiter...), + Command: m.getCmdForProbes(mgVersion), }, }, FailureThreshold: 3, diff --git a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1/mysql_types.go b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1/mysql_types.go index b9a8e3745..9b3ddcb1a 100644 --- a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1/mysql_types.go +++ b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1/mysql_types.go @@ -41,12 +41,12 @@ const ( MySQLModeSemiSync MySQLMode = "SemiSync" ) -// +kubebuilder:validation:Enum=Single-Primary +// +kubebuilder:validation:Enum=Single-Primary;Multi-Primary type MySQLGroupMode string const ( MySQLGroupModeSinglePrimary MySQLGroupMode = "Single-Primary" - // MySQLGroupModeMultiPrimary MySQLGroupMode = "Multi-Primary" + MySQLGroupModeMultiPrimary MySQLGroupMode = "Multi-Primary" ) // Mysql defines a Mysql database. diff --git a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1/openapi_generated.go b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1/openapi_generated.go index 2431f11cf..75df96398 100644 --- a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1/openapi_generated.go +++ b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1/openapi_generated.go @@ -410,6 +410,8 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA "kmodules.xyz/client-go/api/v1.CAPIClusterInfo": schema_kmodulesxyz_client_go_api_v1_CAPIClusterInfo(ref), "kmodules.xyz/client-go/api/v1.CertificatePrivateKey": schema_kmodulesxyz_client_go_api_v1_CertificatePrivateKey(ref), "kmodules.xyz/client-go/api/v1.CertificateSpec": schema_kmodulesxyz_client_go_api_v1_CertificateSpec(ref), + "kmodules.xyz/client-go/api/v1.ClusterClaimFeatures": schema_kmodulesxyz_client_go_api_v1_ClusterClaimFeatures(ref), + "kmodules.xyz/client-go/api/v1.ClusterClaimInfo": schema_kmodulesxyz_client_go_api_v1_ClusterClaimInfo(ref), "kmodules.xyz/client-go/api/v1.ClusterInfo": schema_kmodulesxyz_client_go_api_v1_ClusterInfo(ref), "kmodules.xyz/client-go/api/v1.ClusterMetadata": schema_kmodulesxyz_client_go_api_v1_ClusterMetadata(ref), "kmodules.xyz/client-go/api/v1.Condition": schema_kmodulesxyz_client_go_api_v1_Condition(ref), @@ -21267,6 +21269,81 @@ func schema_kmodulesxyz_client_go_api_v1_CertificateSpec(ref common.ReferenceCal } } +func schema_kmodulesxyz_client_go_api_v1_ClusterClaimFeatures(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "enabledFeatures": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "externallyManagedFeatures": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "disabledFeatures": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + }, + }, + }, + } +} + +func schema_kmodulesxyz_client_go_api_v1_ClusterClaimInfo(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "clusterMetadata": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("kmodules.xyz/client-go/api/v1.ClusterInfo"), + }, + }, + }, + Required: []string{"clusterMetadata"}, + }, + }, + Dependencies: []string{ + "kmodules.xyz/client-go/api/v1.ClusterInfo"}, + } +} + func schema_kmodulesxyz_client_go_api_v1_ClusterInfo(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ diff --git a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1/postgres_helpers.go b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1/postgres_helpers.go index ddf77bdfa..3b1f9afe8 100644 --- a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1/postgres_helpers.go +++ b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1/postgres_helpers.go @@ -295,10 +295,10 @@ func (p *Postgres) SetDefaultReplicationMode(postgresVersion *catalog.PostgresVe } } if p.Spec.Replication.WALLimitPolicy == WALKeepSegment && p.Spec.Replication.WalKeepSegment == nil { - p.Spec.Replication.WalKeepSegment = pointer.Int32P(160) + p.Spec.Replication.WalKeepSegment = pointer.Int32P(96) } if p.Spec.Replication.WALLimitPolicy == WALKeepSize && p.Spec.Replication.WalKeepSizeInMegaBytes == nil { - p.Spec.Replication.WalKeepSizeInMegaBytes = pointer.Int32P(2560) + p.Spec.Replication.WalKeepSizeInMegaBytes = pointer.Int32P(1536) } if p.Spec.Replication.WALLimitPolicy == ReplicationSlot && p.Spec.Replication.MaxSlotWALKeepSizeInMegaBytes == nil { p.Spec.Replication.MaxSlotWALKeepSizeInMegaBytes = pointer.Int32P(-1) @@ -306,12 +306,12 @@ func (p *Postgres) SetDefaultReplicationMode(postgresVersion *catalog.PostgresVe } func (p *Postgres) SetArbiterDefault() { - if p.Spec.Arbiter == nil { + if ptr.Deref(p.Spec.Replicas, 0)%2 == 0 && p.Spec.Arbiter == nil { p.Spec.Arbiter = &ArbiterSpec{ Resources: core.ResourceRequirements{}, } + apis.SetDefaultResourceLimits(&p.Spec.Arbiter.Resources, kubedb.DefaultArbiter(false)) } - apis.SetDefaultResourceLimits(&p.Spec.Arbiter.Resources, kubedb.DefaultArbiter(false)) } func (p *Postgres) setDefaultPodSecurityContext(podTemplate *ofstv2.PodTemplateSpec, pgVersion *catalog.PostgresVersion) { diff --git a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_mssqlservers.yaml b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_mssqlservers.yaml index e29a08f8f..c61e5d671 100644 --- a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_mssqlservers.yaml +++ b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_mssqlservers.yaml @@ -80,112 +80,6 @@ spec: type: string type: object x-kubernetes-map-type: atomic - coordinator: - properties: - resources: - properties: - claims: - items: - properties: - name: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - type: object - securityContext: - properties: - allowPrivilegeEscalation: - type: boolean - appArmorProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - capabilities: - properties: - add: - items: - type: string - type: array - x-kubernetes-list-type: atomic - drop: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - privileged: - type: boolean - procMount: - type: string - readOnlyRootFilesystem: - type: boolean - runAsGroup: - format: int64 - type: integer - runAsNonRoot: - type: boolean - runAsUser: - format: int64 - type: integer - seLinuxOptions: - properties: - level: - type: string - role: - type: string - type: - type: string - user: - type: string - type: object - seccompProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - windowsOptions: - properties: - gmsaCredentialSpec: - type: string - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - runAsUserName: - type: string - type: object - type: object - type: object deletionPolicy: enum: - Halt @@ -1229,133 +1123,6 @@ spec: waitForInitialRestore: type: boolean type: object - internalAuth: - nullable: true - properties: - endpointCert: - properties: - certificates: - items: - properties: - alias: - type: string - dnsNames: - items: - type: string - type: array - duration: - type: string - emailAddresses: - items: - type: string - type: array - ipAddresses: - items: - type: string - type: array - issuerRef: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - x-kubernetes-map-type: atomic - privateKey: - properties: - encoding: - enum: - - PKCS1 - - PKCS8 - type: string - type: object - renewBefore: - type: string - secretName: - type: string - subject: - properties: - countries: - items: - type: string - type: array - localities: - items: - type: string - type: array - organizationalUnits: - items: - type: string - type: array - organizations: - items: - type: string - type: array - postalCodes: - items: - type: string - type: array - provinces: - items: - type: string - type: array - serialNumber: - type: string - streetAddresses: - items: - type: string - type: array - type: object - uris: - items: - type: string - type: array - required: - - alias - type: object - type: array - issuerRef: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - x-kubernetes-map-type: atomic - type: object - required: - - endpointCert - type: object - leaderElection: - properties: - electionTick: - default: 10 - format: int32 - type: integer - heartbeatTick: - default: 1 - format: int32 - type: integer - period: - default: 100ms - type: string - transferLeadershipInterval: - default: 1s - type: string - transferLeadershipTimeout: - default: 60s - type: string - type: object monitor: properties: agent: @@ -4891,8 +4658,6 @@ spec: - name type: object x-kubernetes-map-type: atomic - required: - - clientTLS type: object topology: properties: @@ -4902,6 +4667,26 @@ spec: items: type: string type: array + leaderElection: + properties: + electionTick: + default: 10 + format: int32 + type: integer + heartbeatTick: + default: 1 + format: int32 + type: integer + period: + default: 100ms + type: string + transferLeadershipInterval: + default: 1s + type: string + transferLeadershipTimeout: + default: 60s + type: string + type: object type: object mode: enum: diff --git a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_mysqls.yaml b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_mysqls.yaml index d6c74e1f0..54425a75d 100644 --- a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_mysqls.yaml +++ b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_mysqls.yaml @@ -4815,6 +4815,7 @@ spec: default: Single-Primary enum: - Single-Primary + - Multi-Primary type: string name: type: string @@ -4825,6 +4826,7 @@ spec: default: Single-Primary enum: - Single-Primary + - Multi-Primary type: string router: properties: @@ -12478,6 +12480,7 @@ spec: default: Single-Primary enum: - Single-Primary + - Multi-Primary type: string name: type: string @@ -12488,6 +12491,7 @@ spec: default: Single-Primary enum: - Single-Primary + - Multi-Primary type: string router: properties: diff --git a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_solrs.yaml b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_solrs.yaml index 0fe577141..38c0f4e1c 100644 --- a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_solrs.yaml +++ b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_solrs.yaml @@ -55,9 +55,16 @@ spec: x-kubernetes-map-type: atomic authSecret: properties: + activeFrom: + format: date-time + type: string + externallyManaged: + type: boolean name: default: "" type: string + rotateAfter: + type: string type: object x-kubernetes-map-type: atomic clientAuthSSL: diff --git a/vendor/kubedb.dev/apimachinery/crds/ops.kubedb.com_mssqlserveropsrequests.yaml b/vendor/kubedb.dev/apimachinery/crds/ops.kubedb.com_mssqlserveropsrequests.yaml index 00a0fa2f0..70a8d8bf2 100644 --- a/vendor/kubedb.dev/apimachinery/crds/ops.kubedb.com_mssqlserveropsrequests.yaml +++ b/vendor/kubedb.dev/apimachinery/crds/ops.kubedb.com_mssqlserveropsrequests.yaml @@ -178,6 +178,8 @@ spec: - alias type: object type: array + clientTLS: + type: boolean issuerRef: properties: apiGroup: diff --git a/vendor/kubedb.dev/apimachinery/crds/ops.kubedb.com_pgbounceropsrequests.yaml b/vendor/kubedb.dev/apimachinery/crds/ops.kubedb.com_pgbounceropsrequests.yaml index cbe5dca2c..55eabd91f 100644 --- a/vendor/kubedb.dev/apimachinery/crds/ops.kubedb.com_pgbounceropsrequests.yaml +++ b/vendor/kubedb.dev/apimachinery/crds/ops.kubedb.com_pgbounceropsrequests.yaml @@ -208,6 +208,7 @@ spec: - UpdateVersion - Reconfigure - RotateAuth + - Restart type: string updateVersion: properties: diff --git a/vendor/modules.txt b/vendor/modules.txt index ad10388ba..af52a1961 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -169,7 +169,7 @@ github.com/dapr/go-sdk/version # github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc ## explicit github.com/davecgh/go-spew/spew -# github.com/docker/cli v27.0.3+incompatible +# github.com/docker/cli v27.1.1+incompatible ## explicit github.com/docker/cli/cli/config github.com/docker/cli/cli/config/configfile @@ -802,12 +802,12 @@ github.com/yudai/golcs # github.com/zeebo/xxh3 v1.0.2 ## explicit; go 1.17 github.com/zeebo/xxh3 -# go.bytebuilders.dev/catalog v0.0.9 +# go.bytebuilders.dev/catalog v0.0.11-0.20241125004308-e689253557ef ## explicit; go 1.22.7 go.bytebuilders.dev/catalog/api/catalog/v1alpha1 go.bytebuilders.dev/catalog/api/gateway/v1alpha1 go.bytebuilders.dev/catalog/crds -# go.bytebuilders.dev/catalog-manager v0.1.0 +# go.bytebuilders.dev/catalog-manager v0.1.1 ## explicit; go 1.23.2 go.bytebuilders.dev/catalog-manager/pkg/gateway go.bytebuilders.dev/catalog-manager/pkg/portmanager @@ -1084,7 +1084,7 @@ golang.org/x/time/rate # gomodules.xyz/atomic-writer v0.0.2 ## explicit; go 1.16 gomodules.xyz/atomic-writer -# gomodules.xyz/bits v0.0.0-20241102235928-e74aa78b5d38 +# gomodules.xyz/bits v0.0.0-20241124114357-b668409c1b67 ## explicit; go 1.23.2 gomodules.xyz/bits # gomodules.xyz/clock v0.0.0-20200817085942-06523dba733f @@ -1966,7 +1966,7 @@ k8s.io/kms/apis/v1beta1 k8s.io/kms/apis/v2 k8s.io/kms/pkg/service k8s.io/kms/pkg/util -# k8s.io/kube-openapi v0.0.0-20240709000822-3c01b740850f +# k8s.io/kube-openapi v0.0.0-20240726031636-6f6746feab9c ## explicit; go 1.20 k8s.io/kube-openapi/pkg/builder k8s.io/kube-openapi/pkg/builder3 @@ -1992,7 +1992,7 @@ k8s.io/kube-openapi/pkg/validation/validate ## explicit; go 1.21 k8s.io/kube-state-metrics/v2/pkg/metric k8s.io/kube-state-metrics/v2/pkg/metric_generator -# k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0 +# k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 ## explicit; go 1.18 k8s.io/utils/buffer k8s.io/utils/clock @@ -2052,7 +2052,7 @@ kmodules.xyz/monitoring-agent-api/client kmodules.xyz/offshoot-api/api/v1 kmodules.xyz/offshoot-api/api/v2 kmodules.xyz/offshoot-api/util -# kmodules.xyz/resource-metadata v0.23.1-0.20241128043209-0b8d0f0a14dd +# kmodules.xyz/resource-metadata v0.23.1-0.20241210123000-0a8f4eed44a9 ## explicit; go 1.22.1 kmodules.xyz/resource-metadata/apis/core/install kmodules.xyz/resource-metadata/apis/core/v1alpha1 @@ -2102,7 +2102,7 @@ kmodules.xyz/resource-metrics/utils # kmodules.xyz/sets v0.29.0 ## explicit; go 1.21.5 kmodules.xyz/sets -# kubedb.dev/apimachinery v0.49.0-rc.0 +# kubedb.dev/apimachinery v0.49.0 ## explicit; go 1.22.1 kubedb.dev/apimachinery/apis kubedb.dev/apimachinery/apis/catalog @@ -2305,7 +2305,7 @@ sigs.k8s.io/structured-merge-diff/v4/value sigs.k8s.io/yaml sigs.k8s.io/yaml/goyaml.v2 sigs.k8s.io/yaml/goyaml.v3 -# voyagermesh.dev/gateway-api v0.0.2-0.20241104190244-f81d0ba1a554 +# voyagermesh.dev/gateway-api v0.0.2-0.20241124132233-ced3a99a7eae ## explicit; go 1.22.0 voyagermesh.dev/gateway-api/apis/gateway/v1alpha1 # voyagermesh.dev/installer v0.0.0-20241102060616-ff1e91bfcef8 diff --git a/vendor/voyagermesh.dev/gateway-api/apis/gateway/v1alpha1/kafkaroute_types.go b/vendor/voyagermesh.dev/gateway-api/apis/gateway/v1alpha1/kafkaroute_types.go index 1d0ead10c..aab629208 100644 --- a/vendor/voyagermesh.dev/gateway-api/apis/gateway/v1alpha1/kafkaroute_types.go +++ b/vendor/voyagermesh.dev/gateway-api/apis/gateway/v1alpha1/kafkaroute_types.go @@ -21,10 +21,18 @@ import ( gwv1 "sigs.k8s.io/gateway-api/apis/v1" ) +const ( + ResourceCodeKafkaRoute = "kfroute" + ResourceKindKafkaRoute = "KafkaRoute" + ResourceSingularKafkaRoute = "kafkaroute" + ResourcePluralKafkaRoute = "kafkaroutes" +) + // +kubebuilder:object:root=true // +kubebuilder:resource:categories=gateway-api // +kubebuilder:subresource:status // +kubebuilder:storageversion +// +kubebuilder:resource:path=kafkaroutes,singular=kafkaroute,shortName=kfroute,categories={route,appscode} // +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp` // KafkaRoute provides a way to route TCP requests. When combined with a Gateway diff --git a/vendor/voyagermesh.dev/gateway-api/apis/gateway/v1alpha1/mongodbroute_types.go b/vendor/voyagermesh.dev/gateway-api/apis/gateway/v1alpha1/mongodbroute_types.go index 57e33943f..6d9efa9ba 100644 --- a/vendor/voyagermesh.dev/gateway-api/apis/gateway/v1alpha1/mongodbroute_types.go +++ b/vendor/voyagermesh.dev/gateway-api/apis/gateway/v1alpha1/mongodbroute_types.go @@ -21,10 +21,18 @@ import ( gwv1 "sigs.k8s.io/gateway-api/apis/v1" ) +const ( + ResourceCodeMongoDBRoute = "mgroute" + ResourceKindMongoDBRoute = "MongoDBRoute" + ResourceSingularMongoDBRoute = "mongodbroute" + ResourcePluralMongoDBRoute = "mongodbroutes" +) + // +kubebuilder:object:root=true // +kubebuilder:resource:categories=gateway-api // +kubebuilder:subresource:status // +kubebuilder:storageversion +// +kubebuilder:resource:path=mongodbroutes,singular=mongodbroute,shortName=mgroute,categories={route,appscode} // +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp` // MongoDBRoute provides a way to route TCP requests. When combined with a Gateway @@ -53,27 +61,27 @@ type MongoDBRouteSpec struct { // 2. A hostname may be prefixed with a wildcard label (`*.`). The wildcard // label must appear by itself as the first label. // - // If a hostname is specified by both the Listener and KafkaRoute, there - // must be at least one intersecting hostname for the KafkaRoute to be + // If a hostname is specified by both the Listener and MongoDBRoute, there + // must be at least one intersecting hostname for the MongoDBRoute to be // attached to the Listener. For example: // - // * A Listener with `test.example.com` as the hostname matches KafkaRoutes + // * A Listener with `test.example.com` as the hostname matches MongoDBRoutes // that have either not specified any hostnames, or have specified at // least one of `test.example.com` or `*.example.com`. - // * A Listener with `*.example.com` as the hostname matches KafkaRoutes + // * A Listener with `*.example.com` as the hostname matches MongoDBRoutes // that have either not specified any hostnames or have specified at least // one hostname that matches the Listener hostname. For example, // `test.example.com` and `*.example.com` would both match. On the other // hand, `example.com` and `test.example.net` would not match. // - // If both the Listener and KafkaRoute have specified hostnames, any - // KafkaRoute hostnames that do not match the Listener hostname MUST be + // If both the Listener and MongoDBRoute have specified hostnames, any + // MongoDBRoute hostnames that do not match the Listener hostname MUST be // ignored. For example, if a Listener specified `*.example.com`, and the - // KafkaRoute specified `test.example.com` and `test.example.net`, + // MongoDBRoute specified `test.example.com` and `test.example.net`, // `test.example.net` must not be considered for a match. // - // If both the Listener and KafkaRoute have specified hostnames, and none - // match with the criteria above, then the KafkaRoute is not accepted. The + // If both the Listener and MongoDBRoute have specified hostnames, and none + // match with the criteria above, then the MongoDBRoute is not accepted. The // implementation must raise an 'Accepted' Condition with a status of // `False` in the corresponding RouteParentStatus. // diff --git a/vendor/voyagermesh.dev/gateway-api/apis/gateway/v1alpha1/mysqlroute_types.go b/vendor/voyagermesh.dev/gateway-api/apis/gateway/v1alpha1/mysqlroute_types.go index 6868fad8d..164b7e054 100644 --- a/vendor/voyagermesh.dev/gateway-api/apis/gateway/v1alpha1/mysqlroute_types.go +++ b/vendor/voyagermesh.dev/gateway-api/apis/gateway/v1alpha1/mysqlroute_types.go @@ -21,10 +21,18 @@ import ( gwv1 "sigs.k8s.io/gateway-api/apis/v1" ) +const ( + ResourceCodeMySQLRoute = "myroute" + ResourceKindMySQLRoute = "MySQLRoute" + ResourceSingularMySQLRoute = "mysqlroute" + ResourcePluralMySQLRoute = "mysqlroutes" +) + // +kubebuilder:object:root=true // +kubebuilder:resource:categories=gateway-api // +kubebuilder:subresource:status // +kubebuilder:storageversion +// +kubebuilder:resource:path=mysqlroutes,singular=mysqlroute,shortName=myroute,categories={route,appscode} // +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp` // MySQLRoute provides a way to route TCP requests. When combined with a Gateway @@ -53,27 +61,27 @@ type MySQLRouteSpec struct { // 2. A hostname may be prefixed with a wildcard label (`*.`). The wildcard // label must appear by itself as the first label. // - // If a hostname is specified by both the Listener and KafkaRoute, there - // must be at least one intersecting hostname for the KafkaRoute to be + // If a hostname is specified by both the Listener and MySQLRoute, there + // must be at least one intersecting hostname for the MySQLRoute to be // attached to the Listener. For example: // - // * A Listener with `test.example.com` as the hostname matches KafkaRoutes + // * A Listener with `test.example.com` as the hostname matches MySQLRoutes // that have either not specified any hostnames, or have specified at // least one of `test.example.com` or `*.example.com`. - // * A Listener with `*.example.com` as the hostname matches KafkaRoutes + // * A Listener with `*.example.com` as the hostname matches MySQLRoutes // that have either not specified any hostnames or have specified at least // one hostname that matches the Listener hostname. For example, // `test.example.com` and `*.example.com` would both match. On the other // hand, `example.com` and `test.example.net` would not match. // - // If both the Listener and KafkaRoute have specified hostnames, any - // KafkaRoute hostnames that do not match the Listener hostname MUST be + // If both the Listener and MySQLRoute have specified hostnames, any + // MySQLRoute hostnames that do not match the Listener hostname MUST be // ignored. For example, if a Listener specified `*.example.com`, and the - // KafkaRoute specified `test.example.com` and `test.example.net`, + // MySQLRoute specified `test.example.com` and `test.example.net`, // `test.example.net` must not be considered for a match. // - // If both the Listener and KafkaRoute have specified hostnames, and none - // match with the criteria above, then the KafkaRoute is not accepted. The + // If both the Listener and MySQLRoute have specified hostnames, and none + // match with the criteria above, then the MySQLRoute is not accepted. The // implementation must raise an 'Accepted' Condition with a status of // `False` in the corresponding RouteParentStatus. // diff --git a/vendor/voyagermesh.dev/gateway-api/apis/gateway/v1alpha1/postgresroute_types.go b/vendor/voyagermesh.dev/gateway-api/apis/gateway/v1alpha1/postgresroute_types.go index 5352069cf..acd254440 100644 --- a/vendor/voyagermesh.dev/gateway-api/apis/gateway/v1alpha1/postgresroute_types.go +++ b/vendor/voyagermesh.dev/gateway-api/apis/gateway/v1alpha1/postgresroute_types.go @@ -21,10 +21,18 @@ import ( gwv1 "sigs.k8s.io/gateway-api/apis/v1" ) +const ( + ResourceCodePostgresRoute = "pgroute" + ResourceKindPostgresRoute = "PostgresRoute" + ResourceSingularPostgresRoute = "postgresroute" + ResourcePluralPostgresRoute = "postgresroutes" +) + // +kubebuilder:object:root=true // +kubebuilder:resource:categories=gateway-api // +kubebuilder:subresource:status // +kubebuilder:storageversion +// +kubebuilder:resource:path=postgresroutes,singular=postgresroute,shortName=pgroute,categories={route,appscode} // +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp` // PostgresRoute provides a way to route TCP requests. When combined with a Gateway @@ -53,27 +61,27 @@ type PostgresRouteSpec struct { // 2. A hostname may be prefixed with a wildcard label (`*.`). The wildcard // label must appear by itself as the first label. // - // If a hostname is specified by both the Listener and KafkaRoute, there - // must be at least one intersecting hostname for the KafkaRoute to be + // If a hostname is specified by both the Listener and PostgresRoute, there + // must be at least one intersecting hostname for the PostgresRoute to be // attached to the Listener. For example: // - // * A Listener with `test.example.com` as the hostname matches KafkaRoutes + // * A Listener with `test.example.com` as the hostname matches PostgresRoutes // that have either not specified any hostnames, or have specified at // least one of `test.example.com` or `*.example.com`. - // * A Listener with `*.example.com` as the hostname matches KafkaRoutes + // * A Listener with `*.example.com` as the hostname matches PostgresRoutes // that have either not specified any hostnames or have specified at least // one hostname that matches the Listener hostname. For example, // `test.example.com` and `*.example.com` would both match. On the other // hand, `example.com` and `test.example.net` would not match. // - // If both the Listener and KafkaRoute have specified hostnames, any - // KafkaRoute hostnames that do not match the Listener hostname MUST be + // If both the Listener and PostgresRoute have specified hostnames, any + // PostgresRoute hostnames that do not match the Listener hostname MUST be // ignored. For example, if a Listener specified `*.example.com`, and the - // KafkaRoute specified `test.example.com` and `test.example.net`, + // PostgresRoute specified `test.example.com` and `test.example.net`, // `test.example.net` must not be considered for a match. // - // If both the Listener and KafkaRoute have specified hostnames, and none - // match with the criteria above, then the KafkaRoute is not accepted. The + // If both the Listener and PostgresRoute have specified hostnames, and none + // match with the criteria above, then the PostgresRoute is not accepted. The // implementation must raise an 'Accepted' Condition with a status of // `False` in the corresponding RouteParentStatus. // diff --git a/vendor/voyagermesh.dev/gateway-api/apis/gateway/v1alpha1/redisroute_types.go b/vendor/voyagermesh.dev/gateway-api/apis/gateway/v1alpha1/redisroute_types.go index 2d1360deb..8dc131264 100644 --- a/vendor/voyagermesh.dev/gateway-api/apis/gateway/v1alpha1/redisroute_types.go +++ b/vendor/voyagermesh.dev/gateway-api/apis/gateway/v1alpha1/redisroute_types.go @@ -22,10 +22,18 @@ import ( gwv1 "sigs.k8s.io/gateway-api/apis/v1" ) +const ( + ResourceCodeRedisRoute = "rdroute" + ResourceKindRedisRoute = "RedisRoute" + ResourceSingularRedisRoute = "redisroute" + ResourcePluralRedisRoute = "redisroutes" +) + // +kubebuilder:object:root=true // +kubebuilder:resource:categories=gateway-api // +kubebuilder:subresource:status // +kubebuilder:storageversion +// +kubebuilder:resource:path=redisroutes,singular=redisroute,shortName=rdroute,categories={route,appscode} // +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp` // RedisRoute provides a way to route TCP requests. When combined with a Gateway @@ -54,27 +62,27 @@ type RedisRouteSpec struct { // 2. A hostname may be prefixed with a wildcard label (`*.`). The wildcard // label must appear by itself as the first label. // - // If a hostname is specified by both the Listener and KafkaRoute, there - // must be at least one intersecting hostname for the KafkaRoute to be + // If a hostname is specified by both the Listener and RedisRoute, there + // must be at least one intersecting hostname for the RedisRoute to be // attached to the Listener. For example: // - // * A Listener with `test.example.com` as the hostname matches KafkaRoutes + // * A Listener with `test.example.com` as the hostname matches RedisRoutes // that have either not specified any hostnames, or have specified at // least one of `test.example.com` or `*.example.com`. - // * A Listener with `*.example.com` as the hostname matches KafkaRoutes + // * A Listener with `*.example.com` as the hostname matches RedisRoutes // that have either not specified any hostnames or have specified at least // one hostname that matches the Listener hostname. For example, // `test.example.com` and `*.example.com` would both match. On the other // hand, `example.com` and `test.example.net` would not match. // - // If both the Listener and KafkaRoute have specified hostnames, any - // KafkaRoute hostnames that do not match the Listener hostname MUST be + // If both the Listener and RedisRoute have specified hostnames, any + // RedisRoute hostnames that do not match the Listener hostname MUST be // ignored. For example, if a Listener specified `*.example.com`, and the - // KafkaRoute specified `test.example.com` and `test.example.net`, + // RedisRoute specified `test.example.com` and `test.example.net`, // `test.example.net` must not be considered for a match. // - // If both the Listener and KafkaRoute have specified hostnames, and none - // match with the criteria above, then the KafkaRoute is not accepted. The + // If both the Listener and RedisRoute have specified hostnames, and none + // match with the criteria above, then the RedisRoute is not accepted. The // implementation must raise an 'Accepted' Condition with a status of // `False` in the corresponding RouteParentStatus. //