diff --git a/go.mod b/go.mod index b689a327d..c3ed48127 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( gomodules.xyz/pointer v0.1.0 gomodules.xyz/runtime v0.2.0 gomodules.xyz/wait v0.2.0 - gomodules.xyz/x v0.0.13 + gomodules.xyz/x v0.0.14 k8s.io/api v0.21.1 k8s.io/apimachinery v0.21.1 k8s.io/cli-runtime v0.21.1 @@ -20,11 +20,11 @@ require ( k8s.io/component-base v0.21.1 k8s.io/klog/v2 v2.9.0 k8s.io/kubectl v0.21.1 - kmodules.xyz/client-go v0.0.0-20220317213815-2a6d5a5784f2 - kmodules.xyz/custom-resources v0.0.0-20220317220154-7beb809b1f5e + kmodules.xyz/client-go v0.0.0-20220427165208-36281a681909 + kmodules.xyz/custom-resources v0.0.0-20220422215041-237eae1d7ddd kmodules.xyz/monitoring-agent-api v0.0.0-20220319222118-0290ed5b75e1 - kubedb.dev/apimachinery v0.26.0 - stash.appscode.dev/apimachinery v0.18.0 + kubedb.dev/apimachinery v0.26.1-0.20220508053725-74c4fc13ef02 + stash.appscode.dev/apimachinery v0.20.0 ) require github.com/josharian/intern v1.0.0 // indirect @@ -113,7 +113,7 @@ require ( gomodules.xyz/flags v0.1.3 // indirect gomodules.xyz/homedir v0.1.0 // indirect gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect - gomodules.xyz/mergo v0.3.13-0.20210702100041-9d62ff8ece4d // indirect + gomodules.xyz/mergo v0.3.13-0.20220214162359-48efe39fd402 // indirect gomodules.xyz/password-generator v0.2.7 // indirect gomodules.xyz/sets v0.2.1 // indirect google.golang.org/appengine v1.6.7 // indirect @@ -126,8 +126,8 @@ require ( k8s.io/kubernetes v1.21.1 // indirect k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b // indirect kmodules.xyz/objectstore-api v0.0.0-20220317220441-f1d593d0a778 // indirect - kmodules.xyz/offshoot-api v0.0.0-20220323112402-3b0fd2ea77d6 // indirect - kmodules.xyz/prober v0.0.0-20210618020259-5836fb959027 // indirect + kmodules.xyz/offshoot-api v0.0.0-20220420055916-fefb02c26514 // indirect + kmodules.xyz/prober v0.0.0-20220317043828-5ae0114adcad // indirect sigs.k8s.io/controller-runtime v0.9.0 // indirect sigs.k8s.io/kustomize/api v0.8.8 // indirect sigs.k8s.io/kustomize/kyaml v0.10.17 // indirect diff --git a/go.sum b/go.sum index 076f65f41..8d35931bb 100644 --- a/go.sum +++ b/go.sum @@ -182,6 +182,7 @@ github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1/go.mod h1:cyGadeNE github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/dustin/go-humanize v1.0.1-0.20220316001817-d5090ed65664/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= @@ -1084,8 +1085,9 @@ gomodules.xyz/jsonpath v0.0.1/go.mod h1:du28vmLHrgEV48JqK/7rn92YHsVDoQuqrowb2w6Y gomodules.xyz/jsonpath v0.0.2/go.mod h1:du28vmLHrgEV48JqK/7rn92YHsVDoQuqrowb2w6YZmE= gomodules.xyz/logs v0.0.6 h1:8+9Wkud5yBPtIvkVszubyTeFxNII30lWODom0+GZD8U= gomodules.xyz/logs v0.0.6/go.mod h1:Q+fFtZFLEB5q86KmDehXCGuMP72Rv+Rwz0KuVxK+Gi4= -gomodules.xyz/mergo v0.3.13-0.20210702100041-9d62ff8ece4d h1:i6r7bk2jF965W3xmORgz+KYhlH608oRvrAPpcNHorlo= gomodules.xyz/mergo v0.3.13-0.20210702100041-9d62ff8ece4d/go.mod h1:i2WNHvGpzLKI+/qWRhscddeashtzrtxCAucS2H7hrtM= +gomodules.xyz/mergo v0.3.13-0.20220214162359-48efe39fd402 h1:l67pCtMNx51TcCkBhGV1qSVnMrJ/eZPflxm02G6nhZQ= +gomodules.xyz/mergo v0.3.13-0.20220214162359-48efe39fd402/go.mod h1:i2WNHvGpzLKI+/qWRhscddeashtzrtxCAucS2H7hrtM= gomodules.xyz/password-generator v0.2.4/go.mod h1:TvwYYTx9+P1pPwKQKfZgB/wr2Id9MqAQ3B5auY7reNg= gomodules.xyz/password-generator v0.2.6/go.mod h1:TvwYYTx9+P1pPwKQKfZgB/wr2Id9MqAQ3B5auY7reNg= gomodules.xyz/password-generator v0.2.7 h1:xUCiIKji8JYOkyTsvi/2nArbVevsHMOnoJVMaShbzqI= @@ -1111,8 +1113,9 @@ gomodules.xyz/x v0.0.5/go.mod h1:EGy7cB7ifSuOcbNFc0U1zUPTf5yY8RtXVJlAlhGS9OE= gomodules.xyz/x v0.0.7/go.mod h1:CMXe28rpApV30pPw9cxdyEmvoC+aa5LiAqzks9dlxag= gomodules.xyz/x v0.0.8/go.mod h1:YnL5CAnLrEtAV/NQGn5sKJe6u08/vDlRyJddXIuD9mc= gomodules.xyz/x v0.0.10/go.mod h1:AgHPywNbRKtogAdk08vCqsfwjtXtXX1/FUPyG7OWdOs= -gomodules.xyz/x v0.0.13 h1:k4ABA8dVGUTxqiNYOHPAs5sZbmgLxYcL9WuBT/kDOiM= gomodules.xyz/x v0.0.13/go.mod h1:AgHPywNbRKtogAdk08vCqsfwjtXtXX1/FUPyG7OWdOs= +gomodules.xyz/x v0.0.14 h1:eD1+3YjTEt46dhErbuPEr1Vw+7xbFBNx6T26E7nCRwM= +gomodules.xyz/x v0.0.14/go.mod h1:AgHPywNbRKtogAdk08vCqsfwjtXtXX1/FUPyG7OWdOs= gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0= gonum.org/v1/gonum v0.6.2/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= @@ -1249,14 +1252,17 @@ kmodules.xyz/client-go v0.0.0-20211013093146-1fbfd52e78c9/go.mod h1:0gkPeALtYjB2 kmodules.xyz/client-go v0.0.0-20220104114408-2a3a05dbe89f/go.mod h1:xxl1ve1Obe4xaW+XjXsNHyLTni4QPIvHn9TfnYEoQRo= kmodules.xyz/client-go v0.0.0-20220203031013-1de48437aaf3/go.mod h1:aOwnhdxO0uh54ds1wQYRlKVtYlzLyakaesmMQeupVek= kmodules.xyz/client-go v0.0.0-20220215012708-9963581d69a7/go.mod h1:sOq5P3AkZdv6D/skvUPwEG15NDYy5olwBllH/JXfhGI= -kmodules.xyz/client-go v0.0.0-20220317213815-2a6d5a5784f2 h1:s6MK8BVV6GHJhS6V4+5IJeV6W1GHcC4fqILencMdRkw= kmodules.xyz/client-go v0.0.0-20220317213815-2a6d5a5784f2/go.mod h1:7pExIHGzUdu8ZGveYvAaXEhS4GdczoOy8z+hq6x6K9A= +kmodules.xyz/client-go v0.0.0-20220427165208-36281a681909 h1:c/7SJgQbmEzPdziKnx5uC7EtkTmbbyLBz7gQGfVGvSg= +kmodules.xyz/client-go v0.0.0-20220427165208-36281a681909/go.mod h1:7pExIHGzUdu8ZGveYvAaXEhS4GdczoOy8z+hq6x6K9A= kmodules.xyz/constants v0.0.0-20210218100002-2c304bfda278/go.mod h1:DbiFk1bJ1KEO94t1SlAn7tzc+Zz95rSXgyUKa2nzPmY= kmodules.xyz/crd-schema-fuzz v0.0.0-20210618002152-fae23aef5fb4/go.mod h1:IIkUctlfoptoci0BOrsUf8ya+MOG5uaeh1PE4uzaIbA= +kmodules.xyz/crd-schema-fuzz v0.0.0-20211025154117-6edb24ef11bc/go.mod h1:yLOBJKasPhnCodKSZGFZ6OGFFrp0tq3ALS9rDnYFjkg= kmodules.xyz/custom-resources v0.0.0-20220208103158-61b298634e43/go.mod h1:/XjDeILFV2wBota5kHo21DMvOt08nSAk1vm6buCuwt4= kmodules.xyz/custom-resources v0.0.0-20220314103517-150ada19b198/go.mod h1:cDD2gsimPPj+Uu/6pzzw/wXjxLZyA0B/eM+UA3wWE9A= -kmodules.xyz/custom-resources v0.0.0-20220317220154-7beb809b1f5e h1:JpfwsPxcNXSDfyErTikfQOwr/RmQsHLm1/3NfUElsys= kmodules.xyz/custom-resources v0.0.0-20220317220154-7beb809b1f5e/go.mod h1:OCLmlMhRowPtBPP1bu4xreNLj8/TYu/4lY477+eAzUM= +kmodules.xyz/custom-resources v0.0.0-20220422215041-237eae1d7ddd h1:Y5w0ZxHMSPUnzjAlVKXS6+ED/wXlxXyWVYckarkiBBA= +kmodules.xyz/custom-resources v0.0.0-20220422215041-237eae1d7ddd/go.mod h1:OCLmlMhRowPtBPP1bu4xreNLj8/TYu/4lY477+eAzUM= kmodules.xyz/monitoring-agent-api v0.0.0-20220319222118-0290ed5b75e1 h1:V+UN7+86GIrRszwCwWJAPSHq9mfgZR5K1xX7hYRmQRg= kmodules.xyz/monitoring-agent-api v0.0.0-20220319222118-0290ed5b75e1/go.mod h1:UewkaANM5lHuURg/WPjuBmsdbfYN2yG0y0L2fxmADw8= kmodules.xyz/objectstore-api v0.0.0-20211207131029-3271069de43e/go.mod h1:IICnDdPFOEeGXdaPVHOGYfdwD1cyh/p1I/TWMkyNTIE= @@ -1264,11 +1270,13 @@ kmodules.xyz/objectstore-api v0.0.0-20220317220441-f1d593d0a778 h1:1biCLf6zjBzg9 kmodules.xyz/objectstore-api v0.0.0-20220317220441-f1d593d0a778/go.mod h1:rJ3QmHvS0CCJAhhdbXh+O2nlEY5gEmgYdpo3vA4nAm4= kmodules.xyz/offshoot-api v0.0.0-20210829122105-6f4d481b0c61/go.mod h1:3LECbAL3FgbyK80NP3V3Pmiuo/a3hFWg/PR6SPFhTns= kmodules.xyz/offshoot-api v0.0.0-20211207130839-cc7187e020cf/go.mod h1:sJYyxf84ZvbVz4SivxMgSelGRYn19wOLUtObiEncCxk= -kmodules.xyz/offshoot-api v0.0.0-20220323112402-3b0fd2ea77d6 h1:cFZhSDx8Po4orPTkoTY89O70kMrJXdzntqrzzEv6aDo= -kmodules.xyz/offshoot-api v0.0.0-20220323112402-3b0fd2ea77d6/go.mod h1:9i9RrFY0BtU9jSm70nxhWlLdl9TSZ8pxTnfyPUicq90= +kmodules.xyz/offshoot-api v0.0.0-20220418173619-64f14f87ed5b/go.mod h1:9i9RrFY0BtU9jSm70nxhWlLdl9TSZ8pxTnfyPUicq90= +kmodules.xyz/offshoot-api v0.0.0-20220420055916-fefb02c26514 h1:jE5GLkMfu/+ZkzVanE7zZ2z3b2w4Bg5VI87JnIyNGPk= +kmodules.xyz/offshoot-api v0.0.0-20220420055916-fefb02c26514/go.mod h1:9i9RrFY0BtU9jSm70nxhWlLdl9TSZ8pxTnfyPUicq90= kmodules.xyz/openshift v0.0.0-20210618001443-f2507caa512f/go.mod h1:8E5ckbd1KMNmR4hc7ScvmQnGfx1ULUUp+UTmoDdxRkc= -kmodules.xyz/prober v0.0.0-20210618020259-5836fb959027 h1:rtSPsruEkoBOLcbJkxMQjnPafpv8/vJnfWlTIj9yRBg= kmodules.xyz/prober v0.0.0-20210618020259-5836fb959027/go.mod h1:H4NcvS1RQxeXtQONALbU6r9OT3Xa7cMhfamX/k9t9wo= +kmodules.xyz/prober v0.0.0-20220317043828-5ae0114adcad h1:bMfimFOEgmaKCN/gnSxLIRvQbWg4dqBgcWrMnHWQgyc= +kmodules.xyz/prober v0.0.0-20220317043828-5ae0114adcad/go.mod h1:QC3O1p+sU/8NnpLKI0VCAO3IQwPlwuimf9l6+Qp3Vt8= kmodules.xyz/resource-metadata v0.9.4/go.mod h1:GsaythrHLBLKhEy8/l+ioJC0mFmJmZR0FRXpkyxztt8= kmodules.xyz/resource-metadata v0.10.12/go.mod h1:+BIGFETn0Ppo6Dlntl+43Dv43sWFAQrzPdXbMzUZ3JA= kmodules.xyz/resource-metrics v0.0.6/go.mod h1:M7rWuo2qh3BpHhogiEVPnvGY9Xx4Pfygqn1Rex8YbgM= @@ -1276,8 +1284,8 @@ kmodules.xyz/resource-metrics v0.0.8/go.mod h1:M7rWuo2qh3BpHhogiEVPnvGY9Xx4Pfygq kmodules.xyz/schema-checker v0.2.0/go.mod h1:J1QUIFsqW0h/WNrIGzzy3UopTzg+RmMJXxvAZfmYDb4= kmodules.xyz/schema-checker v0.2.1/go.mod h1:1R2s4FH23Rz73DnfT8paWGNeMQpT7ia3KoyF8X4HCGU= kmodules.xyz/webhook-runtime v0.0.0-20220317222714-0ddfc9e4c221/go.mod h1:Q+4LHbCHVlkKxpEgaDa/EyZb5p/Bpj767zInBwyyitc= -kubedb.dev/apimachinery v0.26.0 h1:kqvPZdM1uBglc9eu3ySCK0c9ALi98MarOYSe4hz4X4c= -kubedb.dev/apimachinery v0.26.0/go.mod h1:LAfg7PrC3y90bK8t0NqQ6aYMe/jadl9ZrV+CEPu0TrY= +kubedb.dev/apimachinery v0.26.1-0.20220508053725-74c4fc13ef02 h1:PnqoNtWm6bBb8AH8vvR3fMR1loR+NTLdFElPKLYqN9A= +kubedb.dev/apimachinery v0.26.1-0.20220508053725-74c4fc13ef02/go.mod h1:atLQjkN5sVQc7WJJCyxTt0AD8ZODyZYUxudYAQIxL2Y= modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw= modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk= modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k= @@ -1317,5 +1325,6 @@ sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= software.sslmate.com/src/go-pkcs12 v0.0.0-20180114231543-2291e8f0f237/go.mod h1:/xvNRWUqm0+/ZMiF4EX00vrSCMsE4/NHb+Pt3freEeQ= software.sslmate.com/src/go-pkcs12 v0.0.0-20200830195227-52f69702a001/go.mod h1:/xvNRWUqm0+/ZMiF4EX00vrSCMsE4/NHb+Pt3freEeQ= sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= -stash.appscode.dev/apimachinery v0.18.0 h1:Mo5m3ffLKePJMPVWufGlFXas3rAwu96R9BeswSNkTrI= stash.appscode.dev/apimachinery v0.18.0/go.mod h1:MDzqJ66A2QZKAHRksfHT5crOD29a0S5Hfuy/D5hHAjw= +stash.appscode.dev/apimachinery v0.20.0 h1:JxBT94F/bfV6hkc8PxYoNOFiNeXa8YRLBp1hAX2NDz0= +stash.appscode.dev/apimachinery v0.20.0/go.mod h1:HyYlJ56VT8QgUM7NPCMrRRr/9e+eltUHGtd7GBXUCJo= diff --git a/vendor/gomodules.xyz/x/analytics/analytics.go b/vendor/gomodules.xyz/x/analytics/analytics.go index 76295dae3..c1faf24dc 100644 --- a/vendor/gomodules.xyz/x/analytics/analytics.go +++ b/vendor/gomodules.xyz/x/analytics/analytics.go @@ -15,8 +15,8 @@ func ClientID() string { id, err := ioutil.ReadFile(filename) if os.IsNotExist(err) { id := uuid.New().String() - if e2 := os.MkdirAll(dir, 0755); e2 == nil { - ioutil.WriteFile(filename, []byte(id), 0644) + if e2 := os.MkdirAll(dir, 0o755); e2 == nil { + ioutil.WriteFile(filename, []byte(id), 0o644) } return id } diff --git a/vendor/kmodules.xyz/client-go/api/v1/timeofday.go b/vendor/kmodules.xyz/client-go/api/v1/timeofday.go index b071abee7..88ea1a8ba 100644 --- a/vendor/kmodules.xyz/client-go/api/v1/timeofday.go +++ b/vendor/kmodules.xyz/client-go/api/v1/timeofday.go @@ -43,8 +43,16 @@ func (t *TimeOfDay) DeepCopyInto(out *TimeOfDay) { // NewTime returns a wrapped instance of the provided time func NewTime(t time.Time) TimeOfDay { - utc := t.UTC() - return TimeOfDay{time.Date(0, 0, 0, utc.Hour(), utc.Minute(), utc.Second(), 0, time.UTC)} + return TimeOfDay{time.Date(0, 0, 0, t.Hour(), t.Minute(), t.Second(), 0, time.UTC)} +} + +// NewTimeInLocation returns a wrapped instance of the provided time according to location +func NewTimeInLocation(t time.Time, loc *time.Location) TimeOfDay { + if loc == nil { + loc = time.UTC + } + t = t.In(loc) + return TimeOfDay{time.Date(0, 0, 0, t.Hour(), t.Minute(), t.Second(), 0, loc)} } // Date returns the TimeOfDay corresponding to the supplied parameters diff --git a/vendor/kmodules.xyz/client-go/core/v1/kubernetes.go b/vendor/kmodules.xyz/client-go/core/v1/kubernetes.go index 6d780305e..e2ab73f60 100644 --- a/vendor/kmodules.xyz/client-go/core/v1/kubernetes.go +++ b/vendor/kmodules.xyz/client-go/core/v1/kubernetes.go @@ -71,6 +71,10 @@ func EnsureContainerDeleted(containers []core.Container, name string) []core.Con func UpsertContainer(containers []core.Container, upsert core.Container) []core.Container { for i, container := range containers { if container.Name == upsert.Name { + // can't be updated. So, keep existing values. usually not set in upsert. + upsert.TerminationMessagePath = container.TerminationMessagePath + upsert.TerminationMessagePolicy = container.TerminationMessagePolicy + err := mergo.Merge(&container, upsert, mergo.WithOverride) if err != nil { panic(err) diff --git a/vendor/kmodules.xyz/client-go/meta/incluster.go b/vendor/kmodules.xyz/client-go/meta/incluster.go index 3bdfc4ffc..7bb753555 100644 --- a/vendor/kmodules.xyz/client-go/meta/incluster.go +++ b/vendor/kmodules.xyz/client-go/meta/incluster.go @@ -31,12 +31,16 @@ import ( "k8s.io/client-go/rest" ) -func Namespace() string { - if ns := os.Getenv("KUBE_NAMESPACE"); ns != "" { - return ns +func PodName() string { + if name := os.Getenv("POD_NAME"); name != "" { + return name } + s, _ := os.Hostname() + return s +} - if ns := os.Getenv("MY_POD_NAMESPACE"); ns != "" { +func PodNamespace() string { + if ns := os.Getenv("POD_NAMESPACE"); ns != "" { return ns } @@ -48,6 +52,14 @@ func Namespace() string { return core.NamespaceDefault } +// Deprecated: use PodNamespace +func Namespace() string { + if ns := os.Getenv("KUBE_NAMESPACE"); ns != "" { + return ns + } + return PodNamespace() +} + // PossiblyInCluster returns true if loading an inside-kubernetes-cluster is possible. // ref: https://github.com/kubernetes/kubernetes/blob/v1.18.3/staging/src/k8s.io/client-go/tools/clientcmd/client_config.go#L537 func PossiblyInCluster() bool { diff --git a/vendor/kmodules.xyz/custom-resources/apis/auditor/v1alpha1/siteinfo_types.go b/vendor/kmodules.xyz/custom-resources/apis/auditor/v1alpha1/siteinfo_types.go index f8612fc61..d81ea726b 100644 --- a/vendor/kmodules.xyz/custom-resources/apis/auditor/v1alpha1/siteinfo_types.go +++ b/vendor/kmodules.xyz/custom-resources/apis/auditor/v1alpha1/siteinfo_types.go @@ -108,6 +108,6 @@ type NodeStats struct { // SiteInfoList is a list of SiteInfo type SiteInfoList struct { metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - Items []SiteInfo `json:"items,omitempty" protobuf:"bytes,2,rep,name=items"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []SiteInfo `json:"items,omitempty"` } diff --git a/vendor/kmodules.xyz/custom-resources/apis/metrics/v1alpha1/generated.pb.go b/vendor/kmodules.xyz/custom-resources/apis/metrics/v1alpha1/generated.pb.go index 12160a2f1..36b1c56bf 100644 --- a/vendor/kmodules.xyz/custom-resources/apis/metrics/v1alpha1/generated.pb.go +++ b/vendor/kmodules.xyz/custom-resources/apis/metrics/v1alpha1/generated.pb.go @@ -369,65 +369,67 @@ func init() { } var fileDescriptor_ef11ad1bbe6c7f42 = []byte{ - // 926 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x55, 0xcd, 0x6e, 0x23, 0x45, - 0x10, 0xf6, 0xc4, 0x3f, 0xb1, 0xcb, 0x84, 0x9f, 0x0e, 0x48, 0x43, 0x10, 0x4e, 0x64, 0x2e, 0x7b, - 0x20, 0x3d, 0x24, 0x20, 0x84, 0x00, 0xa1, 0xc5, 0x2b, 0x56, 0x44, 0x49, 0x20, 0xea, 0x5d, 0x59, - 0x08, 0x21, 0x96, 0xf6, 0xb8, 0x3d, 0x1e, 0xec, 0xf9, 0xd1, 0x74, 0x3b, 0xac, 0x11, 0x87, 0x7d, - 0x04, 0xde, 0x80, 0xf7, 0xe0, 0x09, 0x72, 0xdc, 0xe3, 0x9e, 0x22, 0x62, 0x2e, 0x70, 0x87, 0x0b, - 0x27, 0xd4, 0x35, 0x3d, 0x3f, 0x89, 0x37, 0x02, 0x39, 0x88, 0xbd, 0x4d, 0x57, 0x7d, 0xf5, 0x7d, - 0x55, 0xd3, 0x55, 0xd5, 0x70, 0x67, 0x12, 0x44, 0xc3, 0xd9, 0x54, 0x48, 0xfa, 0x70, 0xfe, 0xbd, - 0xe3, 0xce, 0xa4, 0x8a, 0x82, 0xdd, 0x44, 0xc8, 0x68, 0x96, 0xb8, 0x42, 0x3a, 0x3c, 0xf6, 0xa5, - 0x13, 0x08, 0x95, 0xf8, 0xae, 0x74, 0x4e, 0xf7, 0xf8, 0x34, 0x1e, 0xf3, 0x3d, 0xc7, 0x13, 0xa1, - 0x48, 0xb8, 0x12, 0x43, 0x1a, 0x27, 0x91, 0x8a, 0xc8, 0xdb, 0x65, 0x12, 0x9a, 0x92, 0x3c, 0xc8, - 0x49, 0xa8, 0x26, 0xa1, 0x86, 0x84, 0x66, 0x24, 0x5b, 0xbb, 0x9e, 0xaf, 0xc6, 0xb3, 0x01, 0x75, - 0xa3, 0xc0, 0xf1, 0x22, 0x2f, 0x72, 0x90, 0x6b, 0x30, 0x1b, 0xe1, 0x09, 0x0f, 0xf8, 0x95, 0x6a, - 0x6c, 0xbd, 0x33, 0x79, 0x4f, 0x52, 0x3f, 0xd2, 0x19, 0x05, 0xdc, 0x1d, 0xfb, 0xa1, 0x48, 0xe6, - 0x4e, 0x3c, 0xf1, 0xf2, 0x14, 0xb9, 0x73, 0xba, 0x94, 0xd9, 0x96, 0x73, 0x5d, 0x54, 0x32, 0x0b, - 0x95, 0x1f, 0x88, 0xa5, 0x80, 0x77, 0xff, 0x29, 0x40, 0xba, 0x63, 0x11, 0xf0, 0xab, 0x71, 0xdd, - 0x2f, 0xa0, 0x7e, 0xd7, 0x17, 0xd3, 0x21, 0xd9, 0x81, 0x5a, 0xcc, 0xd5, 0xd8, 0xb6, 0x76, 0xac, - 0x5b, 0xad, 0xde, 0x73, 0x67, 0xe7, 0xdb, 0x95, 0xc5, 0xf9, 0x76, 0xed, 0x84, 0xab, 0x31, 0x43, - 0x0f, 0xd9, 0x85, 0x9a, 0x9a, 0xc7, 0xc2, 0x5e, 0x43, 0xc4, 0xab, 0x19, 0xe2, 0xfe, 0x3c, 0x16, - 0x7f, 0x9d, 0x6f, 0xb7, 0x90, 0x46, 0x1f, 0x18, 0xc2, 0xba, 0x3f, 0x40, 0xfd, 0x88, 0x0f, 0xc4, - 0x94, 0xbc, 0x0e, 0xd5, 0x89, 0x98, 0x1b, 0xe2, 0xb6, 0x09, 0xab, 0x1e, 0x8a, 0x39, 0xd3, 0x76, - 0xf2, 0x06, 0xd4, 0x4f, 0xf9, 0x74, 0x96, 0xf1, 0x6e, 0x18, 0x40, 0xbd, 0xaf, 0x8d, 0x2c, 0xf5, - 0x11, 0x07, 0x5a, 0xf8, 0xa1, 0xd3, 0xb1, 0xab, 0x08, 0x7c, 0xc9, 0x00, 0x5b, 0xfd, 0xcc, 0xc1, - 0x0a, 0x4c, 0xf7, 0x67, 0x0b, 0xda, 0xc7, 0x78, 0x75, 0xe8, 0x26, 0xdb, 0x99, 0x8a, 0x4e, 0xc3, - 0xea, 0xb5, 0x96, 0x14, 0x3e, 0x80, 0x0d, 0xfc, 0xb8, 0x9b, 0x44, 0x01, 0xaa, 0xa4, 0xe9, 0xbc, - 0x62, 0x54, 0x36, 0xfa, 0x65, 0x27, 0xbb, 0x8c, 0x25, 0xc7, 0xb0, 0x99, 0x1b, 0x3e, 0x79, 0x18, - 0x27, 0x42, 0x4a, 0x3f, 0x0a, 0x4d, 0xa2, 0xaf, 0x19, 0x8a, 0xcd, 0xfe, 0x32, 0x84, 0x3d, 0x2d, - 0xae, 0xfb, 0x67, 0x0d, 0xd6, 0xd3, 0xe4, 0xa5, 0xbe, 0x97, 0x90, 0x07, 0xe2, 0xea, 0xbd, 0x7c, - 0xc6, 0x03, 0xc1, 0xd0, 0xa3, 0x11, 0x63, 0x31, 0x8d, 0x4d, 0xc2, 0x39, 0xe2, 0x53, 0x31, 0x8d, - 0x19, 0x7a, 0x34, 0x02, 0x6f, 0xae, 0x7a, 0x19, 0x51, 0x5c, 0x16, 0x79, 0x00, 0xf5, 0x91, 0xbe, - 0x3f, 0xbb, 0xb6, 0x63, 0xdd, 0x6a, 0xef, 0xbf, 0x4f, 0x57, 0x98, 0x0c, 0x8a, 0x1d, 0x50, 0x5c, - 0x20, 0x1e, 0x59, 0xca, 0x4b, 0x06, 0xd0, 0x98, 0xea, 0x6e, 0x90, 0x76, 0x7d, 0xa7, 0xba, 0xb2, - 0x02, 0x36, 0x54, 0xef, 0x79, 0xa3, 0xd0, 0xc0, 0xa3, 0x64, 0x86, 0x99, 0x8c, 0xa0, 0x11, 0xf3, - 0x84, 0x07, 0xd2, 0x6e, 0xa0, 0xc6, 0x47, 0x2b, 0x69, 0x9c, 0x68, 0x0a, 0xa1, 0x44, 0x52, 0xe8, - 0xa0, 0x49, 0x32, 0xc3, 0x4e, 0xbe, 0x86, 0x86, 0x54, 0x5c, 0x09, 0x69, 0xaf, 0xdf, 0xe0, 0x6f, - 0xdd, 0xd3, 0x14, 0x3d, 0xd0, 0xfc, 0xf8, 0x29, 0x99, 0x61, 0x25, 0xdf, 0x41, 0x3b, 0x28, 0x5a, - 0xd7, 0x6e, 0xa2, 0xc8, 0xed, 0x95, 0x44, 0x4a, 0x23, 0xd0, 0xdb, 0x34, 0xe5, 0x94, 0xe7, 0x82, - 0x95, 0x95, 0xba, 0xbf, 0x5b, 0xf0, 0xb2, 0xe9, 0xbb, 0x3b, 0x51, 0x38, 0xf2, 0xbd, 0x59, 0xc2, - 0x95, 0x1f, 0x85, 0xe4, 0x1b, 0x68, 0xea, 0x4d, 0x35, 0xe4, 0x8a, 0x63, 0x23, 0xb6, 0xf7, 0xdf, - 0xa2, 0xe9, 0xc2, 0xa1, 0xe5, 0x85, 0x43, 0xe3, 0x89, 0x97, 0x27, 0xc2, 0xe9, 0xe9, 0x1e, 0xfd, - 0x7c, 0xf0, 0xad, 0x70, 0xd5, 0xb1, 0x50, 0xbc, 0x47, 0x8c, 0x3c, 0x14, 0x36, 0x96, 0xb3, 0x92, - 0x08, 0x6a, 0x32, 0x16, 0x2e, 0x36, 0x71, 0x7b, 0xff, 0xf8, 0x06, 0xc5, 0x5e, 0x4e, 0xfd, 0x5e, - 0x2c, 0xdc, 0xa2, 0xe3, 0xf5, 0x89, 0xa1, 0x50, 0xf7, 0x37, 0x0b, 0xec, 0xa7, 0x05, 0x1c, 0xf9, - 0x52, 0x91, 0xaf, 0x96, 0xea, 0xa5, 0xff, 0xae, 0x5e, 0x1d, 0x8d, 0xd5, 0xbe, 0x68, 0x24, 0x9b, - 0x99, 0xa5, 0x54, 0x6b, 0x08, 0x75, 0x5f, 0x89, 0x40, 0xda, 0x6b, 0xd8, 0xa6, 0x07, 0xff, 0x59, - 0xb1, 0xc5, 0xec, 0x1d, 0x68, 0x7e, 0x96, 0xca, 0x74, 0xff, 0xb8, 0xa6, 0x54, 0xfd, 0x37, 0x48, - 0x04, 0x2d, 0xc5, 0x13, 0x4f, 0x28, 0x26, 0x46, 0xa6, 0xd6, 0xd5, 0xe6, 0xe6, 0x7e, 0xc6, 0x52, - 0x6c, 0xe6, 0xdc, 0xc4, 0x0a, 0x0d, 0xe2, 0xc1, 0xba, 0x89, 0x35, 0xf5, 0x7f, 0x78, 0x93, 0xfa, - 0x7b, 0x2f, 0x18, 0xb1, 0x6c, 0x61, 0xb2, 0x8c, 0xbd, 0xfb, 0xc8, 0x82, 0x56, 0x3e, 0xcc, 0xcf, - 0xe6, 0x15, 0xfa, 0xc9, 0x82, 0x3a, 0x0e, 0x37, 0x79, 0x13, 0x9a, 0xb8, 0xa5, 0x0e, 0xf3, 0x1c, - 0x8a, 0x0e, 0x31, 0x76, 0x96, 0x23, 0xc8, 0x18, 0x1a, 0x48, 0x92, 0xfd, 0xa2, 0xdb, 0xab, 0x6f, - 0x18, 0xcc, 0x4b, 0x16, 0xbb, 0x2c, 0x3d, 0x33, 0xc3, 0x8f, 0xef, 0x64, 0x09, 0x47, 0xf6, 0x01, - 0x30, 0x8b, 0x7e, 0xfe, 0x58, 0xb6, 0x8a, 0xc9, 0x3d, 0xca, 0x3d, 0xac, 0x84, 0xba, 0xba, 0xaf, - 0xd6, 0xfe, 0xb7, 0x7d, 0xc5, 0xa1, 0x68, 0x31, 0xfd, 0xc8, 0x4d, 0xfc, 0x70, 0x78, 0xf5, 0xa1, - 0x3c, 0xf4, 0xc3, 0x21, 0x43, 0x8f, 0xae, 0x8d, 0xc7, 0x7e, 0x5f, 0x24, 0xf8, 0x38, 0xaf, 0x5d, - 0xae, 0xed, 0xe3, 0x93, 0x03, 0xe3, 0x61, 0x25, 0x54, 0x8f, 0x9e, 0x5d, 0x74, 0x2a, 0x8f, 0x2f, - 0x3a, 0x95, 0x27, 0x17, 0x9d, 0xca, 0xa3, 0x45, 0xc7, 0x3a, 0x5b, 0x74, 0xac, 0xc7, 0x8b, 0x8e, - 0xf5, 0x64, 0xd1, 0xb1, 0x7e, 0x59, 0x74, 0xac, 0x1f, 0x7f, 0xed, 0x54, 0xbe, 0x6c, 0x66, 0x05, - 0xfc, 0x1d, 0x00, 0x00, 0xff, 0xff, 0x24, 0xf5, 0x4e, 0xc1, 0x98, 0x0a, 0x00, 0x00, + // 952 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x55, 0xcb, 0x6e, 0x23, 0x45, + 0x14, 0x75, 0xc7, 0x8f, 0xd8, 0xd7, 0x09, 0x8f, 0xca, 0x20, 0x35, 0x41, 0x74, 0x22, 0xb3, 0x99, + 0x05, 0xe9, 0x26, 0x01, 0x21, 0x04, 0x08, 0x0d, 0x8e, 0x18, 0x11, 0x25, 0x81, 0xa8, 0x66, 0x64, + 0x21, 0x84, 0x18, 0xca, 0xed, 0x72, 0xbb, 0xb1, 0xfb, 0xa1, 0xae, 0x72, 0x18, 0x23, 0x16, 0xf3, + 0x09, 0xfc, 0x01, 0xff, 0xc1, 0x17, 0x64, 0x39, 0xcb, 0x59, 0x45, 0xc4, 0x6c, 0x80, 0x3d, 0x1b, + 0x56, 0xa8, 0x6e, 0x57, 0x3f, 0x62, 0x07, 0x81, 0x1c, 0x04, 0xbb, 0xae, 0xba, 0xe7, 0x9e, 0x73, + 0x6e, 0xd7, 0xad, 0x5b, 0x70, 0x38, 0x0e, 0xa2, 0xc1, 0x74, 0xc2, 0x85, 0xfd, 0x78, 0xf6, 0xad, + 0xe3, 0x4e, 0x85, 0x8c, 0x82, 0xbd, 0x84, 0x8b, 0x68, 0x9a, 0xb8, 0x5c, 0x38, 0x2c, 0xf6, 0x85, + 0x13, 0x70, 0x99, 0xf8, 0xae, 0x70, 0xce, 0xf7, 0xd9, 0x24, 0x1e, 0xb1, 0x7d, 0xc7, 0xe3, 0x21, + 0x4f, 0x98, 0xe4, 0x03, 0x3b, 0x4e, 0x22, 0x19, 0x91, 0x37, 0xcb, 0x24, 0x76, 0x4a, 0xf2, 0x28, + 0x27, 0xb1, 0x15, 0x89, 0xad, 0x49, 0xec, 0x8c, 0x64, 0x7b, 0xcf, 0xf3, 0xe5, 0x68, 0xda, 0xb7, + 0xdd, 0x28, 0x70, 0xbc, 0xc8, 0x8b, 0x1c, 0xe4, 0xea, 0x4f, 0x87, 0xb8, 0xc2, 0x05, 0x7e, 0xa5, + 0x1a, 0xdb, 0x6f, 0x8d, 0xdf, 0x11, 0xb6, 0x1f, 0x29, 0x47, 0x01, 0x73, 0x47, 0x7e, 0xc8, 0x93, + 0x99, 0x13, 0x8f, 0xbd, 0xdc, 0x22, 0x73, 0xce, 0x97, 0x9c, 0x6d, 0x3b, 0x7f, 0x95, 0x95, 0x4c, + 0x43, 0xe9, 0x07, 0x7c, 0x29, 0xe1, 0xed, 0xbf, 0x4b, 0x10, 0xee, 0x88, 0x07, 0x6c, 0x31, 0xaf, + 0xf3, 0x19, 0xd4, 0xef, 0xfb, 0x7c, 0x32, 0x20, 0xbb, 0x50, 0x8b, 0x99, 0x1c, 0x99, 0xc6, 0xae, + 0x71, 0xb7, 0xd5, 0xdd, 0xb8, 0xb8, 0xdc, 0xa9, 0xcc, 0x2f, 0x77, 0x6a, 0x67, 0x4c, 0x8e, 0x28, + 0x46, 0xc8, 0x1e, 0xd4, 0xe4, 0x2c, 0xe6, 0xe6, 0x1a, 0x22, 0x5e, 0xce, 0x10, 0x0f, 0x67, 0x31, + 0xff, 0xe3, 0x72, 0xa7, 0x85, 0x34, 0x6a, 0x41, 0x11, 0xd6, 0xf9, 0x0e, 0xea, 0x27, 0xac, 0xcf, + 0x27, 0xe4, 0x55, 0xa8, 0x8e, 0xf9, 0x4c, 0x13, 0xb7, 0x75, 0x5a, 0xf5, 0x98, 0xcf, 0xa8, 0xda, + 0x27, 0xaf, 0x41, 0xfd, 0x9c, 0x4d, 0xa6, 0x19, 0xef, 0xa6, 0x06, 0xd4, 0x7b, 0x6a, 0x93, 0xa6, + 0x31, 0xe2, 0x40, 0x0b, 0x3f, 0x94, 0x1d, 0xb3, 0x8a, 0xc0, 0x17, 0x35, 0xb0, 0xd5, 0xcb, 0x02, + 0xb4, 0xc0, 0x74, 0x7e, 0x34, 0xa0, 0x7d, 0x8a, 0x47, 0x87, 0x61, 0xb2, 0x93, 0xa9, 0x28, 0x1b, + 0x46, 0xb7, 0xb5, 0xa4, 0xf0, 0x1e, 0x6c, 0xe2, 0xc7, 0xfd, 0x24, 0x0a, 0x50, 0x25, 0xb5, 0xf3, + 0x92, 0x56, 0xd9, 0xec, 0x95, 0x83, 0xf4, 0x3a, 0x96, 0x9c, 0xc2, 0x56, 0xbe, 0xf1, 0xd1, 0xe3, + 0x38, 0xe1, 0x42, 0xf8, 0x51, 0xa8, 0x8d, 0xbe, 0xa2, 0x29, 0xb6, 0x7a, 0xcb, 0x10, 0x7a, 0x53, + 0x5e, 0xe7, 0xf7, 0x1a, 0xac, 0xa7, 0xe6, 0x85, 0x3a, 0x97, 0x90, 0x05, 0x7c, 0xf1, 0x5c, 0x3e, + 0x61, 0x01, 0xa7, 0x18, 0x51, 0x88, 0x11, 0x9f, 0xc4, 0xda, 0x70, 0x8e, 0xf8, 0x98, 0x4f, 0x62, + 0x8a, 0x11, 0x85, 0xc0, 0x93, 0xab, 0x5e, 0x47, 0x14, 0x87, 0x45, 0x1e, 0x41, 0x7d, 0xa8, 0xce, + 0xcf, 0xac, 0xed, 0x1a, 0x77, 0xdb, 0x07, 0xef, 0xda, 0x2b, 0xdc, 0x0c, 0x1b, 0x3b, 0xa0, 0x38, + 0x40, 0x5c, 0xd2, 0x94, 0x97, 0xf4, 0xa1, 0x31, 0x51, 0xdd, 0x20, 0xcc, 0xfa, 0x6e, 0x75, 0x65, + 0x05, 0x6c, 0xa8, 0xee, 0x73, 0x5a, 0xa1, 0x81, 0x4b, 0x41, 0x35, 0x33, 0x19, 0x42, 0x23, 0x66, + 0x09, 0x0b, 0x84, 0xd9, 0x40, 0x8d, 0x0f, 0x56, 0xd2, 0x38, 0x53, 0x14, 0x5c, 0xf2, 0xa4, 0xd0, + 0xc1, 0x2d, 0x41, 0x35, 0x3b, 0xf9, 0x12, 0x1a, 0x42, 0x32, 0xc9, 0x85, 0xb9, 0x7e, 0x8b, 0xbf, + 0xf5, 0x40, 0x51, 0x74, 0x41, 0xf1, 0xe3, 0xa7, 0xa0, 0x9a, 0x95, 0x7c, 0x03, 0xed, 0xa0, 0x68, + 0x5d, 0xb3, 0x89, 0x22, 0xf7, 0x56, 0x12, 0x29, 0x5d, 0x81, 0xee, 0x96, 0x2e, 0xa7, 0x7c, 0x2f, + 0x68, 0x59, 0xa9, 0xf3, 0xab, 0x01, 0x77, 0x74, 0xdf, 0x1d, 0x46, 0xe1, 0xd0, 0xf7, 0xa6, 0x09, + 0x93, 0x7e, 0x14, 0x92, 0xaf, 0xa0, 0xa9, 0x26, 0xd5, 0x80, 0x49, 0x86, 0x8d, 0xd8, 0x3e, 0x78, + 0xc3, 0x4e, 0x07, 0x8e, 0x5d, 0x1e, 0x38, 0x76, 0x3c, 0xf6, 0x72, 0x23, 0xcc, 0x3e, 0xdf, 0xb7, + 0x3f, 0xed, 0x7f, 0xcd, 0x5d, 0x79, 0xca, 0x25, 0xeb, 0x12, 0x2d, 0x0f, 0xc5, 0x1e, 0xcd, 0x59, + 0x49, 0x04, 0x35, 0x11, 0x73, 0x17, 0x9b, 0xb8, 0x7d, 0x70, 0x7a, 0x8b, 0x62, 0xaf, 0x5b, 0x7f, + 0x10, 0x73, 0xb7, 0xe8, 0x78, 0xb5, 0xa2, 0x28, 0xd4, 0xf9, 0xc5, 0x00, 0xf3, 0xa6, 0x84, 0x13, + 0x5f, 0x48, 0xf2, 0xc5, 0x52, 0xbd, 0xf6, 0x3f, 0xab, 0x57, 0x65, 0x63, 0xb5, 0x2f, 0x68, 0xc9, + 0x66, 0xb6, 0x53, 0xaa, 0x35, 0x84, 0xba, 0x2f, 0x79, 0x20, 0xcc, 0x35, 0x6c, 0xd3, 0xa3, 0x7f, + 0xad, 0xd8, 0xe2, 0xee, 0x1d, 0x29, 0x7e, 0x9a, 0xca, 0x74, 0x7e, 0x5b, 0xbb, 0xb9, 0x54, 0xf5, + 0x37, 0x48, 0x04, 0x2d, 0xc9, 0x12, 0x8f, 0x4b, 0xca, 0x87, 0xba, 0xd6, 0xd5, 0xee, 0xcd, 0xc3, + 0x8c, 0xa5, 0x98, 0xcc, 0xf9, 0x16, 0x2d, 0x34, 0x88, 0x84, 0x0d, 0x37, 0x0a, 0x82, 0x28, 0x4c, + 0x6f, 0xaf, 0xfe, 0x09, 0xb7, 0x99, 0x07, 0x77, 0xb4, 0xde, 0xc6, 0x61, 0x89, 0x97, 0x5e, 0x53, + 0x21, 0x1e, 0xac, 0xeb, 0x6c, 0xb3, 0x8a, 0x82, 0xef, 0xdf, 0xe6, 0xaf, 0x77, 0x9f, 0xd7, 0x92, + 0xd9, 0x98, 0xa6, 0x19, 0x7b, 0xe7, 0x89, 0x01, 0xad, 0x7c, 0x84, 0xfc, 0x3f, 0x6f, 0xdf, 0x0f, + 0x06, 0xd4, 0x71, 0xa4, 0x90, 0xd7, 0xa1, 0x89, 0xb3, 0xf1, 0x38, 0xf7, 0x50, 0xf4, 0xa5, 0xde, + 0xa7, 0x39, 0x82, 0x8c, 0xa0, 0x81, 0x24, 0xd9, 0x99, 0xdc, 0x5b, 0x7d, 0xae, 0xa1, 0x2f, 0x51, + 0x4c, 0xd0, 0x74, 0x4d, 0x35, 0x3f, 0xbe, 0xce, 0x25, 0x1c, 0x39, 0x00, 0x40, 0x17, 0xbd, 0xfc, + 0x89, 0x6e, 0x15, 0xf3, 0xe2, 0x24, 0x8f, 0xd0, 0x12, 0x6a, 0x71, 0x4a, 0xae, 0xfd, 0x67, 0x53, + 0x92, 0x41, 0xd1, 0xd8, 0xca, 0x39, 0x8b, 0xfd, 0x1e, 0x4f, 0xf0, 0xc1, 0x5f, 0x70, 0xfe, 0xe1, + 0xd9, 0x91, 0x8e, 0xd0, 0x12, 0x4a, 0x3d, 0xc7, 0x63, 0x3f, 0x1c, 0x2c, 0x3e, 0xd8, 0xc7, 0x7e, + 0x38, 0xa0, 0x18, 0xe9, 0xda, 0x17, 0x57, 0x56, 0xe5, 0xe9, 0x95, 0x55, 0x79, 0x76, 0x65, 0x55, + 0x9e, 0xcc, 0x2d, 0xe3, 0x62, 0x6e, 0x19, 0x4f, 0xe7, 0x96, 0xf1, 0x6c, 0x6e, 0x19, 0x3f, 0xcd, + 0x2d, 0xe3, 0xfb, 0x9f, 0xad, 0xca, 0xe7, 0xcd, 0xac, 0x80, 0x3f, 0x03, 0x00, 0x00, 0xff, 0xff, + 0xdd, 0x3f, 0x9c, 0xe6, 0x0e, 0x0b, 0x00, 0x00, } func (m *Field) Marshal() (dAtA []byte, err error) { @@ -759,6 +761,20 @@ func (m *MetricsConfigurationSpec) MarshalToSizedBuffer(dAtA []byte) (int, error i = encodeVarintGenerated(dAtA, i, uint64(size)) } i-- + dAtA[i] = 0x1a + } + } + if len(m.CommonLabels) > 0 { + for iNdEx := len(m.CommonLabels) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.CommonLabels[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- dAtA[i] = 0x12 } } @@ -913,15 +929,15 @@ func (m *TargetRef) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - i -= len(m.APIVersion) - copy(dAtA[i:], m.APIVersion) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.APIVersion))) - i-- - dAtA[i] = 0x12 i -= len(m.Kind) copy(dAtA[i:], m.Kind) i = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind))) i-- + dAtA[i] = 0x12 + i -= len(m.APIVersion) + copy(dAtA[i:], m.APIVersion) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.APIVersion))) + i-- dAtA[i] = 0xa return len(dAtA) - i, nil } @@ -1054,6 +1070,12 @@ func (m *MetricsConfigurationSpec) Size() (n int) { _ = l l = m.TargetRef.Size() n += 1 + l + sovGenerated(uint64(l)) + if len(m.CommonLabels) > 0 { + for _, e := range m.CommonLabels { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } if len(m.Metrics) > 0 { for _, e := range m.Metrics { l = e.Size() @@ -1114,10 +1136,10 @@ func (m *TargetRef) Size() (n int) { } var l int _ = l - l = len(m.Kind) - n += 1 + l + sovGenerated(uint64(l)) l = len(m.APIVersion) n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Kind) + n += 1 + l + sovGenerated(uint64(l)) return n } @@ -1220,6 +1242,11 @@ func (this *MetricsConfigurationSpec) String() string { if this == nil { return "nil" } + repeatedStringForCommonLabels := "[]Label{" + for _, f := range this.CommonLabels { + repeatedStringForCommonLabels += strings.Replace(strings.Replace(f.String(), "Label", "Label", 1), `&`, ``, 1) + "," + } + repeatedStringForCommonLabels += "}" repeatedStringForMetrics := "[]Metrics{" for _, f := range this.Metrics { repeatedStringForMetrics += strings.Replace(strings.Replace(f.String(), "Metrics", "Metrics", 1), `&`, ``, 1) + "," @@ -1227,6 +1254,7 @@ func (this *MetricsConfigurationSpec) String() string { repeatedStringForMetrics += "}" s := strings.Join([]string{`&MetricsConfigurationSpec{`, `TargetRef:` + strings.Replace(strings.Replace(this.TargetRef.String(), "TargetRef", "TargetRef", 1), `&`, ``, 1) + `,`, + `CommonLabels:` + repeatedStringForCommonLabels + `,`, `Metrics:` + repeatedStringForMetrics + `,`, `}`, }, "") @@ -1276,8 +1304,8 @@ func (this *TargetRef) String() string { return "nil" } s := strings.Join([]string{`&TargetRef{`, - `Kind:` + fmt.Sprintf("%v", this.Kind) + `,`, `APIVersion:` + fmt.Sprintf("%v", this.APIVersion) + `,`, + `Kind:` + fmt.Sprintf("%v", this.Kind) + `,`, `}`, }, "") return s @@ -2288,6 +2316,40 @@ func (m *MetricsConfigurationSpec) Unmarshal(dAtA []byte) error { } iNdEx = postIndex case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CommonLabels", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CommonLabels = append(m.CommonLabels, Label{}) + if err := m.CommonLabels[len(m.CommonLabels)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Metrics", wireType) } @@ -2750,7 +2812,7 @@ func (m *TargetRef) Unmarshal(dAtA []byte) error { switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Kind", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field APIVersion", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -2778,11 +2840,11 @@ func (m *TargetRef) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Kind = string(dAtA[iNdEx:postIndex]) + m.APIVersion = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field APIVersion", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Kind", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -2810,7 +2872,7 @@ func (m *TargetRef) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.APIVersion = string(dAtA[iNdEx:postIndex]) + m.Kind = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex diff --git a/vendor/kmodules.xyz/custom-resources/apis/metrics/v1alpha1/generated.proto b/vendor/kmodules.xyz/custom-resources/apis/metrics/v1alpha1/generated.proto index 909d9fe1b..c6364b1c0 100644 --- a/vendor/kmodules.xyz/custom-resources/apis/metrics/v1alpha1/generated.proto +++ b/vendor/kmodules.xyz/custom-resources/apis/metrics/v1alpha1/generated.proto @@ -226,8 +226,12 @@ message MetricsConfigurationSpec { // TargetRef defines the object for which metrics will be collected optional TargetRef targetRef = 1; + // CommonLabels defines the common labels added to all the exported metrics + // +optional + repeated Label commonLabels = 2; + // List of Metrics configuration for the resource object defined in TargetRef - repeated Metrics metrics = 2; + repeated Metrics metrics = 3; } // Parameter contains the information of a parameter used in expression evaluation @@ -293,11 +297,11 @@ message StateValues { // TargetRef contains the Object's apiVersion & kind to specify the target resource message TargetRef { + // APIVersion defines the versioned schema of this representation of an object. + optional string apiVersion = 1; + // Kind is a string value representing the REST resource this object represents. // In CamelCase. - optional string kind = 1; - - // APIVersion defines the versioned schema of this representation of an object. - optional string apiVersion = 2; + optional string kind = 2; } diff --git a/vendor/kmodules.xyz/custom-resources/apis/metrics/v1alpha1/metricsconfiguration_types.go b/vendor/kmodules.xyz/custom-resources/apis/metrics/v1alpha1/metricsconfiguration_types.go index 3557992e8..5ecee77a8 100644 --- a/vendor/kmodules.xyz/custom-resources/apis/metrics/v1alpha1/metricsconfiguration_types.go +++ b/vendor/kmodules.xyz/custom-resources/apis/metrics/v1alpha1/metricsconfiguration_types.go @@ -51,18 +51,22 @@ type MetricsConfigurationSpec struct { // TargetRef defines the object for which metrics will be collected TargetRef TargetRef `json:"targetRef" protobuf:"bytes,1,opt,name=targetRef"` + // CommonLabels defines the common labels added to all the exported metrics + // +optional + CommonLabels []Label `json:"commonLabels,omitempty" protobuf:"bytes,2,rep,name=commonLabels"` + // List of Metrics configuration for the resource object defined in TargetRef - Metrics []Metrics `json:"metrics" protobuf:"bytes,2,rep,name=metrics"` + Metrics []Metrics `json:"metrics" protobuf:"bytes,3,rep,name=metrics"` } // TargetRef contains the Object's apiVersion & kind to specify the target resource type TargetRef struct { + // APIVersion defines the versioned schema of this representation of an object. + APIVersion string `json:"apiVersion" protobuf:"bytes,1,opt,name=apiVersion"` + // Kind is a string value representing the REST resource this object represents. // In CamelCase. - Kind string `json:"kind" protobuf:"bytes,1,opt,name=kind"` - - // APIVersion defines the versioned schema of this representation of an object. - APIVersion string `json:"apiVersion" protobuf:"bytes,2,opt,name=apiVersion"` + Kind string `json:"kind" protobuf:"bytes,2,opt,name=kind"` } // Metrics contains the configuration of a metric in prometheus style. @@ -136,7 +140,7 @@ type Field struct { // "Array" for array field like .spec.containers // "String" for string field like .statue.phase (for pod status) // +kubebuilder:validation:Enum=Integer;DateTime;Array;String - Type FieldType `json:"type" protobuf:"bytes,2,opt,name=type"` + Type FieldType `json:"type" protobuf:"bytes,2,opt,name=type,casttype=FieldType"` } // Label contains the information of a metric label. @@ -261,7 +265,7 @@ type MetricValue struct { // As there must be a metric value, metric value is kept as 1. // The metric will look like `kube_pod_info{host_ip="172.18.0.2", pod_ip="10.244.0.14", node="kind-control-plane" .....} 1` // +optional - Value *float64 `json:"value,omitempty" protobuf:"bytes,1,opt,name=value"` + Value *float64 `json:"value,omitempty" protobuf:"fixed64,1,opt,name=value"` // ValueFromPath contains the field path of the manifest file of a object. // ValueFromPath is used when the metric value is coming from diff --git a/vendor/kmodules.xyz/custom-resources/apis/metrics/v1alpha1/openapi_generated.go b/vendor/kmodules.xyz/custom-resources/apis/metrics/v1alpha1/openapi_generated.go index bb93a78c1..c74026606 100644 --- a/vendor/kmodules.xyz/custom-resources/apis/metrics/v1alpha1/openapi_generated.go +++ b/vendor/kmodules.xyz/custom-resources/apis/metrics/v1alpha1/openapi_generated.go @@ -16100,6 +16100,20 @@ func schema_custom_resources_apis_metrics_v1alpha1_MetricsConfigurationSpec(ref Ref: ref("kmodules.xyz/custom-resources/apis/metrics/v1alpha1.TargetRef"), }, }, + "commonLabels": { + SchemaProps: spec.SchemaProps{ + Description: "CommonLabels defines the common labels added to all the exported metrics", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("kmodules.xyz/custom-resources/apis/metrics/v1alpha1.Label"), + }, + }, + }, + }, + }, "metrics": { SchemaProps: spec.SchemaProps{ Description: "List of Metrics configuration for the resource object defined in TargetRef", @@ -16119,7 +16133,7 @@ func schema_custom_resources_apis_metrics_v1alpha1_MetricsConfigurationSpec(ref }, }, Dependencies: []string{ - "kmodules.xyz/custom-resources/apis/metrics/v1alpha1.Metrics", "kmodules.xyz/custom-resources/apis/metrics/v1alpha1.TargetRef"}, + "kmodules.xyz/custom-resources/apis/metrics/v1alpha1.Label", "kmodules.xyz/custom-resources/apis/metrics/v1alpha1.Metrics", "kmodules.xyz/custom-resources/apis/metrics/v1alpha1.TargetRef"}, } } @@ -16235,24 +16249,24 @@ func schema_custom_resources_apis_metrics_v1alpha1_TargetRef(ref common.Referenc Description: "TargetRef contains the Object's apiVersion & kind to specify the target resource", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "kind": { + "apiVersion": { SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. In CamelCase.", + Description: "APIVersion defines the versioned schema of this representation of an object.", Default: "", Type: []string{"string"}, Format: "", }, }, - "apiVersion": { + "kind": { SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object.", + Description: "Kind is a string value representing the REST resource this object represents. In CamelCase.", Default: "", Type: []string{"string"}, Format: "", }, }, }, - Required: []string{"kind", "apiVersion"}, + Required: []string{"apiVersion", "kind"}, }, }, } diff --git a/vendor/kmodules.xyz/custom-resources/apis/metrics/v1alpha1/zz_generated.deepcopy.go b/vendor/kmodules.xyz/custom-resources/apis/metrics/v1alpha1/zz_generated.deepcopy.go index 3dd763ab6..b4debb118 100644 --- a/vendor/kmodules.xyz/custom-resources/apis/metrics/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/kmodules.xyz/custom-resources/apis/metrics/v1alpha1/zz_generated.deepcopy.go @@ -175,6 +175,11 @@ func (in *MetricsConfigurationList) DeepCopyObject() runtime.Object { func (in *MetricsConfigurationSpec) DeepCopyInto(out *MetricsConfigurationSpec) { *out = *in out.TargetRef = in.TargetRef + if in.CommonLabels != nil { + in, out := &in.CommonLabels, &out.CommonLabels + *out = make([]Label, len(*in)) + copy(*out, *in) + } if in.Metrics != nil { in, out := &in.Metrics, &out.Metrics *out = make([]Metrics, len(*in)) diff --git a/vendor/kmodules.xyz/custom-resources/crds/metrics.appscode.com_metricsconfigurations.yaml b/vendor/kmodules.xyz/custom-resources/crds/metrics.appscode.com_metricsconfigurations.yaml index e0222575f..7dcde9d48 100644 --- a/vendor/kmodules.xyz/custom-resources/crds/metrics.appscode.com_metricsconfigurations.yaml +++ b/vendor/kmodules.xyz/custom-resources/crds/metrics.appscode.com_metricsconfigurations.yaml @@ -48,6 +48,44 @@ spec: description: MetricsConfigurationSpec is the spec of MetricsConfiguration object. properties: + commonLabels: + description: CommonLabels defines the common labels added to all the + exported metrics + items: + description: "Label contains the information of a metric label. + Given labels are always added in the metrics along with resource + name and namespace. Resource's name and namespace are always added + in the labels by default. No configuration is needed for name + and namespace labels. \n Example: kube_pod_info{pod=\"\", + namespace=\"\", host_ip=\"172.18.0.2\", pod_ip=\"10.244.0.14\", + node=\"kind-control-plane\"} 1 In the example pod, namespace, + host_ip, pod_ip, node are labels. pod(resource name) and namespace + are default labels. No configurations is needed for those. \n + To generate others labels, config should be given in the following + way \n labels: - key: host_ip valuePath: .status.hostIP + \ - key: pod_ip valuePath: .status.podIP - key: node valuePath: + .spec.nodeName \n Either Value or ValuePath must be specified + for a Label. If both is specified, ValuePath is ignored. Note + that if a valuePath doesn't exist for a label key, the label will + be ignored." + properties: + key: + description: Key defines the label key + type: string + value: + description: 'Value defines the hard coded label value. Example: + labels: - key: unit value: byte - key: environment value: + production' + type: string + valuePath: + description: 'ValuePath defines the label value path. Example: + To add deployment''s resource version as labels, labels: - + key: version valuePath: .metadata.resourceVersion' + type: string + required: + - key + type: object + type: array metrics: description: List of Metrics configuration for the resource object defined in TargetRef diff --git a/vendor/kmodules.xyz/offshoot-api/api/v1/generated.pb.go b/vendor/kmodules.xyz/offshoot-api/api/v1/generated.pb.go index bbdae94ed..cddb6dc29 100644 --- a/vendor/kmodules.xyz/offshoot-api/api/v1/generated.pb.go +++ b/vendor/kmodules.xyz/offshoot-api/api/v1/generated.pb.go @@ -438,141 +438,144 @@ func init() { } var fileDescriptor_3a450b99b211cb39 = []byte{ - // 2134 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xcd, 0x6f, 0x1b, 0xc7, - 0x15, 0x37, 0x25, 0x52, 0x22, 0x1f, 0x25, 0x4a, 0x1a, 0x59, 0xce, 0x5a, 0x55, 0x49, 0x85, 0x2d, - 0x0a, 0x05, 0x8d, 0xa9, 0x28, 0x71, 0x01, 0x27, 0x41, 0x9d, 0x6a, 0x29, 0xd9, 0x56, 0x4a, 0x4b, - 0xc4, 0x50, 0x49, 0x3f, 0xd0, 0x8f, 0xac, 0x96, 0x23, 0x6a, 0xad, 0xe5, 0x0e, 0xbb, 0x33, 0xa4, - 0xcd, 0x14, 0x45, 0x73, 0x2c, 0x7a, 0xea, 0x5f, 0x50, 0xa0, 0x7f, 0x40, 0x6f, 0x3d, 0xf5, 0xdc, - 0x83, 0x81, 0x5e, 0x72, 0xcc, 0x89, 0xad, 0xd9, 0xff, 0xc2, 0x45, 0x81, 0x62, 0x66, 0x67, 0xbf, - 0xc8, 0xa5, 0x25, 0xd1, 0x76, 0x72, 0x10, 0xc0, 0x7d, 0x1f, 0xbf, 0xf7, 0xe6, 0xcd, 0x9b, 0xf7, - 0x66, 0x9e, 0xe0, 0x9d, 0xf3, 0x36, 0x6d, 0x76, 0x6d, 0xc2, 0x2a, 0x4f, 0xfa, 0x9f, 0x6f, 0xd3, - 0xd3, 0x53, 0x76, 0x46, 0x29, 0xbf, 0x65, 0x74, 0xac, 0x6d, 0xf1, 0xd7, 0xdb, 0xd9, 0x6e, 0x11, - 0x87, 0xb8, 0x06, 0x27, 0xcd, 0x4a, 0xc7, 0xa5, 0x9c, 0xa2, 0xcd, 0xa8, 0x46, 0xc5, 0xd7, 0xf8, - 0xb5, 0xd1, 0xb1, 0x2a, 0xe2, 0xaf, 0xb7, 0xb3, 0x7e, 0xab, 0x65, 0xf1, 0xb3, 0xee, 0x49, 0xc5, - 0xa4, 0xed, 0xed, 0x16, 0x6d, 0xd1, 0x6d, 0xa9, 0x78, 0xd2, 0x3d, 0x95, 0x5f, 0xf2, 0x43, 0xfe, - 0xf2, 0x00, 0xd7, 0xcb, 0xe7, 0x77, 0x58, 0xc5, 0xa2, 0xd2, 0x9e, 0x49, 0x5d, 0x92, 0x60, 0x74, - 0xfd, 0x76, 0x28, 0xd3, 0x36, 0xcc, 0x33, 0xcb, 0x21, 0x6e, 0x7f, 0xbb, 0x73, 0xde, 0x12, 0x04, - 0xb6, 0xdd, 0x26, 0xdc, 0x48, 0xd0, 0x2a, 0xff, 0x2f, 0x03, 0x5a, 0x95, 0x3a, 0xdc, 0x10, 0xf2, - 0xb8, 0xeb, 0x70, 0xab, 0x4d, 0x1a, 0x84, 0x73, 0xcb, 0x69, 0x31, 0xf4, 0x33, 0xc8, 0xb9, 0x84, - 0xd1, 0xae, 0x6b, 0x12, 0xa6, 0xa5, 0x36, 0x53, 0x5b, 0xf9, 0x77, 0xb7, 0x2a, 0x9e, 0x19, 0xb9, - 0x10, 0xe1, 0x4a, 0xa5, 0xb7, 0x53, 0xc1, 0x4a, 0x08, 0x93, 0xdf, 0x74, 0x2d, 0x97, 0xb4, 0x89, - 0xc3, 0x99, 0xbe, 0xf2, 0x74, 0x50, 0xba, 0x36, 0x1c, 0x94, 0x72, 0x3e, 0x97, 0xe1, 0x10, 0x0d, - 0x61, 0x58, 0xb4, 0xad, 0x1e, 0x71, 0x08, 0x63, 0x75, 0x97, 0x9e, 0x10, 0x6d, 0x46, 0xc2, 0xdf, - 0x4c, 0x82, 0x97, 0x02, 0xfa, 0xca, 0x70, 0x50, 0x5a, 0xac, 0x45, 0x75, 0x70, 0x1c, 0x02, 0x7d, - 0x02, 0x05, 0x97, 0x18, 0x4d, 0x2b, 0x04, 0x9d, 0xbd, 0x08, 0x14, 0x0d, 0x07, 0xa5, 0x02, 0x8e, - 0x29, 0xe1, 0x11, 0x10, 0xf4, 0x31, 0xe4, 0x6c, 0xeb, 0x94, 0x98, 0x7d, 0xd3, 0x26, 0x5a, 0x5a, - 0x22, 0x7e, 0x3b, 0x09, 0xb1, 0xe6, 0x0b, 0xe9, 0x8b, 0x62, 0xd9, 0xc1, 0x27, 0x0e, 0xd5, 0xd1, - 0x09, 0x2c, 0x31, 0x62, 0x76, 0x5d, 0x8b, 0xf7, 0x45, 0xd4, 0xc9, 0x13, 0xae, 0x65, 0x24, 0xe2, - 0x77, 0x92, 0x10, 0x1b, 0x71, 0x51, 0x7d, 0x75, 0x38, 0x28, 0x2d, 0x8d, 0x10, 0xf1, 0x28, 0x20, - 0xaa, 0x41, 0xda, 0xb1, 0x4c, 0xa2, 0xcd, 0x49, 0xe0, 0x4a, 0xe5, 0xa2, 0x64, 0xac, 0x1c, 0x5a, - 0x66, 0xb0, 0xe7, 0x7a, 0x76, 0x38, 0x28, 0xa5, 0x05, 0x05, 0x4b, 0x14, 0x74, 0x0c, 0x73, 0x16, - 0x95, 0x78, 0xf3, 0x12, 0xef, 0x9d, 0x8b, 0xf1, 0x0e, 0x8e, 0x62, 0x88, 0x30, 0x1c, 0x94, 0xe6, - 0x3c, 0x1a, 0x56, 0x58, 0xa8, 0x06, 0xf3, 0xc4, 0xe9, 0xdd, 0x73, 0x69, 0x5b, 0xcb, 0x6e, 0xce, - 0x6e, 0xe5, 0xdf, 0x7d, 0x33, 0x69, 0xfd, 0xfb, 0x9e, 0x48, 0x43, 0xe6, 0x8c, 0xbe, 0xa4, 0x12, - 0x6a, 0x5e, 0x91, 0xb1, 0x0f, 0x81, 0xde, 0x87, 0x59, 0xe2, 0xf4, 0xb4, 0x9c, 0x44, 0x5a, 0x9f, - 0x80, 0xf4, 0xa9, 0xe1, 0xea, 0x79, 0x05, 0x31, 0xbb, 0xef, 0xf4, 0xb0, 0xd0, 0x29, 0xff, 0x0a, - 0x0a, 0x71, 0x77, 0x51, 0x09, 0x32, 0xa6, 0x6d, 0x30, 0x2f, 0xe1, 0x33, 0x7a, 0x6e, 0x38, 0x28, - 0x65, 0xaa, 0x82, 0x80, 0x3d, 0x3a, 0xfa, 0x3e, 0xe4, 0xe4, 0x8f, 0x3d, 0x83, 0x1b, 0x32, 0x6d, - 0x33, 0xde, 0x86, 0x57, 0x7d, 0x22, 0x0e, 0xf9, 0xe5, 0xbb, 0xb0, 0x10, 0x43, 0xaf, 0x00, 0x18, - 0xcd, 0x47, 0x5d, 0xc6, 0xc5, 0x21, 0x51, 0x26, 0x0a, 0xc3, 0x41, 0x09, 0x76, 0x03, 0x2a, 0x8e, - 0x48, 0x94, 0xff, 0x35, 0x03, 0x70, 0x74, 0xf2, 0x88, 0x98, 0xfc, 0x21, 0xe1, 0x06, 0xfa, 0x0c, - 0xe6, 0x6c, 0xe3, 0x84, 0xd8, 0xc2, 0x3b, 0xb1, 0xd8, 0x3b, 0x17, 0xef, 0x46, 0xa8, 0x5d, 0xa9, - 0x49, 0xd5, 0x7d, 0x87, 0xbb, 0x7d, 0xbd, 0xa0, 0x42, 0x31, 0xe7, 0x11, 0xb1, 0xc2, 0x45, 0x1c, - 0xf2, 0x86, 0xe3, 0x50, 0x6e, 0x70, 0x8b, 0x3a, 0x4c, 0x9b, 0x91, 0x66, 0x7e, 0x78, 0x25, 0x33, - 0xbb, 0xa1, 0xbe, 0x67, 0x6b, 0x55, 0xd9, 0xca, 0x47, 0x38, 0x38, 0x6a, 0x66, 0xfd, 0x7d, 0xc8, - 0x47, 0x9c, 0x43, 0xcb, 0x30, 0x7b, 0x4e, 0xfa, 0x32, 0x3c, 0x39, 0x2c, 0x7e, 0xa2, 0xeb, 0x90, - 0xe9, 0x19, 0x76, 0xd7, 0xab, 0x13, 0x39, 0xec, 0x7d, 0x7c, 0x30, 0x73, 0x27, 0xb5, 0x7e, 0x17, - 0x96, 0x47, 0x0d, 0x5e, 0x45, 0xbf, 0xfc, 0x3c, 0x0d, 0x2b, 0x75, 0xc3, 0xe5, 0x96, 0x61, 0x47, - 0x02, 0xbd, 0x09, 0x69, 0xc7, 0x68, 0x13, 0x0f, 0x42, 0x5f, 0x50, 0x0b, 0x48, 0x1f, 0x1a, 0x6d, - 0x71, 0x30, 0x8c, 0x36, 0x41, 0x77, 0x60, 0xc1, 0x2f, 0xa6, 0x82, 0xea, 0x01, 0xeb, 0xd7, 0x95, - 0xe4, 0xc2, 0xfd, 0x08, 0x0f, 0xc7, 0x24, 0xd1, 0x36, 0xe4, 0x04, 0x02, 0xeb, 0x18, 0xa6, 0x57, - 0xa2, 0x72, 0x61, 0xb1, 0x3c, 0xf4, 0x19, 0x38, 0x94, 0x41, 0xad, 0x60, 0xd7, 0xd3, 0x72, 0x3b, - 0x3e, 0xba, 0x78, 0x3b, 0xc6, 0x56, 0x74, 0xa9, 0xcd, 0xff, 0x6d, 0x7c, 0xf3, 0x33, 0xd2, 0xda, - 0xde, 0x34, 0xd6, 0xae, 0x9e, 0x03, 0xe8, 0x31, 0x2c, 0xd1, 0xc7, 0xa2, 0x0b, 0x91, 0x53, 0xe2, - 0x12, 0x47, 0xf4, 0x9c, 0x39, 0xe9, 0xc0, 0xed, 0xc8, 0x89, 0x0e, 0x5a, 0x5b, 0xa5, 0x73, 0xde, - 0x12, 0x04, 0x56, 0x11, 0xad, 0x4d, 0x66, 0x60, 0x4c, 0x59, 0x7f, 0x43, 0x19, 0x5c, 0x8a, 0xd3, - 0x19, 0x1e, 0xb5, 0xf2, 0x4d, 0x26, 0xdf, 0x5f, 0x67, 0x60, 0xad, 0x4e, 0x5c, 0x66, 0x31, 0x4e, - 0x1c, 0xfe, 0x29, 0xb5, 0xbb, 0x6d, 0x52, 0xb5, 0x0d, 0xab, 0x8d, 0x1e, 0x41, 0x56, 0x2c, 0xac, - 0x29, 0x8a, 0x8c, 0xd7, 0x7a, 0xdf, 0x9b, 0x62, 0x1f, 0xf4, 0x9b, 0x2a, 0x0a, 0xe3, 0x29, 0x8e, - 0x03, 0x7c, 0x74, 0x04, 0x69, 0xd6, 0x21, 0xa6, 0xea, 0xc1, 0xb7, 0x12, 0xdb, 0x65, 0x92, 0x93, - 0x8d, 0x0e, 0x31, 0xc3, 0xb3, 0x21, 0xbe, 0xb0, 0x04, 0x42, 0x3f, 0x81, 0x39, 0xc6, 0x0d, 0xde, - 0x65, 0xaa, 0x03, 0x6f, 0x5f, 0x1e, 0x52, 0xaa, 0x85, 0x09, 0xea, 0x7d, 0x63, 0x05, 0x57, 0xfe, - 0xcb, 0x22, 0xa0, 0x3a, 0x6d, 0x8e, 0x5e, 0x54, 0xfe, 0x90, 0x82, 0x42, 0x87, 0x36, 0x23, 0x5b, - 0xa1, 0x2d, 0xc9, 0xd4, 0x79, 0x70, 0x89, 0x98, 0x8d, 0xc1, 0x09, 0xd2, 0x58, 0xfe, 0xde, 0x50, - 0x1e, 0x15, 0xe2, 0x4c, 0x3c, 0x62, 0x17, 0x7d, 0x91, 0x82, 0x05, 0x87, 0x36, 0x49, 0x83, 0xd8, - 0xc4, 0xe4, 0xd4, 0x55, 0x85, 0xfa, 0xde, 0x54, 0x8e, 0x1c, 0x46, 0x80, 0x3c, 0x37, 0x82, 0xfa, - 0x12, 0x65, 0xe1, 0x98, 0x45, 0xf4, 0x31, 0x20, 0x46, 0xdc, 0x9e, 0x65, 0x92, 0x5d, 0xd3, 0xa4, - 0x5d, 0x87, 0x47, 0xea, 0xd3, 0xba, 0xd2, 0x47, 0x8d, 0x31, 0x09, 0x9c, 0xa0, 0x85, 0xfe, 0x96, - 0x82, 0x9b, 0x71, 0x72, 0x34, 0xc8, 0xcb, 0x72, 0x6d, 0x8d, 0xa9, 0xd6, 0xd6, 0x98, 0x84, 0xea, - 0x2d, 0xf4, 0x4d, 0xe5, 0xe8, 0xcd, 0x89, 0x72, 0x78, 0xb2, 0x63, 0xa8, 0x09, 0x1b, 0x46, 0x97, - 0xd3, 0xb6, 0xa0, 0xc7, 0x01, 0x8e, 0xe9, 0x39, 0x71, 0x64, 0x5a, 0x66, 0xf5, 0xcd, 0xe1, 0xa0, - 0xb4, 0xb1, 0xfb, 0x02, 0x39, 0xfc, 0x42, 0x14, 0xf4, 0x36, 0x64, 0x45, 0xe0, 0x65, 0x78, 0xd3, - 0x32, 0xbc, 0xcb, 0xca, 0xeb, 0xec, 0xa1, 0xa2, 0xe3, 0x40, 0x02, 0x91, 0x49, 0x77, 0xbf, 0xef, - 0x25, 0x9e, 0x0e, 0xda, 0x9c, 0xee, 0xfa, 0xe7, 0xc0, 0xb2, 0xd5, 0x36, 0x5a, 0xa4, 0xde, 0xb5, - 0xed, 0x06, 0x31, 0x5d, 0xc2, 0xfd, 0x3a, 0x9a, 0x78, 0x77, 0xaf, 0x51, 0xd3, 0xaf, 0x0a, 0x61, - 0xed, 0xd4, 0xd4, 0x32, 0x96, 0x0f, 0x46, 0x90, 0xf0, 0x18, 0x36, 0xba, 0x07, 0x59, 0xe3, 0xf4, - 0xd4, 0x72, 0x2c, 0xde, 0x57, 0x57, 0xc4, 0x8d, 0x24, 0x3b, 0xbb, 0x4a, 0x46, 0x5f, 0x10, 0xe1, - 0xf1, 0xbf, 0x70, 0xa0, 0x8b, 0x3e, 0x84, 0x45, 0x66, 0x9e, 0x11, 0x91, 0x47, 0xae, 0x8c, 0x68, - 0x56, 0x46, 0x74, 0x4d, 0xb9, 0xb2, 0xd8, 0x88, 0x32, 0x71, 0x5c, 0x16, 0x7d, 0x02, 0x79, 0x4e, - 0x6d, 0xd1, 0x62, 0x65, 0x5e, 0x7a, 0x37, 0xc1, 0x62, 0x92, 0x1f, 0xc7, 0x81, 0x58, 0xd8, 0x92, - 0x42, 0x1a, 0xc3, 0x51, 0x1c, 0x74, 0x1f, 0x56, 0x3a, 0xae, 0x45, 0x65, 0x78, 0xc5, 0x95, 0x4e, - 0xfa, 0x05, 0xd2, 0xaf, 0xb0, 0xb0, 0x8e, 0x0a, 0xe0, 0x71, 0x1d, 0xb4, 0x05, 0x59, 0x9f, 0xa8, - 0xe5, 0xe5, 0xa5, 0x4f, 0x86, 0xc1, 0xd7, 0xc5, 0x01, 0x17, 0x35, 0x23, 0x8f, 0x98, 0xfb, 0x06, - 0x27, 0x4c, 0x5b, 0x90, 0x8b, 0xf9, 0xee, 0x84, 0x24, 0xc1, 0x51, 0xe1, 0xb0, 0x4a, 0xc5, 0xc8, - 0x0c, 0x8f, 0x60, 0xa2, 0x1f, 0xc1, 0xb2, 0xeb, 0x9d, 0xc7, 0x70, 0x5d, 0x8b, 0xde, 0x05, 0x46, - 0x6c, 0x3b, 0x1e, 0xe1, 0xe1, 0x31, 0x69, 0x74, 0x0f, 0x10, 0x71, 0x8c, 0x13, 0x9b, 0xa8, 0x83, - 0x51, 0xb3, 0x9c, 0x73, 0xa6, 0x15, 0xe4, 0xb9, 0xba, 0x21, 0x0a, 0xcc, 0xfe, 0x18, 0x17, 0x27, - 0x68, 0xac, 0xef, 0xc2, 0x6a, 0x42, 0xb9, 0xbd, 0x52, 0x13, 0xfe, 0x08, 0x56, 0xc6, 0x0a, 0xe5, - 0x95, 0x00, 0x6a, 0x50, 0x7c, 0x71, 0x35, 0xba, 0x52, 0x4f, 0xff, 0x7b, 0x01, 0xe6, 0xc5, 0xe9, - 0x15, 0x8d, 0x30, 0xb9, 0x14, 0xa7, 0xa6, 0x2a, 0xc5, 0xdd, 0x91, 0xc6, 0xe2, 0x5d, 0xcd, 0x3f, - 0xbc, 0x54, 0xf1, 0x15, 0xce, 0x4c, 0xd9, 0x4d, 0xa2, 0xe7, 0x7b, 0xf6, 0x55, 0x9e, 0xef, 0xf4, - 0xf4, 0xe7, 0x3b, 0xf3, 0x8a, 0xce, 0xf7, 0xd7, 0x5d, 0x2b, 0x13, 0xeb, 0xc9, 0xfc, 0x4b, 0xd6, - 0x93, 0xec, 0x0b, 0xeb, 0xc9, 0x0f, 0x20, 0x7f, 0x46, 0x19, 0x3f, 0x24, 0xfc, 0x31, 0x75, 0xcf, - 0xb5, 0x9c, 0x3c, 0xa0, 0x41, 0x64, 0x1e, 0x84, 0x2c, 0x1c, 0x95, 0x43, 0x6f, 0xc1, 0xbc, 0xf8, - 0xac, 0x1f, 0xec, 0xc9, 0x7a, 0x97, 0x0d, 0x5f, 0xdf, 0x0f, 0x3c, 0x32, 0xf6, 0xf9, 0xbe, 0xe8, - 0x41, 0xbd, 0x2a, 0x4b, 0xdb, 0x88, 0xe8, 0x41, 0xbd, 0x8a, 0x7d, 0x3e, 0x3a, 0x82, 0x35, 0x76, - 0x66, 0xb8, 0xa4, 0xee, 0x52, 0x93, 0x78, 0x4b, 0xf1, 0x5e, 0x41, 0x0b, 0x52, 0xf1, 0xe6, 0x70, - 0x50, 0x5a, 0x6b, 0x24, 0x09, 0xe0, 0x64, 0xbd, 0xa4, 0x9e, 0xba, 0xf8, 0x1a, 0x7a, 0xea, 0x11, - 0xe4, 0x9a, 0x0e, 0xab, 0x53, 0xdb, 0x32, 0xfb, 0xb2, 0xc6, 0xe5, 0xf4, 0x1d, 0xff, 0xc5, 0xb6, - 0x77, 0xd8, 0xf0, 0x18, 0xcf, 0x07, 0xa5, 0x8d, 0xf1, 0x39, 0x5d, 0x25, 0xe0, 0xe3, 0x10, 0x03, - 0x3d, 0x94, 0x80, 0x55, 0xea, 0x9c, 0x5a, 0x2d, 0x6d, 0x49, 0x7a, 0xbc, 0x39, 0xc1, 0xe3, 0xbd, - 0xc3, 0x86, 0x27, 0xe7, 0x4d, 0x19, 0x82, 0x4f, 0x1c, 0x22, 0xa0, 0x5f, 0x42, 0x41, 0x1c, 0xb2, - 0x60, 0x90, 0xe7, 0xdf, 0xcc, 0x12, 0xe7, 0x54, 0x81, 0x54, 0xd8, 0x2d, 0x0e, 0x62, 0xca, 0x78, - 0x04, 0x0c, 0x6d, 0x40, 0xda, 0x70, 0x5b, 0x4c, 0x5b, 0xd9, 0x9c, 0xdd, 0xca, 0x79, 0x13, 0xa2, - 0x5d, 0xb7, 0xc5, 0xb0, 0xa4, 0xfa, 0xd3, 0x17, 0x74, 0xf5, 0xe9, 0x4b, 0x7c, 0xc0, 0xb8, 0xfa, - 0x7a, 0x07, 0x8c, 0xd7, 0x5f, 0xc7, 0x80, 0x71, 0xed, 0x95, 0x0f, 0x18, 0x6f, 0xbc, 0xdc, 0x80, - 0xf1, 0x77, 0xa0, 0x99, 0xfe, 0xc6, 0x8d, 0xa4, 0xb5, 0xf6, 0xc6, 0xe5, 0x27, 0x8d, 0x1b, 0xc3, - 0x41, 0x29, 0x9c, 0x0b, 0x8f, 0x9e, 0x8f, 0x89, 0x26, 0x5e, 0xba, 0x15, 0x97, 0xff, 0x3c, 0x03, - 0x4b, 0x75, 0xda, 0x3c, 0x26, 0xed, 0x8e, 0x6d, 0x70, 0x22, 0x9b, 0xe8, 0x2f, 0xc6, 0x9e, 0xc2, - 0x6f, 0x5f, 0x65, 0x1e, 0xa5, 0x23, 0x95, 0x28, 0x90, 0xf8, 0xf8, 0xfd, 0x0c, 0x40, 0x2c, 0xc7, - 0xa5, 0xb6, 0x4d, 0x5c, 0xf5, 0x04, 0x9e, 0x12, 0xbf, 0x1a, 0xe0, 0xe0, 0x08, 0x26, 0xfa, 0xb1, - 0x7a, 0x5e, 0x7b, 0xdd, 0xf3, 0xad, 0x4b, 0x37, 0xec, 0xa4, 0xa7, 0x75, 0xf9, 0x9f, 0x29, 0x58, - 0x1a, 0x7d, 0xfe, 0x1e, 0xc1, 0x6c, 0x87, 0x36, 0x55, 0x6c, 0x6e, 0x4f, 0xf3, 0x1a, 0xd3, 0xe7, - 0xc5, 0xb9, 0x14, 0x74, 0x81, 0x84, 0x5a, 0x90, 0x0b, 0xb6, 0x58, 0x85, 0xe4, 0x83, 0x8b, 0x61, - 0x27, 0xfd, 0x1f, 0x41, 0x8d, 0x47, 0x03, 0x6e, 0x88, 0x5d, 0xfe, 0x3d, 0xe4, 0xd5, 0xed, 0xa7, - 0x4e, 0x5d, 0x7e, 0x89, 0xa9, 0xdb, 0x26, 0xa4, 0x3b, 0xd4, 0xe5, 0x6a, 0xee, 0x1a, 0x48, 0x08, - 0x6d, 0x2c, 0x39, 0xfe, 0xa3, 0x4c, 0x50, 0x64, 0xc4, 0x33, 0xf1, 0x47, 0x99, 0x94, 0x0c, 0x24, - 0xca, 0xff, 0xcd, 0x04, 0x1e, 0xc8, 0x5c, 0xc3, 0x90, 0x11, 0x28, 0xfe, 0x7c, 0xf5, 0xd6, 0xc5, - 0xab, 0x8e, 0xf8, 0xaf, 0x2f, 0x2a, 0x4b, 0x19, 0xf1, 0xc5, 0xb0, 0x07, 0x85, 0xb6, 0x21, 0x67, - 0xda, 0x5d, 0xc6, 0x89, 0x7b, 0x50, 0x57, 0xcf, 0xf0, 0xa0, 0x76, 0x55, 0x7d, 0x06, 0x0e, 0x65, - 0x90, 0x0e, 0x69, 0xde, 0xef, 0xf8, 0xb3, 0xc1, 0x8a, 0xbf, 0xc8, 0xe3, 0x7e, 0x87, 0x3c, 0x1f, - 0x94, 0x8a, 0x09, 0x4d, 0x46, 0x39, 0x21, 0x24, 0xb0, 0xd4, 0x45, 0x3b, 0x90, 0x27, 0x4f, 0x38, - 0x71, 0x1d, 0xc3, 0x3e, 0xa8, 0x7b, 0x83, 0xc3, 0x9c, 0xbe, 0x24, 0x7a, 0xfe, 0x7e, 0x48, 0xc6, - 0x51, 0x19, 0x74, 0x17, 0x0a, 0x36, 0x35, 0x9a, 0xba, 0x61, 0x1b, 0x8e, 0x29, 0x9d, 0xcd, 0x48, - 0x07, 0x82, 0x36, 0x51, 0x8b, 0x71, 0xf1, 0x88, 0x34, 0xfa, 0x29, 0x68, 0x51, 0x8a, 0x37, 0xb6, - 0xc7, 0x86, 0xd3, 0x52, 0x93, 0xbc, 0x9c, 0x57, 0x56, 0x6a, 0x13, 0x64, 0xf0, 0x44, 0x6d, 0xf4, - 0xc7, 0x14, 0xac, 0xf9, 0x9e, 0x1e, 0xbb, 0xe2, 0x4a, 0x69, 0xaa, 0x66, 0xec, 0x5d, 0x9e, 0x8e, - 0x95, 0x87, 0x6b, 0xfb, 0x49, 0x42, 0xcf, 0x07, 0xa5, 0xf7, 0x26, 0xc7, 0x2c, 0x51, 0x45, 0x06, - 0x32, 0xd9, 0x24, 0x7a, 0x08, 0xab, 0x67, 0xc4, 0xb0, 0xf9, 0x59, 0xf5, 0x8c, 0x98, 0xe7, 0x7e, - 0x4e, 0xa9, 0x6b, 0xd8, 0xb7, 0x94, 0x27, 0xab, 0x0f, 0xc6, 0x45, 0x70, 0x92, 0x1e, 0xfa, 0x1c, - 0xd6, 0x18, 0x61, 0xcc, 0xa2, 0x8e, 0x7f, 0x69, 0x56, 0xd7, 0x82, 0x9c, 0x5f, 0x2e, 0x92, 0xca, - 0x75, 0x82, 0x82, 0xba, 0x3e, 0x25, 0xb1, 0x70, 0xb2, 0x89, 0xf2, 0x3f, 0x52, 0xb0, 0xea, 0xa7, - 0xce, 0xd7, 0x57, 0x71, 0xc7, 0xc6, 0x8d, 0x97, 0x3c, 0x62, 0x93, 0x6a, 0xa2, 0xbe, 0xf5, 0xf4, - 0x59, 0xf1, 0xda, 0x97, 0xcf, 0x8a, 0xd7, 0xbe, 0x7a, 0x56, 0xbc, 0xf6, 0xc5, 0xb0, 0x98, 0x7a, - 0x3a, 0x2c, 0xa6, 0xbe, 0x1c, 0x16, 0x53, 0x5f, 0x0d, 0x8b, 0xa9, 0x7f, 0x0f, 0x8b, 0xa9, 0x3f, - 0xfd, 0xa7, 0x78, 0xed, 0xe7, 0x33, 0xbd, 0x9d, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0x0b, 0x3a, - 0x0d, 0x85, 0xcc, 0x1d, 0x00, 0x00, + // 2185 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0x5f, 0x6f, 0x1b, 0xc7, + 0x11, 0x37, 0x25, 0x52, 0x22, 0x87, 0x12, 0x25, 0xad, 0x2c, 0xe7, 0xa4, 0xaa, 0xa4, 0xc2, 0x16, + 0x85, 0x83, 0xda, 0x54, 0xe4, 0xb8, 0x80, 0x93, 0xa0, 0x4e, 0x75, 0xb4, 0x6c, 0x2b, 0x95, 0x25, + 0x62, 0xa9, 0xa4, 0x7f, 0xd0, 0x3f, 0x59, 0x1d, 0x57, 0xd4, 0x59, 0xc7, 0x5b, 0xf6, 0x76, 0x29, + 0x9b, 0x29, 0x8a, 0xe6, 0xb1, 0x28, 0x50, 0xa0, 0x9f, 0xa0, 0xdf, 0xa0, 0x0f, 0x05, 0xfa, 0x11, + 0xfa, 0x60, 0xb4, 0x2f, 0x79, 0xcc, 0x13, 0x5b, 0xb3, 0xdf, 0xc2, 0x45, 0x81, 0x62, 0xf7, 0xf6, + 0xfe, 0x90, 0x3c, 0x5a, 0x12, 0x6d, 0xa7, 0x0f, 0x02, 0xb8, 0xf3, 0xe7, 0x37, 0xb3, 0xb3, 0xbb, + 0x33, 0x73, 0x23, 0x78, 0xf7, 0xb4, 0xc5, 0x1a, 0x1d, 0x87, 0xf2, 0xca, 0xd3, 0xee, 0xe7, 0x9b, + 0xec, 0xf8, 0x98, 0x9f, 0x30, 0x26, 0x6e, 0x92, 0xb6, 0xbd, 0x29, 0xff, 0xce, 0xb6, 0x36, 0x9b, + 0xd4, 0xa5, 0x1e, 0x11, 0xb4, 0x51, 0x69, 0x7b, 0x4c, 0x30, 0xb4, 0x11, 0xd7, 0xa8, 0x04, 0x1a, + 0xbf, 0x24, 0x6d, 0xbb, 0x22, 0xff, 0xce, 0xb6, 0xd6, 0x6e, 0x36, 0x6d, 0x71, 0xd2, 0x39, 0xaa, + 0x58, 0xac, 0xb5, 0xd9, 0x64, 0x4d, 0xb6, 0xa9, 0x14, 0x8f, 0x3a, 0xc7, 0x6a, 0xa5, 0x16, 0xea, + 0x97, 0x0f, 0xb8, 0x56, 0x3e, 0xbd, 0xc3, 0x2b, 0x36, 0x53, 0xf6, 0x2c, 0xe6, 0xd1, 0x04, 0xa3, + 0x6b, 0xb7, 0x23, 0x99, 0x16, 0xb1, 0x4e, 0x6c, 0x97, 0x7a, 0xdd, 0xcd, 0xf6, 0x69, 0x53, 0x12, + 0xf8, 0x66, 0x8b, 0x0a, 0x92, 0xa0, 0x55, 0xfe, 0x6f, 0x06, 0x8c, 0x2a, 0x73, 0x05, 0x91, 0xf2, + 0xb8, 0xe3, 0x0a, 0xbb, 0x45, 0xeb, 0x54, 0x08, 0xdb, 0x6d, 0x72, 0xf4, 0x13, 0xc8, 0x79, 0x94, + 0xb3, 0x8e, 0x67, 0x51, 0x6e, 0xa4, 0x36, 0x52, 0xd7, 0xf3, 0xb7, 0xae, 0x57, 0x7c, 0x33, 0x6a, + 0x23, 0xd2, 0x95, 0xca, 0xd9, 0x56, 0x05, 0x6b, 0x21, 0x4c, 0x7f, 0xd5, 0xb1, 0x3d, 0xda, 0xa2, + 0xae, 0xe0, 0xe6, 0xd2, 0xb3, 0x5e, 0xe9, 0x4a, 0xbf, 0x57, 0xca, 0x05, 0x5c, 0x8e, 0x23, 0x34, + 0x84, 0x61, 0xde, 0xb1, 0xcf, 0xa8, 0x4b, 0x39, 0xaf, 0x79, 0xec, 0x88, 0x1a, 0x53, 0x0a, 0x7e, + 0x35, 0x09, 0x5e, 0x09, 0x98, 0x4b, 0xfd, 0x5e, 0x69, 0x7e, 0x2f, 0xae, 0x83, 0x07, 0x21, 0xd0, + 0x27, 0x50, 0xf0, 0x28, 0x69, 0xd8, 0x11, 0xe8, 0xf4, 0x79, 0xa0, 0xa8, 0xdf, 0x2b, 0x15, 0xf0, + 0x80, 0x12, 0x1e, 0x02, 0x41, 0x1f, 0x43, 0xce, 0xb1, 0x8f, 0xa9, 0xd5, 0xb5, 0x1c, 0x6a, 0xa4, + 0x15, 0xe2, 0x37, 0x93, 0x10, 0xf7, 0x02, 0x21, 0x73, 0x5e, 0x6e, 0x3b, 0x5c, 0xe2, 0x48, 0x1d, + 0x1d, 0xc1, 0x02, 0xa7, 0x56, 0xc7, 0xb3, 0x45, 0x57, 0x46, 0x9d, 0x3e, 0x15, 0x46, 0x46, 0x21, + 0x7e, 0x2b, 0x09, 0xb1, 0x3e, 0x28, 0x6a, 0x2e, 0xf7, 0x7b, 0xa5, 0x85, 0x21, 0x22, 0x1e, 0x06, + 0x44, 0x7b, 0x90, 0x76, 0x6d, 0x8b, 0x1a, 0x33, 0x0a, 0xb8, 0x52, 0x39, 0xef, 0x32, 0x56, 0xf6, + 0x6d, 0x2b, 0x3c, 0x73, 0x33, 0xdb, 0xef, 0x95, 0xd2, 0x92, 0x82, 0x15, 0x0a, 0x3a, 0x84, 0x19, + 0x9b, 0x29, 0xbc, 0x59, 0x85, 0xf7, 0xee, 0xf9, 0x78, 0xbb, 0x07, 0x03, 0x88, 0xd0, 0xef, 0x95, + 0x66, 0x7c, 0x1a, 0xd6, 0x58, 0x68, 0x0f, 0x66, 0xa9, 0x7b, 0x76, 0xdf, 0x63, 0x2d, 0x23, 0xbb, + 0x31, 0x7d, 0x3d, 0x7f, 0xeb, 0xed, 0xa4, 0xfd, 0xef, 0xf8, 0x22, 0x75, 0x75, 0x67, 0xcc, 0x05, + 0x7d, 0xa1, 0x66, 0x35, 0x19, 0x07, 0x10, 0xe8, 0x7d, 0x98, 0xa6, 0xee, 0x99, 0x91, 0x53, 0x48, + 0x6b, 0x63, 0x90, 0x3e, 0x25, 0x9e, 0x99, 0xd7, 0x10, 0xd3, 0x3b, 0xee, 0x19, 0x96, 0x3a, 0xe5, + 0x5f, 0x40, 0x61, 0xd0, 0x5d, 0x54, 0x82, 0x8c, 0xe5, 0x10, 0xee, 0x5f, 0xf8, 0x8c, 0x99, 0xeb, + 0xf7, 0x4a, 0x99, 0xaa, 0x24, 0x60, 0x9f, 0x8e, 0xbe, 0x0b, 0x39, 0xf5, 0xe3, 0x1e, 0x11, 0x44, + 0x5d, 0xdb, 0x8c, 0x7f, 0xe0, 0xd5, 0x80, 0x88, 0x23, 0x7e, 0xf9, 0x2e, 0xcc, 0x0d, 0xa0, 0x57, + 0x00, 0x48, 0xe3, 0x71, 0x87, 0x0b, 0xf9, 0x48, 0xb4, 0x89, 0x42, 0xbf, 0x57, 0x82, 0xed, 0x90, + 0x8a, 0x63, 0x12, 0xe5, 0x7f, 0x4e, 0x01, 0x1c, 0x1c, 0x3d, 0xa6, 0x96, 0x78, 0x44, 0x05, 0x41, + 0x9f, 0xc1, 0x8c, 0x43, 0x8e, 0xa8, 0x23, 0xbd, 0x93, 0x9b, 0xbd, 0x73, 0xfe, 0x69, 0x44, 0xda, + 0x95, 0x3d, 0xa5, 0xba, 0xe3, 0x0a, 0xaf, 0x6b, 0x16, 0x74, 0x28, 0x66, 0x7c, 0x22, 0xd6, 0xb8, + 0x48, 0x40, 0x9e, 0xb8, 0x2e, 0x13, 0x44, 0xd8, 0xcc, 0xe5, 0xc6, 0x94, 0x32, 0xf3, 0xfd, 0x4b, + 0x99, 0xd9, 0x8e, 0xf4, 0x7d, 0x5b, 0xcb, 0xda, 0x56, 0x3e, 0xc6, 0xc1, 0x71, 0x33, 0x6b, 0xef, + 0x43, 0x3e, 0xe6, 0x1c, 0x5a, 0x84, 0xe9, 0x53, 0xda, 0x55, 0xe1, 0xc9, 0x61, 0xf9, 0x13, 0x5d, + 0x85, 0xcc, 0x19, 0x71, 0x3a, 0x7e, 0x9e, 0xc8, 0x61, 0x7f, 0xf1, 0xc1, 0xd4, 0x9d, 0xd4, 0xda, + 0x5d, 0x58, 0x1c, 0x36, 0x78, 0x19, 0xfd, 0xf2, 0x8b, 0x34, 0x2c, 0xd5, 0x88, 0x27, 0x6c, 0xe2, + 0xc4, 0x02, 0xbd, 0x01, 0x69, 0x97, 0xb4, 0xa8, 0x0f, 0x61, 0xce, 0xe9, 0x0d, 0xa4, 0xf7, 0x49, + 0x4b, 0x3e, 0x0c, 0xd2, 0xa2, 0xe8, 0x0e, 0xcc, 0x05, 0xc9, 0x54, 0x52, 0x7d, 0x60, 0xf3, 0xaa, + 0x96, 0x9c, 0x7b, 0x10, 0xe3, 0xe1, 0x01, 0x49, 0xb4, 0x09, 0x39, 0x89, 0xc0, 0xdb, 0xc4, 0xf2, + 0x53, 0x54, 0x2e, 0x4a, 0x96, 0xfb, 0x01, 0x03, 0x47, 0x32, 0xa8, 0x19, 0x9e, 0x7a, 0x5a, 0x1d, + 0xc7, 0x47, 0xe7, 0x1f, 0xc7, 0xc8, 0x8e, 0x2e, 0x74, 0xf8, 0xbf, 0x1e, 0x3c, 0xfc, 0x8c, 0xb2, + 0x76, 0x6f, 0x12, 0x6b, 0x97, 0xbf, 0x03, 0xe8, 0x09, 0x2c, 0xb0, 0x27, 0xb2, 0x0a, 0xd1, 0x63, + 0xea, 0x51, 0x57, 0xd6, 0x9c, 0x19, 0xe5, 0xc0, 0xed, 0xd8, 0x8b, 0x0e, 0x4b, 0x5b, 0xa5, 0x7d, + 0xda, 0x94, 0x04, 0x5e, 0x91, 0xa5, 0x4d, 0xdd, 0xc0, 0x01, 0x65, 0xf3, 0x2d, 0x6d, 0x70, 0x61, + 0x90, 0xce, 0xf1, 0xb0, 0x95, 0xff, 0xe7, 0xe5, 0xfb, 0xf3, 0x14, 0xac, 0xd4, 0xa8, 0xc7, 0x6d, + 0x2e, 0xa8, 0x2b, 0x3e, 0x65, 0x4e, 0xa7, 0x45, 0xab, 0x0e, 0xb1, 0x5b, 0xe8, 0x31, 0x64, 0xe5, + 0xc6, 0x1a, 0x32, 0xc9, 0xf8, 0xa5, 0xf7, 0xbd, 0x09, 0xce, 0xc1, 0x5c, 0xd5, 0x51, 0x18, 0xbd, + 0xe2, 0x38, 0xc4, 0x47, 0x07, 0x90, 0xe6, 0x6d, 0x6a, 0xe9, 0x1a, 0x7c, 0x33, 0xb1, 0x5c, 0x26, + 0x39, 0x59, 0x6f, 0x53, 0x2b, 0x7a, 0x1b, 0x72, 0x85, 0x15, 0x10, 0xfa, 0x11, 0xcc, 0x70, 0x41, + 0x44, 0x87, 0xeb, 0x0a, 0xbc, 0x79, 0x71, 0x48, 0xa5, 0x16, 0x5d, 0x50, 0x7f, 0x8d, 0x35, 0x5c, + 0xf9, 0x2f, 0x05, 0x40, 0x35, 0xd6, 0x18, 0x6e, 0x54, 0x7e, 0x97, 0x82, 0x42, 0x9b, 0x35, 0x62, + 0x47, 0xa1, 0xf3, 0xe3, 0xc3, 0x0b, 0xc4, 0x6c, 0x04, 0x4e, 0x92, 0x46, 0xee, 0xef, 0x35, 0xed, + 0x51, 0x61, 0x90, 0x89, 0x87, 0xec, 0xa2, 0x2f, 0x52, 0x30, 0xe7, 0xb2, 0x06, 0xad, 0x53, 0x87, + 0x5a, 0x82, 0x79, 0x3a, 0x83, 0xde, 0x9f, 0xc8, 0x91, 0xfd, 0x18, 0x90, 0xef, 0x46, 0x98, 0x5f, + 0xe2, 0x2c, 0x3c, 0x60, 0x11, 0x7d, 0x0c, 0x88, 0x53, 0xef, 0xcc, 0xb6, 0xe8, 0xb6, 0x65, 0xb1, + 0x8e, 0x2b, 0x54, 0x7e, 0xf2, 0x13, 0xcd, 0x9a, 0xd6, 0x47, 0xf5, 0x11, 0x09, 0x9c, 0xa0, 0x85, + 0xfe, 0x9a, 0x82, 0xd5, 0x41, 0x72, 0x3c, 0xc8, 0x7e, 0x3a, 0xaa, 0x4f, 0xb4, 0xb7, 0xfa, 0x38, + 0x54, 0x7f, 0xa3, 0x6f, 0x6b, 0x47, 0x57, 0xc7, 0xca, 0xe1, 0xf1, 0x8e, 0xa1, 0x06, 0xac, 0x93, + 0x8e, 0x60, 0x2d, 0x49, 0x1f, 0x04, 0x38, 0x64, 0xa7, 0xd4, 0x55, 0x4d, 0x57, 0xd6, 0xdc, 0xe8, + 0xf7, 0x4a, 0xeb, 0xdb, 0x2f, 0x91, 0xc3, 0x2f, 0x45, 0x41, 0x37, 0x20, 0x2b, 0x03, 0xaf, 0xc2, + 0x3b, 0xa3, 0xc2, 0xbb, 0xa8, 0xbd, 0xce, 0xee, 0x6b, 0x3a, 0x0e, 0x25, 0x10, 0x1d, 0xed, 0xfd, + 0xfc, 0x96, 0xea, 0x3b, 0x89, 0xaf, 0x83, 0x35, 0x26, 0x6b, 0xff, 0x5c, 0x58, 0xb4, 0x5b, 0xa4, + 0x49, 0x6b, 0x1d, 0xc7, 0xa9, 0x53, 0xcb, 0xa3, 0x82, 0xeb, 0x1e, 0x2b, 0xb1, 0x77, 0xdf, 0x63, + 0x56, 0x90, 0x15, 0xa2, 0xdc, 0x69, 0xe8, 0x6d, 0x2c, 0xee, 0x0e, 0x21, 0xe1, 0x11, 0x6c, 0x74, + 0x1f, 0xb2, 0xe4, 0xf8, 0xd8, 0x76, 0x6d, 0xd1, 0x35, 0x72, 0x6a, 0x3f, 0xeb, 0x49, 0x76, 0xb6, + 0xb5, 0x8c, 0x39, 0x27, 0xc3, 0x13, 0xac, 0x70, 0xa8, 0x8b, 0x3e, 0x84, 0x79, 0x6e, 0x9d, 0x50, + 0x79, 0x8f, 0x3c, 0x15, 0x51, 0x50, 0x11, 0x5d, 0xd1, 0xae, 0xcc, 0xd7, 0xe3, 0x4c, 0x3c, 0x28, + 0x8b, 0x3e, 0x81, 0xbc, 0x60, 0x8e, 0x2c, 0xb1, 0xea, 0x5e, 0xe6, 0xd5, 0x7e, 0x8b, 0x49, 0x7e, + 0x1c, 0x86, 0x62, 0x51, 0x49, 0x8a, 0x68, 0x1c, 0xc7, 0x71, 0xd0, 0x03, 0x58, 0x6a, 0x7b, 0x36, + 0x53, 0xe1, 0x95, 0x2d, 0x9d, 0xf2, 0x6b, 0x4e, 0xf9, 0x15, 0x25, 0xd6, 0x61, 0x01, 0x3c, 0xaa, + 0x83, 0xae, 0x43, 0x36, 0x20, 0x1a, 0xf3, 0xaa, 0xe9, 0x53, 0x61, 0x08, 0x74, 0x71, 0xc8, 0x45, + 0x8d, 0xd8, 0x47, 0xcc, 0x03, 0x22, 0x28, 0x37, 0x0a, 0x6a, 0x33, 0xdf, 0x1e, 0x73, 0x49, 0x70, + 0x5c, 0x38, 0xca, 0x52, 0x03, 0x64, 0x8e, 0x87, 0x30, 0xd1, 0x0f, 0x60, 0xd1, 0xf3, 0xdf, 0x63, + 0xb4, 0xaf, 0x05, 0xbf, 0x81, 0x91, 0xc7, 0x8e, 0x87, 0x78, 0x78, 0x44, 0x1a, 0xdd, 0x07, 0x44, + 0x5d, 0x72, 0xe4, 0x50, 0xfd, 0x30, 0xf6, 0x6c, 0xf7, 0x94, 0x1b, 0x8b, 0xea, 0x5d, 0x5d, 0x93, + 0x09, 0x66, 0x67, 0x84, 0x8b, 0x13, 0x34, 0xd0, 0x1f, 0x52, 0xb0, 0x2a, 0x58, 0x9b, 0x39, 0xac, + 0xd9, 0xad, 0xb7, 0xa5, 0x9b, 0x55, 0xe6, 0x72, 0xe1, 0x11, 0xdb, 0x15, 0xdc, 0x58, 0x52, 0x7b, + 0xbf, 0x91, 0x7c, 0x90, 0xc9, 0x4a, 0x51, 0xe6, 0x18, 0x27, 0xc1, 0xf1, 0x78, 0x8b, 0x6b, 0xdb, + 0xb0, 0x9c, 0x90, 0xfe, 0x2f, 0xd5, 0x14, 0x7c, 0x04, 0x4b, 0x23, 0x89, 0xfb, 0x52, 0x00, 0x7b, + 0x50, 0x7c, 0x79, 0x76, 0xbc, 0x54, 0x8f, 0xf1, 0xf7, 0x05, 0x98, 0x95, 0xd9, 0x44, 0x16, 0xe6, + 0xe4, 0xd2, 0x90, 0x9a, 0xa8, 0x34, 0x74, 0x12, 0x0b, 0xdd, 0x87, 0x17, 0x2a, 0x06, 0xd2, 0x99, + 0x09, 0xab, 0x5b, 0x3c, 0xdf, 0x4c, 0xbf, 0xce, 0x7c, 0x93, 0x9e, 0x3c, 0xdf, 0x64, 0x5e, 0x53, + 0xbe, 0x49, 0xca, 0xdd, 0x33, 0x6f, 0x30, 0x77, 0x27, 0xe6, 0xb7, 0xd9, 0x57, 0xcc, 0x6f, 0xd9, + 0x97, 0xe6, 0xb7, 0xef, 0x41, 0xfe, 0x84, 0x71, 0xb1, 0x4f, 0xc5, 0x13, 0xe6, 0x9d, 0xaa, 0x8a, + 0x91, 0x8d, 0x22, 0xf3, 0x30, 0x62, 0xe1, 0xb8, 0x1c, 0x7a, 0x07, 0x66, 0xe5, 0xb2, 0xb6, 0x7b, + 0x4f, 0xd5, 0x85, 0x6c, 0x34, 0x0d, 0x78, 0xe8, 0x93, 0x71, 0xc0, 0x0f, 0x44, 0x77, 0x6b, 0x55, + 0x23, 0x3f, 0x2a, 0xba, 0x5b, 0xab, 0xe2, 0x80, 0x8f, 0x0e, 0x60, 0x85, 0x9f, 0x10, 0x8f, 0xd6, + 0x3c, 0x66, 0x51, 0x7f, 0x2b, 0xfe, 0x57, 0xd9, 0x9c, 0x52, 0x5c, 0xed, 0xf7, 0x4a, 0x2b, 0xf5, + 0x24, 0x01, 0x9c, 0xac, 0x97, 0x54, 0xe3, 0xe7, 0xdf, 0x40, 0x8d, 0x3f, 0x80, 0x5c, 0xc3, 0xe5, + 0x35, 0xe6, 0xd8, 0x56, 0xd7, 0x28, 0xa8, 0xf3, 0xda, 0x0a, 0xbe, 0x20, 0xef, 0xed, 0xd7, 0x7d, + 0xc6, 0x8b, 0x5e, 0x69, 0x7d, 0x74, 0x6e, 0x58, 0x09, 0xf9, 0x38, 0xc2, 0x40, 0x8f, 0x14, 0x60, + 0x95, 0xb9, 0xc7, 0x76, 0x53, 0x15, 0x82, 0xfc, 0xad, 0x8d, 0x31, 0x1e, 0xdf, 0xdb, 0xaf, 0xfb, + 0x72, 0xfe, 0xd4, 0x23, 0x5c, 0xe2, 0x08, 0x01, 0xfd, 0x1c, 0x0a, 0xf2, 0x91, 0x85, 0x83, 0x45, + 0x59, 0x18, 0xa6, 0xc7, 0xcd, 0xcd, 0x42, 0xa9, 0xa8, 0x7a, 0xed, 0x0e, 0x28, 0xe3, 0x21, 0x30, + 0xb4, 0x0e, 0x69, 0xe2, 0x35, 0xfd, 0xea, 0x90, 0xf3, 0x27, 0x56, 0xdb, 0x5e, 0x93, 0x63, 0x45, + 0x0d, 0xa6, 0x41, 0xe8, 0xf2, 0xd3, 0xa0, 0xc1, 0x81, 0xe7, 0xf2, 0x9b, 0x1d, 0x78, 0x5e, 0x7d, + 0x13, 0x03, 0xcf, 0x95, 0xd7, 0x3e, 0xf0, 0xbc, 0xf6, 0x6a, 0x03, 0xcf, 0xdf, 0x80, 0x61, 0x05, + 0x07, 0x37, 0x74, 0xad, 0x8d, 0xb7, 0x2e, 0x3e, 0xf9, 0x5c, 0xef, 0xf7, 0x4a, 0xd1, 0x9c, 0x7a, + 0xf8, 0x7d, 0x8c, 0x35, 0x71, 0x4e, 0x77, 0x61, 0x7c, 0xed, 0xdd, 0xc5, 0xab, 0xb6, 0x06, 0xe5, + 0x3f, 0x4d, 0xc1, 0x42, 0x8d, 0x35, 0x0e, 0x69, 0xab, 0xed, 0x10, 0x41, 0x55, 0x51, 0xff, 0xd9, + 0xc8, 0xa8, 0xe0, 0xc6, 0x65, 0xe6, 0x75, 0x26, 0xd2, 0x5b, 0x82, 0xc4, 0xe1, 0xc0, 0x67, 0x00, + 0x32, 0xbc, 0x1e, 0x73, 0x1c, 0xea, 0xe9, 0x11, 0xc1, 0x84, 0xf8, 0xd5, 0x10, 0x07, 0xc7, 0x30, + 0xd1, 0x0f, 0xf5, 0xf8, 0xc1, 0xaf, 0xe6, 0xef, 0x5c, 0xb8, 0x81, 0x48, 0x1a, 0x3d, 0x94, 0xff, + 0x91, 0x82, 0x85, 0xe1, 0xf1, 0xc0, 0x01, 0x4c, 0xb7, 0x59, 0x43, 0xc7, 0xe6, 0xf6, 0x24, 0x5f, + 0xab, 0xe6, 0xac, 0xcc, 0x13, 0x92, 0x2e, 0x91, 0x50, 0x13, 0x72, 0xe1, 0x95, 0xd3, 0x21, 0xf9, + 0xe0, 0x7c, 0xd8, 0x71, 0xff, 0x67, 0xd1, 0xe3, 0xe3, 0x90, 0x1b, 0x61, 0x97, 0x7f, 0x0b, 0x79, + 0xdd, 0x8d, 0xd5, 0x98, 0x27, 0x2e, 0x30, 0x95, 0xdc, 0x80, 0x74, 0x9b, 0x79, 0x42, 0xcf, 0xa5, + 0x43, 0x09, 0xa9, 0x8d, 0x15, 0x27, 0xf8, 0x68, 0x95, 0x14, 0x15, 0xf1, 0xcc, 0xe0, 0x47, 0xab, + 0x92, 0x0c, 0x25, 0xca, 0xff, 0xc9, 0x84, 0x1e, 0xa8, 0xbb, 0x86, 0x21, 0x23, 0x51, 0x82, 0xf9, + 0xca, 0xcd, 0xf3, 0x77, 0x1d, 0xf3, 0xdf, 0x9c, 0xd7, 0x96, 0x32, 0x72, 0xc5, 0xb1, 0x0f, 0x85, + 0x36, 0x21, 0x67, 0x39, 0x1d, 0x2e, 0xa8, 0xb7, 0x5b, 0xd3, 0x63, 0xd4, 0x30, 0x97, 0x56, 0x03, + 0x06, 0x8e, 0x64, 0x90, 0x09, 0x69, 0xd1, 0x6d, 0x07, 0x23, 0x8d, 0x4a, 0xb0, 0xc9, 0xc3, 0x6e, + 0x9b, 0xbe, 0xe8, 0x95, 0x8a, 0x09, 0x45, 0x4f, 0x3b, 0x21, 0x25, 0xb0, 0xd2, 0x45, 0x5b, 0x90, + 0xa7, 0x4f, 0x05, 0xf5, 0x5c, 0xe2, 0xec, 0xd6, 0xfc, 0x49, 0x46, 0xce, 0x5c, 0x90, 0x3d, 0xc8, + 0x4e, 0x44, 0xc6, 0x71, 0x19, 0x74, 0x17, 0x0a, 0x0e, 0x23, 0x0d, 0x93, 0x38, 0xc4, 0xb5, 0x94, + 0xb3, 0x19, 0xe5, 0x40, 0x58, 0xb6, 0xf6, 0x06, 0xb8, 0x78, 0x48, 0x1a, 0xfd, 0x18, 0x8c, 0x38, + 0xc5, 0xff, 0xb7, 0x06, 0x26, 0x6e, 0x53, 0x4f, 0x3a, 0x73, 0x7e, 0x9a, 0xdb, 0x1b, 0x23, 0x83, + 0xc7, 0x6a, 0xa3, 0xdf, 0xa7, 0x60, 0x25, 0xf0, 0xf4, 0xd0, 0x93, 0x2d, 0xae, 0xa5, 0x9b, 0x03, + 0xbf, 0x99, 0x3b, 0xd4, 0x1e, 0xae, 0xec, 0x24, 0x09, 0xbd, 0xe8, 0x95, 0xde, 0x1b, 0x1f, 0xb3, + 0x44, 0x15, 0x15, 0xc8, 0x64, 0x93, 0xe8, 0x11, 0x2c, 0x9f, 0x50, 0xe2, 0x88, 0x93, 0xea, 0x09, + 0xb5, 0x4e, 0x83, 0x3b, 0xa5, 0xdb, 0xc2, 0x6f, 0x68, 0x4f, 0x96, 0x1f, 0x8e, 0x8a, 0xe0, 0x24, + 0x3d, 0xf4, 0x39, 0xac, 0x70, 0xca, 0xb9, 0xcd, 0xdc, 0xa0, 0x89, 0xd7, 0x6d, 0x4a, 0x2e, 0x48, + 0x17, 0x49, 0xe5, 0x23, 0x41, 0x41, 0xb7, 0x73, 0x49, 0x2c, 0x9c, 0x6c, 0xa2, 0xfc, 0xb7, 0x14, + 0x2c, 0x07, 0x57, 0xe7, 0xeb, 0xcb, 0xb8, 0x23, 0xe3, 0xd8, 0x0b, 0x3e, 0xb1, 0x71, 0x39, 0xd1, + 0xbc, 0xfe, 0xec, 0x79, 0xf1, 0xca, 0x97, 0xcf, 0x8b, 0x57, 0xbe, 0x7a, 0x5e, 0xbc, 0xf2, 0x45, + 0xbf, 0x98, 0x7a, 0xd6, 0x2f, 0xa6, 0xbe, 0xec, 0x17, 0x53, 0x5f, 0xf5, 0x8b, 0xa9, 0x7f, 0xf5, + 0x8b, 0xa9, 0x3f, 0xfe, 0xbb, 0x78, 0xe5, 0xa7, 0x53, 0x67, 0x5b, 0xff, 0x0b, 0x00, 0x00, 0xff, + 0xff, 0xd3, 0xb0, 0xf5, 0x35, 0xec, 0x1e, 0x00, 0x00, } func (m *ContainerRuntimeSettings) Marshal() (dAtA []byte, err error) { @@ -1013,54 +1016,20 @@ func (m *PodRuntimeSettings) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if len(m.ServiceAccountAnnotations) > 0 { - keysForServiceAccountAnnotations := make([]string, 0, len(m.ServiceAccountAnnotations)) - for k := range m.ServiceAccountAnnotations { - keysForServiceAccountAnnotations = append(keysForServiceAccountAnnotations, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForServiceAccountAnnotations) - for iNdEx := len(keysForServiceAccountAnnotations) - 1; iNdEx >= 0; iNdEx-- { - v := m.ServiceAccountAnnotations[string(keysForServiceAccountAnnotations[iNdEx])] - baseI := i - i -= len(v) - copy(dAtA[i:], v) - i = encodeVarintGenerated(dAtA, i, uint64(len(v))) - i-- - dAtA[i] = 0x12 - i -= len(keysForServiceAccountAnnotations[iNdEx]) - copy(dAtA[i:], keysForServiceAccountAnnotations[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(keysForServiceAccountAnnotations[iNdEx]))) - i-- - dAtA[i] = 0xa - i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) + if len(m.TopologySpreadConstraints) > 0 { + for iNdEx := len(m.TopologySpreadConstraints) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.TopologySpreadConstraints[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } i-- dAtA[i] = 0x1 i-- - dAtA[i] = 0x82 - } - } - if len(m.PodAnnotations) > 0 { - keysForPodAnnotations := make([]string, 0, len(m.PodAnnotations)) - for k := range m.PodAnnotations { - keysForPodAnnotations = append(keysForPodAnnotations, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForPodAnnotations) - for iNdEx := len(keysForPodAnnotations) - 1; iNdEx >= 0; iNdEx-- { - v := m.PodAnnotations[string(keysForPodAnnotations[iNdEx])] - baseI := i - i -= len(v) - copy(dAtA[i:], v) - i = encodeVarintGenerated(dAtA, i, uint64(len(v))) - i-- - dAtA[i] = 0x12 - i -= len(keysForPodAnnotations[iNdEx]) - copy(dAtA[i:], keysForPodAnnotations[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(keysForPodAnnotations[iNdEx]))) - i-- - dAtA[i] = 0xa - i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) - i-- - dAtA[i] = 0x7a + dAtA[i] = 0x8a } } if m.EnableServiceLinks != nil { @@ -1071,14 +1040,16 @@ func (m *PodRuntimeSettings) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0 } i-- - dAtA[i] = 0x70 + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x80 } if m.RuntimeClassName != nil { i -= len(*m.RuntimeClassName) copy(dAtA[i:], *m.RuntimeClassName) i = encodeVarintGenerated(dAtA, i, uint64(len(*m.RuntimeClassName))) i-- - dAtA[i] = 0x6a + dAtA[i] = 0x7a } if len(m.ReadinessGates) > 0 { for iNdEx := len(m.ReadinessGates) - 1; iNdEx >= 0; iNdEx-- { @@ -1091,19 +1062,19 @@ func (m *PodRuntimeSettings) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintGenerated(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x62 + dAtA[i] = 0x72 } } if m.Priority != nil { i = encodeVarintGenerated(dAtA, i, uint64(*m.Priority)) i-- - dAtA[i] = 0x58 + dAtA[i] = 0x68 } i -= len(m.PriorityClassName) copy(dAtA[i:], m.PriorityClassName) i = encodeVarintGenerated(dAtA, i, uint64(len(m.PriorityClassName))) i-- - dAtA[i] = 0x52 + dAtA[i] = 0x62 if len(m.Tolerations) > 0 { for iNdEx := len(m.Tolerations) - 1; iNdEx >= 0; iNdEx-- { { @@ -1115,14 +1086,14 @@ func (m *PodRuntimeSettings) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintGenerated(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x4a + dAtA[i] = 0x5a } } i -= len(m.SchedulerName) copy(dAtA[i:], m.SchedulerName) i = encodeVarintGenerated(dAtA, i, uint64(len(m.SchedulerName))) i-- - dAtA[i] = 0x42 + dAtA[i] = 0x52 if m.Affinity != nil { { size, err := m.Affinity.MarshalToSizedBuffer(dAtA[:i]) @@ -1133,7 +1104,7 @@ func (m *PodRuntimeSettings) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintGenerated(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x3a + dAtA[i] = 0x4a } if len(m.ImagePullSecrets) > 0 { for iNdEx := len(m.ImagePullSecrets) - 1; iNdEx >= 0; iNdEx-- { @@ -1146,7 +1117,7 @@ func (m *PodRuntimeSettings) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintGenerated(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x32 + dAtA[i] = 0x42 } } if m.SecurityContext != nil { @@ -1159,13 +1130,13 @@ func (m *PodRuntimeSettings) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintGenerated(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x2a + dAtA[i] = 0x3a } i -= len(m.NodeName) copy(dAtA[i:], m.NodeName) i = encodeVarintGenerated(dAtA, i, uint64(len(m.NodeName))) i-- - dAtA[i] = 0x22 + dAtA[i] = 0x32 if m.AutomountServiceAccountToken != nil { i-- if *m.AutomountServiceAccountToken { @@ -1174,13 +1145,37 @@ func (m *PodRuntimeSettings) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0 } i-- - dAtA[i] = 0x18 + dAtA[i] = 0x28 + } + if len(m.ServiceAccountAnnotations) > 0 { + keysForServiceAccountAnnotations := make([]string, 0, len(m.ServiceAccountAnnotations)) + for k := range m.ServiceAccountAnnotations { + keysForServiceAccountAnnotations = append(keysForServiceAccountAnnotations, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForServiceAccountAnnotations) + for iNdEx := len(keysForServiceAccountAnnotations) - 1; iNdEx >= 0; iNdEx-- { + v := m.ServiceAccountAnnotations[string(keysForServiceAccountAnnotations[iNdEx])] + baseI := i + i -= len(v) + copy(dAtA[i:], v) + i = encodeVarintGenerated(dAtA, i, uint64(len(v))) + i-- + dAtA[i] = 0x12 + i -= len(keysForServiceAccountAnnotations[iNdEx]) + copy(dAtA[i:], keysForServiceAccountAnnotations[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(keysForServiceAccountAnnotations[iNdEx]))) + i-- + dAtA[i] = 0xa + i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0x22 + } } i -= len(m.ServiceAccountName) copy(dAtA[i:], m.ServiceAccountName) i = encodeVarintGenerated(dAtA, i, uint64(len(m.ServiceAccountName))) i-- - dAtA[i] = 0x12 + dAtA[i] = 0x1a if len(m.NodeSelector) > 0 { keysForNodeSelector := make([]string, 0, len(m.NodeSelector)) for k := range m.NodeSelector { @@ -1202,6 +1197,30 @@ func (m *PodRuntimeSettings) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0xa i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) i-- + dAtA[i] = 0x12 + } + } + if len(m.PodAnnotations) > 0 { + keysForPodAnnotations := make([]string, 0, len(m.PodAnnotations)) + for k := range m.PodAnnotations { + keysForPodAnnotations = append(keysForPodAnnotations, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForPodAnnotations) + for iNdEx := len(keysForPodAnnotations) - 1; iNdEx >= 0; iNdEx-- { + v := m.PodAnnotations[string(keysForPodAnnotations[iNdEx])] + baseI := i + i -= len(v) + copy(dAtA[i:], v) + i = encodeVarintGenerated(dAtA, i, uint64(len(v))) + i-- + dAtA[i] = 0x12 + i -= len(keysForPodAnnotations[iNdEx]) + copy(dAtA[i:], keysForPodAnnotations[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(keysForPodAnnotations[iNdEx]))) + i-- + dAtA[i] = 0xa + i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) + i-- dAtA[i] = 0xa } } @@ -1228,6 +1247,22 @@ func (m *PodSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.TopologySpreadConstraints) > 0 { + for iNdEx := len(m.TopologySpreadConstraints) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.TopologySpreadConstraints[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xc2 + } + } if m.ContainerSecurityContext != nil { { size, err := m.ContainerSecurityContext.MarshalToSizedBuffer(dAtA[:i]) @@ -1924,6 +1959,14 @@ func (m *PodRuntimeSettings) Size() (n int) { } var l int _ = l + if len(m.PodAnnotations) > 0 { + for k, v := range m.PodAnnotations { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } if len(m.NodeSelector) > 0 { for k, v := range m.NodeSelector { _ = k @@ -1934,6 +1977,14 @@ func (m *PodRuntimeSettings) Size() (n int) { } l = len(m.ServiceAccountName) n += 1 + l + sovGenerated(uint64(l)) + if len(m.ServiceAccountAnnotations) > 0 { + for k, v := range m.ServiceAccountAnnotations { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } if m.AutomountServiceAccountToken != nil { n += 2 } @@ -1977,22 +2028,12 @@ func (m *PodRuntimeSettings) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) } if m.EnableServiceLinks != nil { - n += 2 - } - if len(m.PodAnnotations) > 0 { - for k, v := range m.PodAnnotations { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) - n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) - } + n += 3 } - if len(m.ServiceAccountAnnotations) > 0 { - for k, v := range m.ServiceAccountAnnotations { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) - n += mapEntrySize + 2 + sovGenerated(uint64(mapEntrySize)) + if len(m.TopologySpreadConstraints) > 0 { + for _, e := range m.TopologySpreadConstraints { + l = e.Size() + n += 2 + l + sovGenerated(uint64(l)) } } return n @@ -2089,6 +2130,12 @@ func (m *PodSpec) Size() (n int) { l = m.ContainerSecurityContext.Size() n += 2 + l + sovGenerated(uint64(l)) } + if len(m.TopologySpreadConstraints) > 0 { + for _, e := range m.TopologySpreadConstraints { + l = e.Size() + n += 2 + l + sovGenerated(uint64(l)) + } + } return n } @@ -2347,16 +2394,11 @@ func (this *PodRuntimeSettings) String() string { repeatedStringForReadinessGates += fmt.Sprintf("%v", f) + "," } repeatedStringForReadinessGates += "}" - keysForNodeSelector := make([]string, 0, len(this.NodeSelector)) - for k := range this.NodeSelector { - keysForNodeSelector = append(keysForNodeSelector, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForNodeSelector) - mapStringForNodeSelector := "map[string]string{" - for _, k := range keysForNodeSelector { - mapStringForNodeSelector += fmt.Sprintf("%v: %v,", k, this.NodeSelector[k]) + repeatedStringForTopologySpreadConstraints := "[]TopologySpreadConstraint{" + for _, f := range this.TopologySpreadConstraints { + repeatedStringForTopologySpreadConstraints += fmt.Sprintf("%v", f) + "," } - mapStringForNodeSelector += "}" + repeatedStringForTopologySpreadConstraints += "}" keysForPodAnnotations := make([]string, 0, len(this.PodAnnotations)) for k := range this.PodAnnotations { keysForPodAnnotations = append(keysForPodAnnotations, k) @@ -2367,6 +2409,16 @@ func (this *PodRuntimeSettings) String() string { mapStringForPodAnnotations += fmt.Sprintf("%v: %v,", k, this.PodAnnotations[k]) } mapStringForPodAnnotations += "}" + keysForNodeSelector := make([]string, 0, len(this.NodeSelector)) + for k := range this.NodeSelector { + keysForNodeSelector = append(keysForNodeSelector, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForNodeSelector) + mapStringForNodeSelector := "map[string]string{" + for _, k := range keysForNodeSelector { + mapStringForNodeSelector += fmt.Sprintf("%v: %v,", k, this.NodeSelector[k]) + } + mapStringForNodeSelector += "}" keysForServiceAccountAnnotations := make([]string, 0, len(this.ServiceAccountAnnotations)) for k := range this.ServiceAccountAnnotations { keysForServiceAccountAnnotations = append(keysForServiceAccountAnnotations, k) @@ -2378,8 +2430,10 @@ func (this *PodRuntimeSettings) String() string { } mapStringForServiceAccountAnnotations += "}" s := strings.Join([]string{`&PodRuntimeSettings{`, + `PodAnnotations:` + mapStringForPodAnnotations + `,`, `NodeSelector:` + mapStringForNodeSelector + `,`, `ServiceAccountName:` + fmt.Sprintf("%v", this.ServiceAccountName) + `,`, + `ServiceAccountAnnotations:` + mapStringForServiceAccountAnnotations + `,`, `AutomountServiceAccountToken:` + valueToStringGenerated(this.AutomountServiceAccountToken) + `,`, `NodeName:` + fmt.Sprintf("%v", this.NodeName) + `,`, `SecurityContext:` + strings.Replace(fmt.Sprintf("%v", this.SecurityContext), "PodSecurityContext", "v1.PodSecurityContext", 1) + `,`, @@ -2392,8 +2446,7 @@ func (this *PodRuntimeSettings) String() string { `ReadinessGates:` + repeatedStringForReadinessGates + `,`, `RuntimeClassName:` + valueToStringGenerated(this.RuntimeClassName) + `,`, `EnableServiceLinks:` + valueToStringGenerated(this.EnableServiceLinks) + `,`, - `PodAnnotations:` + mapStringForPodAnnotations + `,`, - `ServiceAccountAnnotations:` + mapStringForServiceAccountAnnotations + `,`, + `TopologySpreadConstraints:` + repeatedStringForTopologySpreadConstraints + `,`, `}`, }, "") return s @@ -2422,6 +2475,11 @@ func (this *PodSpec) String() string { repeatedStringForEnv += fmt.Sprintf("%v", f) + "," } repeatedStringForEnv += "}" + repeatedStringForTopologySpreadConstraints := "[]TopologySpreadConstraint{" + for _, f := range this.TopologySpreadConstraints { + repeatedStringForTopologySpreadConstraints += fmt.Sprintf("%v", f) + "," + } + repeatedStringForTopologySpreadConstraints += "}" keysForNodeSelector := make([]string, 0, len(this.NodeSelector)) for k := range this.NodeSelector { keysForNodeSelector = append(keysForNodeSelector, k) @@ -2456,6 +2514,7 @@ func (this *PodSpec) String() string { `ReadinessProbe:` + strings.Replace(fmt.Sprintf("%v", this.ReadinessProbe), "Probe", "v1.Probe", 1) + `,`, `Lifecycle:` + strings.Replace(fmt.Sprintf("%v", this.Lifecycle), "Lifecycle", "v1.Lifecycle", 1) + `,`, `ContainerSecurityContext:` + strings.Replace(fmt.Sprintf("%v", this.ContainerSecurityContext), "SecurityContext", "v1.SecurityContext", 1) + `,`, + `TopologySpreadConstraints:` + repeatedStringForTopologySpreadConstraints + `,`, `}`, }, "") return s @@ -3982,7 +4041,7 @@ func (m *PodRuntimeSettings) Unmarshal(dAtA []byte) error { switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NodeSelector", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PodAnnotations", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -4009,8 +4068,8 @@ func (m *PodRuntimeSettings) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.NodeSelector == nil { - m.NodeSelector = make(map[string]string) + if m.PodAnnotations == nil { + m.PodAnnotations = make(map[string]string) } var mapkey string var mapvalue string @@ -4105,13 +4164,13 @@ func (m *PodRuntimeSettings) Unmarshal(dAtA []byte) error { iNdEx += skippy } } - m.NodeSelector[mapkey] = mapvalue + m.PodAnnotations[mapkey] = mapvalue iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ServiceAccountName", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field NodeSelector", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -4121,53 +4180,127 @@ func (m *PodRuntimeSettings) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.ServiceAccountName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field AutomountServiceAccountToken", wireType) + if m.NodeSelector == nil { + m.NodeSelector = make(map[string]string) } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } } - } - b := bool(v != 0) - m.AutomountServiceAccountToken = &b - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NodeName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.NodeSelector[mapkey] = mapvalue + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ServiceAccountName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -4190,9 +4323,189 @@ func (m *PodRuntimeSettings) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.NodeName = string(dAtA[iNdEx:postIndex]) + m.ServiceAccountName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ServiceAccountAnnotations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ServiceAccountAnnotations == nil { + m.ServiceAccountAnnotations = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.ServiceAccountAnnotations[mapkey] = mapvalue iNdEx = postIndex case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AutomountServiceAccountToken", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.AutomountServiceAccountToken = &b + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NodeName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NodeName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field SecurityContext", wireType) } @@ -4228,7 +4541,7 @@ func (m *PodRuntimeSettings) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 6: + case 8: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field ImagePullSecrets", wireType) } @@ -4262,7 +4575,7 @@ func (m *PodRuntimeSettings) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 7: + case 9: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Affinity", wireType) } @@ -4298,7 +4611,7 @@ func (m *PodRuntimeSettings) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 8: + case 10: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field SchedulerName", wireType) } @@ -4330,7 +4643,7 @@ func (m *PodRuntimeSettings) Unmarshal(dAtA []byte) error { } m.SchedulerName = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 9: + case 11: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Tolerations", wireType) } @@ -4364,7 +4677,7 @@ func (m *PodRuntimeSettings) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 10: + case 12: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field PriorityClassName", wireType) } @@ -4396,7 +4709,7 @@ func (m *PodRuntimeSettings) Unmarshal(dAtA []byte) error { } m.PriorityClassName = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 11: + case 13: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Priority", wireType) } @@ -4416,7 +4729,7 @@ func (m *PodRuntimeSettings) Unmarshal(dAtA []byte) error { } } m.Priority = &v - case 12: + case 14: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field ReadinessGates", wireType) } @@ -4449,66 +4762,12 @@ func (m *PodRuntimeSettings) Unmarshal(dAtA []byte) error { if err := m.ReadinessGates[len(m.ReadinessGates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - iNdEx = postIndex - case 13: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuntimeClassName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.RuntimeClassName = &s - iNdEx = postIndex - case 14: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field EnableServiceLinks", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.EnableServiceLinks = &b + iNdEx = postIndex case 15: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PodAnnotations", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuntimeClassName", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -4518,122 +4777,49 @@ func (m *PodRuntimeSettings) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - if m.PodAnnotations == nil { - m.PodAnnotations = make(map[string]string) + s := string(dAtA[iNdEx:postIndex]) + m.RuntimeClassName = &s + iNdEx = postIndex + case 16: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EnableServiceLinks", wireType) } - var mapkey string - var mapvalue string - for iNdEx < postIndex { - entryPreIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated } - fieldNum := int32(wire >> 3) - if fieldNum == 1 { - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - } else if fieldNum == 2 { - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - } else { - iNdEx = entryPreIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > postIndex { - return io.ErrUnexpectedEOF - } - iNdEx += skippy + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break } } - m.PodAnnotations[mapkey] = mapvalue - iNdEx = postIndex - case 16: + b := bool(v != 0) + m.EnableServiceLinks = &b + case 17: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ServiceAccountAnnotations", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TopologySpreadConstraints", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -4660,103 +4846,10 @@ func (m *PodRuntimeSettings) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.ServiceAccountAnnotations == nil { - m.ServiceAccountAnnotations = make(map[string]string) - } - var mapkey string - var mapvalue string - for iNdEx < postIndex { - entryPreIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - if fieldNum == 1 { - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - } else if fieldNum == 2 { - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - } else { - iNdEx = entryPreIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > postIndex { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } + m.TopologySpreadConstraints = append(m.TopologySpreadConstraints, v1.TopologySpreadConstraint{}) + if err := m.TopologySpreadConstraints[len(m.TopologySpreadConstraints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - m.ServiceAccountAnnotations[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex @@ -5617,6 +5710,40 @@ func (m *PodSpec) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 24: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TopologySpreadConstraints", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TopologySpreadConstraints = append(m.TopologySpreadConstraints, v1.TopologySpreadConstraint{}) + if err := m.TopologySpreadConstraints[len(m.TopologySpreadConstraints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) diff --git a/vendor/kmodules.xyz/offshoot-api/api/v1/generated.proto b/vendor/kmodules.xyz/offshoot-api/api/v1/generated.proto index a20973a6f..ad7e415a6 100644 --- a/vendor/kmodules.xyz/offshoot-api/api/v1/generated.proto +++ b/vendor/kmodules.xyz/offshoot-api/api/v1/generated.proto @@ -205,58 +205,58 @@ message PersistentVolumeClaim { message PodRuntimeSettings { // PodAnnotations are the annotations that will be attached with the respective Pod // +optional - map podAnnotations = 15; + map podAnnotations = 1; // 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/ // +optional - map nodeSelector = 1; + map nodeSelector = 2; // 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/ // +optional - optional string serviceAccountName = 2; + optional string serviceAccountName = 3; // ServiceAccountAnnotations are the annotations that will be attached with the respective ServiceAccount // +optional - map serviceAccountAnnotations = 16; + map serviceAccountAnnotations = 4; // AutomountServiceAccountToken indicates whether a service account token should be automatically mounted. // +optional - optional bool automountServiceAccountToken = 3; + optional bool automountServiceAccountToken = 5; // 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. // +optional - optional string nodeName = 4; + optional string nodeName = 6; // 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/ // +optional - optional k8s.io.api.core.v1.PodSecurityContext securityContext = 5; + optional k8s.io.api.core.v1.PodSecurityContext securityContext = 7; // 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 // +optional - repeated k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 6; + repeated k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 8; // If specified, the pod's scheduling constraints // +optional - optional k8s.io.api.core.v1.Affinity affinity = 7; + optional k8s.io.api.core.v1.Affinity affinity = 9; // If specified, the pod will be dispatched by specified scheduler. // If not specified, the pod will be dispatched by default scheduler. // +optional - optional string schedulerName = 8; + optional string schedulerName = 10; // If specified, the pod's tolerations. // +optional - repeated k8s.io.api.core.v1.Toleration tolerations = 9; + repeated k8s.io.api.core.v1.Toleration tolerations = 11; // If specified, indicates the pod's priority. "system-node-critical" and // "system-cluster-critical" are two special keywords which indicate the @@ -265,7 +265,7 @@ message PodRuntimeSettings { // If not specified, the pod priority will be default or zero if there is no // default. // +optional - optional string priorityClassName = 10; + optional string priorityClassName = 12; // The priority value. Various system components use this field to find the // priority of the pod. When Priority Admission Controller is enabled, it @@ -273,14 +273,14 @@ message PodRuntimeSettings { // this field from PriorityClassName. // The higher the value, the higher the priority. // +optional - optional int32 priority = 11; + optional int32 priority = 13; // 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 // +optional - repeated k8s.io.api.core.v1.PodReadinessGate readinessGates = 12; + repeated k8s.io.api.core.v1.PodReadinessGate readinessGates = 14; // 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. @@ -289,13 +289,24 @@ message PodRuntimeSettings { // More info: https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md // This is an alpha feature and may change in the future. // +optional - optional string runtimeClassName = 13; + optional string runtimeClassName = 15; // EnableServiceLinks indicates whether information about services should be injected into pod's // environment variables, matching the syntax of Docker links. // Optional: Defaults to true. // +optional - optional bool enableServiceLinks = 14; + optional bool enableServiceLinks = 16; + + // 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. + // +optional + // +patchMergeKey=topologyKey + // +patchStrategy=merge + // +listType=map + // +listMapKey=topologyKey + // +listMapKey=whenUnsatisfiable + repeated k8s.io.api.core.v1.TopologySpreadConstraint topologySpreadConstraints = 17; } message PodSpec { @@ -458,6 +469,17 @@ message PodSpec { // More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ // +optional optional k8s.io.api.core.v1.SecurityContext containerSecurityContext = 23; + + // 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. + // +optional + // +patchMergeKey=topologyKey + // +patchStrategy=merge + // +listType=map + // +listMapKey=topologyKey + // +listMapKey=whenUnsatisfiable + repeated k8s.io.api.core.v1.TopologySpreadConstraint topologySpreadConstraints = 24; } // PodTemplateSpec describes the data a pod should have when created from a template diff --git a/vendor/kmodules.xyz/offshoot-api/api/v1/openapi_generated.go b/vendor/kmodules.xyz/offshoot-api/api/v1/openapi_generated.go index 35ba4cb33..40c8ac031 100644 --- a/vendor/kmodules.xyz/offshoot-api/api/v1/openapi_generated.go +++ b/vendor/kmodules.xyz/offshoot-api/api/v1/openapi_generated.go @@ -528,11 +528,36 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodRuntimeSettings(ref common.Refere Format: "", }, }, + "topologySpreadConstraints": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "topologyKey", + "whenUnsatisfiable", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "topologyKey", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + 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.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.TopologySpreadConstraint"), + }, + }, + }, + }, + }, }, }, }, Dependencies: []string{ - "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodReadinessGate", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration"}, + "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodReadinessGate", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.TopologySpreadConstraint"}, } } @@ -747,11 +772,36 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodSpec(ref common.ReferenceCallback Ref: ref("k8s.io/api/core/v1.SecurityContext"), }, }, + "topologySpreadConstraints": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "topologyKey", + "whenUnsatisfiable", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "topologyKey", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + 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.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.TopologySpreadConstraint"), + }, + }, + }, + }, + }, }, }, }, Dependencies: []string{ - "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.Toleration"}, + "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.TopologySpreadConstraint"}, } } diff --git a/vendor/kmodules.xyz/offshoot-api/api/v1/runtime_settings_types.go b/vendor/kmodules.xyz/offshoot-api/api/v1/runtime_settings_types.go index c2b6782ba..6005d47cf 100644 --- a/vendor/kmodules.xyz/offshoot-api/api/v1/runtime_settings_types.go +++ b/vendor/kmodules.xyz/offshoot-api/api/v1/runtime_settings_types.go @@ -31,48 +31,48 @@ type RuntimeSettings struct { type PodRuntimeSettings struct { // PodAnnotations are the annotations that will be attached with the respective Pod // +optional - PodAnnotations map[string]string `json:"podAnnotations,omitempty" protobuf:"bytes,15,rep,name=podAnnotations"` + PodAnnotations map[string]string `json:"podAnnotations,omitempty" protobuf:"bytes,1,rep,name=podAnnotations"` // 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/ // +optional - NodeSelector map[string]string `json:"nodeSelector,omitempty" protobuf:"bytes,1,rep,name=nodeSelector"` + NodeSelector map[string]string `json:"nodeSelector,omitempty" protobuf:"bytes,2,rep,name=nodeSelector"` // 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/ // +optional - ServiceAccountName string `json:"serviceAccountName,omitempty" protobuf:"bytes,2,opt,name=serviceAccountName"` + ServiceAccountName string `json:"serviceAccountName,omitempty" protobuf:"bytes,3,opt,name=serviceAccountName"` // ServiceAccountAnnotations are the annotations that will be attached with the respective ServiceAccount // +optional - ServiceAccountAnnotations map[string]string `json:"serviceAccountAnnotations" protobuf:"bytes,16,rep,name=serviceAccountAnnotations"` + ServiceAccountAnnotations map[string]string `json:"serviceAccountAnnotations,omitempty" protobuf:"bytes,4,rep,name=serviceAccountAnnotations"` // AutomountServiceAccountToken indicates whether a service account token should be automatically mounted. // +optional - AutomountServiceAccountToken *bool `json:"automountServiceAccountToken,omitempty" protobuf:"varint,3,opt,name=automountServiceAccountToken"` + AutomountServiceAccountToken *bool `json:"automountServiceAccountToken,omitempty" protobuf:"varint,5,opt,name=automountServiceAccountToken"` // 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. // +optional - NodeName string `json:"nodeName,omitempty" protobuf:"bytes,4,opt,name=nodeName"` + NodeName string `json:"nodeName,omitempty" protobuf:"bytes,6,opt,name=nodeName"` // 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/ // +optional - SecurityContext *core.PodSecurityContext `json:"securityContext,omitempty" protobuf:"bytes,5,opt,name=securityContext"` + SecurityContext *core.PodSecurityContext `json:"securityContext,omitempty" protobuf:"bytes,7,opt,name=securityContext"` // 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 // +optional - ImagePullSecrets []core.LocalObjectReference `json:"imagePullSecrets,omitempty" protobuf:"bytes,6,rep,name=imagePullSecrets"` + ImagePullSecrets []core.LocalObjectReference `json:"imagePullSecrets,omitempty" protobuf:"bytes,8,rep,name=imagePullSecrets"` // If specified, the pod's scheduling constraints // +optional - Affinity *core.Affinity `json:"affinity,omitempty" protobuf:"bytes,7,opt,name=affinity"` + Affinity *core.Affinity `json:"affinity,omitempty" protobuf:"bytes,9,opt,name=affinity"` // If specified, the pod will be dispatched by specified scheduler. // If not specified, the pod will be dispatched by default scheduler. // +optional - SchedulerName string `json:"schedulerName,omitempty" protobuf:"bytes,8,opt,name=schedulerName"` + SchedulerName string `json:"schedulerName,omitempty" protobuf:"bytes,10,opt,name=schedulerName"` // If specified, the pod's tolerations. // +optional - Tolerations []core.Toleration `json:"tolerations,omitempty" protobuf:"bytes,9,rep,name=tolerations"` + Tolerations []core.Toleration `json:"tolerations,omitempty" protobuf:"bytes,11,rep,name=tolerations"` // 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 @@ -80,20 +80,20 @@ type PodRuntimeSettings struct { // If not specified, the pod priority will be default or zero if there is no // default. // +optional - PriorityClassName string `json:"priorityClassName,omitempty" protobuf:"bytes,10,opt,name=priorityClassName"` + PriorityClassName string `json:"priorityClassName,omitempty" protobuf:"bytes,12,opt,name=priorityClassName"` // 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. // +optional - Priority *int32 `json:"priority,omitempty" protobuf:"varint,11,opt,name=priority"` + Priority *int32 `json:"priority,omitempty" protobuf:"varint,13,opt,name=priority"` // 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 // +optional - ReadinessGates []core.PodReadinessGate `json:"readinessGates,omitempty" protobuf:"bytes,12,rep,name=readinessGates"` + ReadinessGates []core.PodReadinessGate `json:"readinessGates,omitempty" protobuf:"bytes,14,rep,name=readinessGates"` // 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 @@ -101,12 +101,22 @@ type PodRuntimeSettings struct { // More info: https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md // This is an alpha feature and may change in the future. // +optional - RuntimeClassName *string `json:"runtimeClassName,omitempty" protobuf:"bytes,13,opt,name=runtimeClassName"` + RuntimeClassName *string `json:"runtimeClassName,omitempty" protobuf:"bytes,15,opt,name=runtimeClassName"` // EnableServiceLinks indicates whether information about services should be injected into pod's // environment variables, matching the syntax of Docker links. // Optional: Defaults to true. // +optional - EnableServiceLinks *bool `json:"enableServiceLinks,omitempty" protobuf:"varint,14,opt,name=enableServiceLinks"` + EnableServiceLinks *bool `json:"enableServiceLinks,omitempty" protobuf:"varint,16,opt,name=enableServiceLinks"` + // 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. + // +optional + // +patchMergeKey=topologyKey + // +patchStrategy=merge + // +listType=map + // +listMapKey=topologyKey + // +listMapKey=whenUnsatisfiable + TopologySpreadConstraints []core.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty" patchStrategy:"merge" patchMergeKey:"topologyKey" protobuf:"bytes,17,rep,name=topologySpreadConstraints"` } type ContainerRuntimeSettings struct { diff --git a/vendor/kmodules.xyz/offshoot-api/api/v1/types.go b/vendor/kmodules.xyz/offshoot-api/api/v1/types.go index 25c49c555..f21576f6d 100644 --- a/vendor/kmodules.xyz/offshoot-api/api/v1/types.go +++ b/vendor/kmodules.xyz/offshoot-api/api/v1/types.go @@ -220,6 +220,17 @@ type PodSpec struct { // More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ // +optional ContainerSecurityContext *core.SecurityContext `json:"containerSecurityContext,omitempty" protobuf:"bytes,23,opt,name=containerSecurityContext"` + + // 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. + // +optional + // +patchMergeKey=topologyKey + // +patchStrategy=merge + // +listType=map + // +listMapKey=topologyKey + // +listMapKey=whenUnsatisfiable + TopologySpreadConstraints []core.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty" patchStrategy:"merge" patchMergeKey:"topologyKey" protobuf:"bytes,24,rep,name=topologySpreadConstraints"` } // ServiceTemplateSpec describes the data a service should have when created from a template diff --git a/vendor/kmodules.xyz/offshoot-api/api/v1/zz_generated.deepcopy.go b/vendor/kmodules.xyz/offshoot-api/api/v1/zz_generated.deepcopy.go index b50a298ee..69c566713 100644 --- a/vendor/kmodules.xyz/offshoot-api/api/v1/zz_generated.deepcopy.go +++ b/vendor/kmodules.xyz/offshoot-api/api/v1/zz_generated.deepcopy.go @@ -292,6 +292,13 @@ func (in *PodRuntimeSettings) DeepCopyInto(out *PodRuntimeSettings) { *out = new(bool) **out = **in } + if in.TopologySpreadConstraints != nil { + in, out := &in.TopologySpreadConstraints, &out.TopologySpreadConstraints + *out = make([]corev1.TopologySpreadConstraint, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } return } @@ -392,6 +399,13 @@ func (in *PodSpec) DeepCopyInto(out *PodSpec) { *out = new(corev1.SecurityContext) (*in).DeepCopyInto(*out) } + if in.TopologySpreadConstraints != nil { + in, out := &in.TopologySpreadConstraints, &out.TopologySpreadConstraints + *out = make([]corev1.TopologySpreadConstraint, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } return } diff --git a/vendor/kmodules.xyz/prober/api/v1/doc.go b/vendor/kmodules.xyz/prober/api/v1/doc.go index da5db8add..494a30610 100644 --- a/vendor/kmodules.xyz/prober/api/v1/doc.go +++ b/vendor/kmodules.xyz/prober/api/v1/doc.go @@ -16,4 +16,5 @@ limitations under the License. // +k8s:deepcopy-gen=package // +k8s:openapi-gen=true +// +gencrdrefdocs:force=true package v1 // import "kmodules.xyz/prober/api/v1" diff --git a/vendor/kmodules.xyz/prober/api/v1/openapi_generated.go b/vendor/kmodules.xyz/prober/api/v1/openapi_generated.go index a84f29ce7..5b1347691 100644 --- a/vendor/kmodules.xyz/prober/api/v1/openapi_generated.go +++ b/vendor/kmodules.xyz/prober/api/v1/openapi_generated.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/vendor/kmodules.xyz/prober/api/v1/zz_generated.deepcopy.go b/vendor/kmodules.xyz/prober/api/v1/zz_generated.deepcopy.go index 7869f6c5a..5b76dd833 100644 --- a/vendor/kmodules.xyz/prober/api/v1/zz_generated.deepcopy.go +++ b/vendor/kmodules.xyz/prober/api/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/vendor/kubedb.dev/apimachinery/apis/autoscaling/v1alpha1/openapi_generated.go b/vendor/kubedb.dev/apimachinery/apis/autoscaling/v1alpha1/openapi_generated.go index 721f64d09..67b5ae635 100644 --- a/vendor/kubedb.dev/apimachinery/apis/autoscaling/v1alpha1/openapi_generated.go +++ b/vendor/kubedb.dev/apimachinery/apis/autoscaling/v1alpha1/openapi_generated.go @@ -18375,6 +18375,12 @@ func schema_custom_resources_apis_appcatalog_v1alpha1_AppBindingSpec(ref common. Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"), }, }, + "tlsSecret": { + SchemaProps: spec.SchemaProps{ + Description: "TLSSecret is the name of the secret that will hold the client certificate and private key associated with the AppBinding.", + Ref: ref("k8s.io/api/core/v1.LocalObjectReference"), + }, + }, }, Required: []string{"clientConfig"}, }, @@ -18455,6 +18461,13 @@ func schema_custom_resources_apis_appcatalog_v1alpha1_ClientConfig(ref common.Re Format: "byte", }, }, + "serverName": { + SchemaProps: spec.SchemaProps{ + Description: "ServerName is used to verify the hostname on the returned certificates unless InsecureSkipVerify is given. It is also included in the client's handshake to support virtual hosting unless it is an IP address.", + Type: []string{"string"}, + Format: "", + }, + }, }, }, }, @@ -19690,6 +19703,22 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodRuntimeSettings(ref common.Refere SchemaProps: spec.SchemaProps{ Type: []string{"object"}, Properties: map[string]spec.Schema{ + "podAnnotations": { + SchemaProps: spec.SchemaProps{ + Description: "PodAnnotations are the annotations that will be attached with the respective Pod", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, "nodeSelector": { SchemaProps: spec.SchemaProps{ 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/", @@ -19713,6 +19742,22 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodRuntimeSettings(ref common.Refere Format: "", }, }, + "serviceAccountAnnotations": { + SchemaProps: spec.SchemaProps{ + Description: "ServiceAccountAnnotations are the annotations that will be attached with the respective ServiceAccount", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, "automountServiceAccountToken": { SchemaProps: spec.SchemaProps{ Description: "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.", @@ -20035,11 +20080,36 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodSpec(ref common.ReferenceCallback Ref: ref("k8s.io/api/core/v1.SecurityContext"), }, }, + "topologySpreadConstraints": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "topologyKey", + "whenUnsatisfiable", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "topologyKey", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + 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.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.TopologySpreadConstraint"), + }, + }, + }, + }, + }, }, }, }, Dependencies: []string{ - "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.Toleration"}, + "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.TopologySpreadConstraint"}, } } 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 b085dc502..cfb5b807a 100644 --- a/vendor/kubedb.dev/apimachinery/apis/catalog/v1alpha1/openapi_generated.go +++ b/vendor/kubedb.dev/apimachinery/apis/catalog/v1alpha1/openapi_generated.go @@ -472,9 +472,10 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA "kubedb.dev/apimachinery/apis/catalog/v1alpha1.PerconaXtraDBVersionList": schema_apimachinery_apis_catalog_v1alpha1_PerconaXtraDBVersionList(ref), "kubedb.dev/apimachinery/apis/catalog/v1alpha1.PerconaXtraDBVersionPodSecurityPolicy": schema_apimachinery_apis_catalog_v1alpha1_PerconaXtraDBVersionPodSecurityPolicy(ref), "kubedb.dev/apimachinery/apis/catalog/v1alpha1.PerconaXtraDBVersionSpec": schema_apimachinery_apis_catalog_v1alpha1_PerconaXtraDBVersionSpec(ref), - "kubedb.dev/apimachinery/apis/catalog/v1alpha1.PgBouncerServerVersion": schema_apimachinery_apis_catalog_v1alpha1_PgBouncerServerVersion(ref), "kubedb.dev/apimachinery/apis/catalog/v1alpha1.PgBouncerVersion": schema_apimachinery_apis_catalog_v1alpha1_PgBouncerVersion(ref), + "kubedb.dev/apimachinery/apis/catalog/v1alpha1.PgBouncerVersionDatabase": schema_apimachinery_apis_catalog_v1alpha1_PgBouncerVersionDatabase(ref), "kubedb.dev/apimachinery/apis/catalog/v1alpha1.PgBouncerVersionExporter": schema_apimachinery_apis_catalog_v1alpha1_PgBouncerVersionExporter(ref), + "kubedb.dev/apimachinery/apis/catalog/v1alpha1.PgBouncerVersionInitContainer": schema_apimachinery_apis_catalog_v1alpha1_PgBouncerVersionInitContainer(ref), "kubedb.dev/apimachinery/apis/catalog/v1alpha1.PgBouncerVersionList": schema_apimachinery_apis_catalog_v1alpha1_PgBouncerVersionList(ref), "kubedb.dev/apimachinery/apis/catalog/v1alpha1.PgBouncerVersionSpec": schema_apimachinery_apis_catalog_v1alpha1_PgBouncerVersionSpec(ref), "kubedb.dev/apimachinery/apis/catalog/v1alpha1.PostgresSecurityContext": schema_apimachinery_apis_catalog_v1alpha1_PostgresSecurityContext(ref), @@ -18382,6 +18383,12 @@ func schema_custom_resources_apis_appcatalog_v1alpha1_AppBindingSpec(ref common. Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"), }, }, + "tlsSecret": { + SchemaProps: spec.SchemaProps{ + Description: "TLSSecret is the name of the secret that will hold the client certificate and private key associated with the AppBinding.", + Ref: ref("k8s.io/api/core/v1.LocalObjectReference"), + }, + }, }, Required: []string{"clientConfig"}, }, @@ -18462,6 +18469,13 @@ func schema_custom_resources_apis_appcatalog_v1alpha1_ClientConfig(ref common.Re Format: "byte", }, }, + "serverName": { + SchemaProps: spec.SchemaProps{ + Description: "ServerName is used to verify the hostname on the returned certificates unless InsecureSkipVerify is given. It is also included in the client's handshake to support virtual hosting unless it is an IP address.", + Type: []string{"string"}, + Format: "", + }, + }, }, }, }, @@ -19697,6 +19711,22 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodRuntimeSettings(ref common.Refere SchemaProps: spec.SchemaProps{ Type: []string{"object"}, Properties: map[string]spec.Schema{ + "podAnnotations": { + SchemaProps: spec.SchemaProps{ + Description: "PodAnnotations are the annotations that will be attached with the respective Pod", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, "nodeSelector": { SchemaProps: spec.SchemaProps{ 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/", @@ -19720,6 +19750,22 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodRuntimeSettings(ref common.Refere Format: "", }, }, + "serviceAccountAnnotations": { + SchemaProps: spec.SchemaProps{ + Description: "ServiceAccountAnnotations are the annotations that will be attached with the respective ServiceAccount", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, "automountServiceAccountToken": { SchemaProps: spec.SchemaProps{ Description: "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.", @@ -20042,11 +20088,36 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodSpec(ref common.ReferenceCallback Ref: ref("k8s.io/api/core/v1.SecurityContext"), }, }, + "topologySpreadConstraints": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "topologyKey", + "whenUnsatisfiable", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "topologyKey", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + 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.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.TopologySpreadConstraint"), + }, + }, + }, + }, + }, }, }, }, Dependencies: []string{ - "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.Toleration"}, + "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.TopologySpreadConstraint"}, } } @@ -22233,27 +22304,6 @@ func schema_apimachinery_apis_catalog_v1alpha1_PerconaXtraDBVersionSpec(ref comm } } -func schema_apimachinery_apis_catalog_v1alpha1_PgBouncerServerVersion(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PgBouncerServerVersion is the PgBouncer Database image", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "image": { - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"image"}, - }, - }, - } -} - func schema_apimachinery_apis_catalog_v1alpha1_PgBouncerVersion(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ @@ -22294,11 +22344,53 @@ func schema_apimachinery_apis_catalog_v1alpha1_PgBouncerVersion(ref common.Refer } } +func schema_apimachinery_apis_catalog_v1alpha1_PgBouncerVersionDatabase(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "PgBouncerVersionDatabase is the PgBouncer Database image", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "image": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"image"}, + }, + }, + } +} + func schema_apimachinery_apis_catalog_v1alpha1_PgBouncerVersionExporter(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "PostgresVersionExporter is the image for the Postgres exporter", + Description: "PgBouncerVersionExporter is the image for the PgBouncer exporter", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "image": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"image"}, + }, + }, + } +} + +func schema_apimachinery_apis_catalog_v1alpha1_PgBouncerVersionInitContainer(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "PgBouncerVersionInitContainer is the PgBouncer init container image", Type: []string{"object"}, Properties: map[string]spec.Schema{ "image": { @@ -22379,11 +22471,18 @@ func schema_apimachinery_apis_catalog_v1alpha1_PgBouncerVersionSpec(ref common.R Format: "", }, }, - "server": { + "initContainer": { + SchemaProps: spec.SchemaProps{ + Description: "init container image", + Default: map[string]interface{}{}, + Ref: ref("kubedb.dev/apimachinery/apis/catalog/v1alpha1.PgBouncerVersionInitContainer"), + }, + }, + "pgBouncer": { SchemaProps: spec.SchemaProps{ Description: "Database Image", Default: map[string]interface{}{}, - Ref: ref("kubedb.dev/apimachinery/apis/catalog/v1alpha1.PgBouncerServerVersion"), + Ref: ref("kubedb.dev/apimachinery/apis/catalog/v1alpha1.PgBouncerVersionDatabase"), }, }, "exporter": { @@ -22401,11 +22500,11 @@ func schema_apimachinery_apis_catalog_v1alpha1_PgBouncerVersionSpec(ref common.R }, }, }, - Required: []string{"version", "server", "exporter"}, + Required: []string{"version", "pgBouncer", "exporter"}, }, }, Dependencies: []string{ - "kubedb.dev/apimachinery/apis/catalog/v1alpha1.PgBouncerServerVersion", "kubedb.dev/apimachinery/apis/catalog/v1alpha1.PgBouncerVersionExporter"}, + "kubedb.dev/apimachinery/apis/catalog/v1alpha1.PgBouncerVersionDatabase", "kubedb.dev/apimachinery/apis/catalog/v1alpha1.PgBouncerVersionExporter", "kubedb.dev/apimachinery/apis/catalog/v1alpha1.PgBouncerVersionInitContainer"}, } } diff --git a/vendor/kubedb.dev/apimachinery/apis/catalog/v1alpha1/pgbouncer_version_helpers.go b/vendor/kubedb.dev/apimachinery/apis/catalog/v1alpha1/pgbouncer_version_helpers.go index 739ebdb6c..945e3765c 100644 --- a/vendor/kubedb.dev/apimachinery/apis/catalog/v1alpha1/pgbouncer_version_helpers.go +++ b/vendor/kubedb.dev/apimachinery/apis/catalog/v1alpha1/pgbouncer_version_helpers.go @@ -55,10 +55,10 @@ func (p PgBouncerVersion) ResourcePlural() string { func (p PgBouncerVersion) ValidateSpecs() error { if p.Spec.Version == "" || p.Spec.Exporter.Image == "" || - p.Spec.Server.Image == "" { + p.Spec.PgBouncer.Image == "" { return fmt.Errorf(`atleast one of the following specs is not set for pgbouncerversion "%v": spec.version, -spec.server.image, +spec.pgBouncer.image, spec.exporter.image.`, p.Name) } return nil diff --git a/vendor/kubedb.dev/apimachinery/apis/catalog/v1alpha1/pgbouncer_version_types.go b/vendor/kubedb.dev/apimachinery/apis/catalog/v1alpha1/pgbouncer_version_types.go index e0955eb3f..274802203 100644 --- a/vendor/kubedb.dev/apimachinery/apis/catalog/v1alpha1/pgbouncer_version_types.go +++ b/vendor/kubedb.dev/apimachinery/apis/catalog/v1alpha1/pgbouncer_version_types.go @@ -38,7 +38,7 @@ const ( // +kubebuilder:object:root=true // +kubebuilder:resource:path=pgbouncerversions,singular=pgbouncerversion,scope=Cluster,shortName=pbversion,categories={datastore,kubedb,appscode} // +kubebuilder:printcolumn:name="Version",type="string",JSONPath=".spec.version" -// +kubebuilder:printcolumn:name="SERVER_IMAGE",type="string",JSONPath=".spec.server.image" +// +kubebuilder:printcolumn:name="PGBOUNCER_IMAGE",type="string",JSONPath=".spec.pgBouncer.image" // +kubebuilder:printcolumn:name="Deprecated",type="boolean",JSONPath=".spec.deprecated" // +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp" type PgBouncerVersion struct { @@ -51,8 +51,10 @@ type PgBouncerVersion struct { type PgBouncerVersionSpec struct { // Version Version string `json:"version"` + // init container image + InitContainer PgBouncerVersionInitContainer `json:"initContainer,omitempty"` // Database Image - Server PgBouncerServerVersion `json:"server"` + PgBouncer PgBouncerVersionDatabase `json:"pgBouncer"` // Exporter Image Exporter PgBouncerVersionExporter `json:"exporter"` // Deprecated versions usable but regarded as obsolete and best avoided, typically due to having been superseded. @@ -60,12 +62,17 @@ type PgBouncerVersionSpec struct { Deprecated bool `json:"deprecated,omitempty"` } -// PgBouncerServerVersion is the PgBouncer Database image -type PgBouncerServerVersion struct { +// PgBouncerVersionInitContainer is the PgBouncer init container image +type PgBouncerVersionInitContainer struct { Image string `json:"image"` } -// PostgresVersionExporter is the image for the Postgres exporter +// PgBouncerVersionDatabase is the PgBouncer Database image +type PgBouncerVersionDatabase struct { + Image string `json:"image"` +} + +// PgBouncerVersionExporter is the image for the PgBouncer exporter type PgBouncerVersionExporter struct { Image string `json:"image"` } diff --git a/vendor/kubedb.dev/apimachinery/apis/catalog/v1alpha1/zz_generated.deepcopy.go b/vendor/kubedb.dev/apimachinery/apis/catalog/v1alpha1/zz_generated.deepcopy.go index c4861442f..d0a3d4a55 100644 --- a/vendor/kubedb.dev/apimachinery/apis/catalog/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/kubedb.dev/apimachinery/apis/catalog/v1alpha1/zz_generated.deepcopy.go @@ -1185,22 +1185,6 @@ func (in *PerconaXtraDBVersionSpec) DeepCopy() *PerconaXtraDBVersionSpec { return out } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PgBouncerServerVersion) DeepCopyInto(out *PgBouncerServerVersion) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PgBouncerServerVersion. -func (in *PgBouncerServerVersion) DeepCopy() *PgBouncerServerVersion { - if in == nil { - return nil - } - out := new(PgBouncerServerVersion) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *PgBouncerVersion) DeepCopyInto(out *PgBouncerVersion) { *out = *in @@ -1228,6 +1212,22 @@ func (in *PgBouncerVersion) DeepCopyObject() runtime.Object { return nil } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PgBouncerVersionDatabase) DeepCopyInto(out *PgBouncerVersionDatabase) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PgBouncerVersionDatabase. +func (in *PgBouncerVersionDatabase) DeepCopy() *PgBouncerVersionDatabase { + if in == nil { + return nil + } + out := new(PgBouncerVersionDatabase) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *PgBouncerVersionExporter) DeepCopyInto(out *PgBouncerVersionExporter) { *out = *in @@ -1244,6 +1244,22 @@ func (in *PgBouncerVersionExporter) DeepCopy() *PgBouncerVersionExporter { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PgBouncerVersionInitContainer) DeepCopyInto(out *PgBouncerVersionInitContainer) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PgBouncerVersionInitContainer. +func (in *PgBouncerVersionInitContainer) DeepCopy() *PgBouncerVersionInitContainer { + if in == nil { + return nil + } + out := new(PgBouncerVersionInitContainer) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *PgBouncerVersionList) DeepCopyInto(out *PgBouncerVersionList) { *out = *in @@ -1280,7 +1296,8 @@ func (in *PgBouncerVersionList) DeepCopyObject() runtime.Object { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *PgBouncerVersionSpec) DeepCopyInto(out *PgBouncerVersionSpec) { *out = *in - out.Server = in.Server + out.InitContainer = in.InitContainer + out.PgBouncer = in.PgBouncer out.Exporter = in.Exporter return } diff --git a/vendor/kubedb.dev/apimachinery/apis/config/v1alpha1/openapi_generated.go b/vendor/kubedb.dev/apimachinery/apis/config/v1alpha1/openapi_generated.go index 94267e2d7..b95768316 100644 --- a/vendor/kubedb.dev/apimachinery/apis/config/v1alpha1/openapi_generated.go +++ b/vendor/kubedb.dev/apimachinery/apis/config/v1alpha1/openapi_generated.go @@ -18300,6 +18300,12 @@ func schema_custom_resources_apis_appcatalog_v1alpha1_AppBindingSpec(ref common. Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"), }, }, + "tlsSecret": { + SchemaProps: spec.SchemaProps{ + Description: "TLSSecret is the name of the secret that will hold the client certificate and private key associated with the AppBinding.", + Ref: ref("k8s.io/api/core/v1.LocalObjectReference"), + }, + }, }, Required: []string{"clientConfig"}, }, @@ -18380,6 +18386,13 @@ func schema_custom_resources_apis_appcatalog_v1alpha1_ClientConfig(ref common.Re Format: "byte", }, }, + "serverName": { + SchemaProps: spec.SchemaProps{ + Description: "ServerName is used to verify the hostname on the returned certificates unless InsecureSkipVerify is given. It is also included in the client's handshake to support virtual hosting unless it is an IP address.", + Type: []string{"string"}, + Format: "", + }, + }, }, }, }, @@ -19615,6 +19628,22 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodRuntimeSettings(ref common.Refere SchemaProps: spec.SchemaProps{ Type: []string{"object"}, Properties: map[string]spec.Schema{ + "podAnnotations": { + SchemaProps: spec.SchemaProps{ + Description: "PodAnnotations are the annotations that will be attached with the respective Pod", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, "nodeSelector": { SchemaProps: spec.SchemaProps{ 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/", @@ -19638,6 +19667,22 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodRuntimeSettings(ref common.Refere Format: "", }, }, + "serviceAccountAnnotations": { + SchemaProps: spec.SchemaProps{ + Description: "ServiceAccountAnnotations are the annotations that will be attached with the respective ServiceAccount", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, "automountServiceAccountToken": { SchemaProps: spec.SchemaProps{ Description: "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.", @@ -19960,11 +20005,36 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodSpec(ref common.ReferenceCallback Ref: ref("k8s.io/api/core/v1.SecurityContext"), }, }, + "topologySpreadConstraints": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "topologyKey", + "whenUnsatisfiable", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "topologyKey", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + 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.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.TopologySpreadConstraint"), + }, + }, + }, + }, + }, }, }, }, Dependencies: []string{ - "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.Toleration"}, + "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.TopologySpreadConstraint"}, } } diff --git a/vendor/kubedb.dev/apimachinery/apis/dashboard/v1alpha1/constants.go b/vendor/kubedb.dev/apimachinery/apis/dashboard/v1alpha1/constants.go index 8f6661d0d..e31670b58 100644 --- a/vendor/kubedb.dev/apimachinery/apis/dashboard/v1alpha1/constants.go +++ b/vendor/kubedb.dev/apimachinery/apis/dashboard/v1alpha1/constants.go @@ -21,31 +21,47 @@ import ( core "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" - meta "k8s.io/apimachinery/pkg/apis/meta/v1" ) -var DefaultResources = core.ResourceRequirements{ - Requests: core.ResourceList{ - core.ResourceCPU: resource.MustParse(".500"), - core.ResourceMemory: resource.MustParse("1024Mi"), - }, - Limits: core.ResourceList{ - core.ResourceMemory: resource.MustParse("1024Mi"), - }, -} - const ( ES_USER_ENV = "ELASTICSEARCH_USERNAME" ES_PASSWORD_ENV = "ELASTICSEARCH_PASSWORD" + ES_USER_KEY = "elasticsearch.username" + ES_PASSWORD_KEY = "elasticsearch.password" + OS_USER_KEY = "opensearch.username" + OS_PASSWORD_KEY = "opensearch.password" + + ElasticsearchDashboardPortServer = "server" + ElasticsearchDashboardConfigMergeCommand = "/usr/local/bin/dashboard-config-merger.sh" + + KibanaConfigDir = "/usr/share/kibana/config" + KibanaTempConfigDir = "/kibana/temp-config" + KibanaCustomConfigDir = "/kibana/custom-config" + KibanaStatusEndpoint = "/api/status" + KibanaConfigFileName = "kibana.yml" + + OpensearchDashboardsConfigDir = "/usr/share/opensearch-dashboards/config" + OpensearchDashboardsTempConfigDir = "/opensearch-dashboards/temp-config" + OpensearchDashboardsCustomConfigDir = "/opensearch-dashboards/custom-config" + OpensearchDashboardsStatusEndpoint = "/api/status" + OpensearchDasboardsConfigFileName = "opensearch_dashboards.yml" - ElasticsearchDashboardPortServer = "server" - ElasticsearchDashboardKibanaConfigDir = "/usr/share/kibana/config" - ElasticsearchDashboardConfigMergeCommand = "/usr/local/bin/dashboard-config-merger.sh" - ElasticsearchDashboardKibanaTempConfigDir = "/kibana/temp-config" - ElasticsearchDashboardKibanaCustomConfigDir = "/kibana/custom-config" + ElasticsearchHostsKey = "elasticsearch.hosts" + ElasticsearchSSLCaKey = "elasticsearch.ssl.certificateAuthorities" - KibanaStatusEndpoint = "/api/status" - KibanaConfigFileName = "kibana.yml" + OpensearchHostsKey = "opensearch.hosts" + OpensearchSSLCaKey = "opensearch.ssl.certificateAuthorities" + OpensearchCookieSecureKey = "opensearch_security.cookie.secure" + + DashboardServerNameKey = "server.name" + DashboardServerPortKey = "server.port" + DashboardServerHostKey = "server.host" + DashboardServerSSLEnabledKey = "server.ssl.enabled" + DashboardServerSSLCertKey = "server.ssl.certificate" + DashboardServerSSLKey = "server.ssl.key" + DashboardServerSSLCaKey = "server.ssl.certificateAuthorities" + DashboardNodeOptionsKey = "node.options" + DashboardMaxOldSpaceFlag = "--max-old-space-size" DashboardDeploymentAvailable = "MinimumReplicasAvailable" DashboardDeploymentNotAvailable = "MinimumReplicasNotAvailable" @@ -55,6 +71,7 @@ const ( DashboardNotAcceptingConnectionRequest = "DashboardNotAcceptingConnectionRequests" DashboardReadinessCheckSucceeded = "DashboardReadinessCheckSucceeded" DashboardReadinessCheckFailed = "DashboardReadinessCheckFailed" + DashboardOnDeletion = "DashboardOnDeletion" DashboardStateGreen = "ServerHealthGood" DashboardStateYellow = "ServerHealthCritical" @@ -68,10 +85,21 @@ const ( DefaultElasticsearchClientCertAlias = "archiver" HealthCheckInterval = 10 * time.Second GlobalHost = "0.0.0.0" + + ElasticsearchDashboardRESTPort = 5601 + ElasticsearchDashboardRESTPortName = "http" ) var ( - ElasticsearchDashboardPropagationPolicy = meta.DeletePropagationForeground - ElasticsearchDashboardDefaultPort = (int32)(5601) ElasticsearchDashboardGracefulDeletionPeriod = (int64)(time.Duration(3 * time.Second)) + + DashboardsDefaultResources = core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceCPU: resource.MustParse(".100"), + core.ResourceMemory: resource.MustParse("512Mi"), + }, + Limits: core.ResourceList{ + core.ResourceMemory: resource.MustParse("512Mi"), + }, + } ) diff --git a/vendor/kubedb.dev/apimachinery/apis/dashboard/v1alpha1/elasticsearchdashboard_webhook.go b/vendor/kubedb.dev/apimachinery/apis/dashboard/v1alpha1/elasticsearchdashboard_webhook.go index 194381e5d..89e3f3dfb 100644 --- a/vendor/kubedb.dev/apimachinery/apis/dashboard/v1alpha1/elasticsearchdashboard_webhook.go +++ b/vendor/kubedb.dev/apimachinery/apis/dashboard/v1alpha1/elasticsearchdashboard_webhook.go @@ -36,19 +36,23 @@ import ( ) var forbiddenEnvVars = []string{ - "ELASTICSEARCH_USERNAME", - "ELASTICSEARCH_PASSWORD", - "server.name", - "server.port", - "server.host", - "server.ssl.enabled", - "server.ssl.certificate", - "server.ssl.key", - "server.ssl.certificateAuthorities", - "elasticsearch.hosts", - "elasticsearch.username", - "elasticsearch.password", - "elasticsearch.ssl.certificateAuthorities", + ES_USER_ENV, + ES_PASSWORD_ENV, + ES_USER_KEY, + ES_PASSWORD_KEY, + OS_USER_KEY, + OS_PASSWORD_KEY, + DashboardServerHostKey, + DashboardServerNameKey, + DashboardServerPortKey, + DashboardServerSSLCaKey, + DashboardServerSSLCertKey, + DashboardServerSSLKey, + DashboardServerSSLEnabledKey, + ElasticsearchSSLCaKey, + ElasticsearchHostsKey, + OpensearchHostsKey, + OpensearchSSLCaKey, } // log is for logging in this package. @@ -73,14 +77,12 @@ func (ed *ElasticsearchDashboard) Default() { edLog.Info(".Spec.Replicas have been set to default") } - if ed.Spec.PodTemplate.Spec.Resources.Size() == 0 { - apis.SetDefaultResourceLimits(&ed.Spec.PodTemplate.Spec.Resources, DefaultResources) - edLog.Info("Spec.PodTemplate.Spec.Resources have been set to default") - } + apis.SetDefaultResourceLimits(&ed.Spec.PodTemplate.Spec.Resources, DashboardsDefaultResources) + edLog.Info(".PodTemplate.Spec.Resources have been set to default") if len(ed.Spec.TerminationPolicy) == 0 { - ed.Spec.TerminationPolicy = api.TerminationPolicyDoNotTerminate - edLog.Info(".Spec.TerminationPolicy have been set to TerminationPolicyDoNotTerminate") + ed.Spec.TerminationPolicy = api.TerminationPolicyWipeOut + edLog.Info(".Spec.TerminationPolicy have been set to TerminationPolicyWipeOut") } if ed.Spec.EnableSSL { @@ -94,8 +96,8 @@ func (ed *ElasticsearchDashboard) Default() { }) } ed.Spec.TLS.Certificates = kmapi.SetMissingSpecForCertificate(ed.Spec.TLS.Certificates, kmapi.CertificateSpec{ - Alias: string(ElasticsearchDashboardKibanaServerCert), - SecretName: ed.DefaultCertificateSecretName(ElasticsearchDashboardKibanaServerCert), + Alias: string(ElasticsearchDashboardServerCert), + SecretName: ed.DefaultCertificateSecretName(ElasticsearchDashboardServerCert), }) } } diff --git a/vendor/kubedb.dev/apimachinery/apis/dashboard/v1alpha1/openapi_generated.go b/vendor/kubedb.dev/apimachinery/apis/dashboard/v1alpha1/openapi_generated.go index 0d504585f..f8119517d 100644 --- a/vendor/kubedb.dev/apimachinery/apis/dashboard/v1alpha1/openapi_generated.go +++ b/vendor/kubedb.dev/apimachinery/apis/dashboard/v1alpha1/openapi_generated.go @@ -18301,6 +18301,12 @@ func schema_custom_resources_apis_appcatalog_v1alpha1_AppBindingSpec(ref common. Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"), }, }, + "tlsSecret": { + SchemaProps: spec.SchemaProps{ + Description: "TLSSecret is the name of the secret that will hold the client certificate and private key associated with the AppBinding.", + Ref: ref("k8s.io/api/core/v1.LocalObjectReference"), + }, + }, }, Required: []string{"clientConfig"}, }, @@ -18381,6 +18387,13 @@ func schema_custom_resources_apis_appcatalog_v1alpha1_ClientConfig(ref common.Re Format: "byte", }, }, + "serverName": { + SchemaProps: spec.SchemaProps{ + Description: "ServerName is used to verify the hostname on the returned certificates unless InsecureSkipVerify is given. It is also included in the client's handshake to support virtual hosting unless it is an IP address.", + Type: []string{"string"}, + Format: "", + }, + }, }, }, }, @@ -19616,6 +19629,22 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodRuntimeSettings(ref common.Refere SchemaProps: spec.SchemaProps{ Type: []string{"object"}, Properties: map[string]spec.Schema{ + "podAnnotations": { + SchemaProps: spec.SchemaProps{ + Description: "PodAnnotations are the annotations that will be attached with the respective Pod", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, "nodeSelector": { SchemaProps: spec.SchemaProps{ 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/", @@ -19639,6 +19668,22 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodRuntimeSettings(ref common.Refere Format: "", }, }, + "serviceAccountAnnotations": { + SchemaProps: spec.SchemaProps{ + Description: "ServiceAccountAnnotations are the annotations that will be attached with the respective ServiceAccount", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, "automountServiceAccountToken": { SchemaProps: spec.SchemaProps{ Description: "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.", @@ -19961,11 +20006,36 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodSpec(ref common.ReferenceCallback Ref: ref("k8s.io/api/core/v1.SecurityContext"), }, }, + "topologySpreadConstraints": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "topologyKey", + "whenUnsatisfiable", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "topologyKey", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + 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.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.TopologySpreadConstraint"), + }, + }, + }, + }, + }, }, }, }, Dependencies: []string{ - "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.Toleration"}, + "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.TopologySpreadConstraint"}, } } diff --git a/vendor/kubedb.dev/apimachinery/apis/dashboard/v1alpha1/types.go b/vendor/kubedb.dev/apimachinery/apis/dashboard/v1alpha1/types.go index 150f5ac72..ec3bc3424 100644 --- a/vendor/kubedb.dev/apimachinery/apis/dashboard/v1alpha1/types.go +++ b/vendor/kubedb.dev/apimachinery/apis/dashboard/v1alpha1/types.go @@ -55,9 +55,9 @@ const ( type ElasticsearchDashboardCertificateAlias string const ( - ElasticsearchDashboardCACert ElasticsearchDashboardCertificateAlias = "ca" - ElasticsearchDatabaseClient ElasticsearchDashboardCertificateAlias = "database-client" - ElasticsearchDashboardKibanaServerCert ElasticsearchDashboardCertificateAlias = "kibana-server" + ElasticsearchDashboardCACert ElasticsearchDashboardCertificateAlias = "ca" + ElasticsearchDatabaseClientCert ElasticsearchDashboardCertificateAlias = "database-client" + ElasticsearchDashboardServerCert ElasticsearchDashboardCertificateAlias = "server" ) // +kubebuilder:validation:Enum=config @@ -91,6 +91,6 @@ const ( DashboardVolumeCustomConfig DashboardVolumeName = "dashboard-custom-config" DashboardVolumeOperatorGeneratedConfig DashboardVolumeName = "dashboard-temp-config" DashboardVolumeConfig DashboardVolumeName = "dashboard-config" - DashboardVolumeKibanaServer DashboardVolumeName = "kibana-server" + DashboardVolumeServerTLS DashboardVolumeName = "server-tls" DashboardVolumeDatabaseClient DashboardVolumeName = "database-client" ) diff --git a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha1/openapi_generated.go b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha1/openapi_generated.go index 74a837972..f77e450cb 100644 --- a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha1/openapi_generated.go +++ b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha1/openapi_generated.go @@ -18359,6 +18359,12 @@ func schema_custom_resources_apis_appcatalog_v1alpha1_AppBindingSpec(ref common. Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"), }, }, + "tlsSecret": { + SchemaProps: spec.SchemaProps{ + Description: "TLSSecret is the name of the secret that will hold the client certificate and private key associated with the AppBinding.", + Ref: ref("k8s.io/api/core/v1.LocalObjectReference"), + }, + }, }, Required: []string{"clientConfig"}, }, @@ -18439,6 +18445,13 @@ func schema_custom_resources_apis_appcatalog_v1alpha1_ClientConfig(ref common.Re Format: "byte", }, }, + "serverName": { + SchemaProps: spec.SchemaProps{ + Description: "ServerName is used to verify the hostname on the returned certificates unless InsecureSkipVerify is given. It is also included in the client's handshake to support virtual hosting unless it is an IP address.", + Type: []string{"string"}, + Format: "", + }, + }, }, }, }, @@ -19674,6 +19687,22 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodRuntimeSettings(ref common.Refere SchemaProps: spec.SchemaProps{ Type: []string{"object"}, Properties: map[string]spec.Schema{ + "podAnnotations": { + SchemaProps: spec.SchemaProps{ + Description: "PodAnnotations are the annotations that will be attached with the respective Pod", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, "nodeSelector": { SchemaProps: spec.SchemaProps{ 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/", @@ -19697,6 +19726,22 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodRuntimeSettings(ref common.Refere Format: "", }, }, + "serviceAccountAnnotations": { + SchemaProps: spec.SchemaProps{ + Description: "ServiceAccountAnnotations are the annotations that will be attached with the respective ServiceAccount", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, "automountServiceAccountToken": { SchemaProps: spec.SchemaProps{ Description: "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.", @@ -20019,11 +20064,36 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodSpec(ref common.ReferenceCallback Ref: ref("k8s.io/api/core/v1.SecurityContext"), }, }, + "topologySpreadConstraints": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "topologyKey", + "whenUnsatisfiable", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "topologyKey", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + 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.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.TopologySpreadConstraint"), + }, + }, + }, + }, + }, }, }, }, Dependencies: []string{ - "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.Toleration"}, + "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.TopologySpreadConstraint"}, } } diff --git a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/constants.go b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/constants.go index 766d2d01e..117f3270f 100644 --- a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/constants.go +++ b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/constants.go @@ -130,6 +130,9 @@ const ( NodeTypeMongos = "mongos" NodeTypeShard = "shard" NodeTypeConfig = "configsvr" + NodeTypeArbiter = "arbiter" + NodeTypeReplica = "replica" + NodeTypeStandalone = "standalone" MongoDBWorkDirectoryName = "workdir" MongoDBWorkDirectoryPath = "/work-dir" @@ -151,6 +154,9 @@ const ( MongoDBInitScriptDirectoryName = "init-scripts" MongoDBInitScriptDirectoryPath = "/init-scripts" + MongoDBInitialDirectoryName = "initial-script" + MongoDBInitialDirectoryPath = "/docker-entrypoint-initdb.d" + MongoDBClientCertDirectoryName = "client-cert" MongoDBClientCertDirectoryPath = "/client-cert" @@ -302,12 +308,19 @@ const ( EnvRedisPassword = "REDISCLI_AUTH" // =========================== PgBouncer Constants ============================ - PgBouncerUpstreamServerCA = "upstream-server-ca.crt" - PgBouncerDatabasePortName = "db" - PgBouncerPrimaryServicePortName = "primary" - PgBouncerDatabasePort = 5432 - PgBouncerConfigFile = "pgbouncer.ini" - PgBouncerAdminUsername = "kubedb" + PgBouncerUpstreamServerCA = "upstream-server-ca.crt" + PgBouncerUpstreamServerClientCert = "upstream-server-client.crt" + PgBouncerUpstreamServerClientKey = "upstream-server-client.key" + PgBouncerClientCrt = "client.crt" + PgBouncerClientKey = "client.key" + PgBouncerCACrt = "ca.crt" + PgBouncerTLSCrt = "tls.crt" + PgBouncerTLSKey = "tls.key" + PgBouncerDatabasePortName = "db" + PgBouncerPrimaryServicePortName = "primary" + PgBouncerDatabasePort = 5432 + PgBouncerConfigFile = "pgbouncer.ini" + PgBouncerAdminUsername = "kubedb" ) // List of possible condition types for a KubeDB object diff --git a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/mongodb_helpers.go b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/mongodb_helpers.go index dd6d9c3ff..0f1ebf09c 100644 --- a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/mongodb_helpers.go +++ b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/mongodb_helpers.go @@ -18,6 +18,7 @@ package v1alpha2 import ( "fmt" + "strconv" "strings" "kubedb.dev/apimachinery/apis" @@ -56,10 +57,23 @@ const ( MongoDBShardLabelKey = "mongodb.kubedb.com/node.shard" MongoDBConfigLabelKey = "mongodb.kubedb.com/node.config" MongoDBMongosLabelKey = "mongodb.kubedb.com/node.mongos" + MongoDBTypeLabelKey = "mongodb.kubedb.com/node.type" MongoDBShardAffinityTemplateVar = "SHARD_INDEX" ) +type MongoShellScriptName string + +const ( + ScriptNameCommon MongoShellScriptName = "common.sh" + ScriptNameInstall MongoShellScriptName = "install.sh" + ScriptNameMongos MongoShellScriptName = "mongos.sh" + ScriptNameShard MongoShellScriptName = "sharding.sh" + ScriptNameConfig MongoShellScriptName = "configdb.sh" + ScriptNameReplicaset MongoShellScriptName = "replicaset.sh" + ScriptNameArbiter MongoShellScriptName = "arbiter.sh" +) + func (m MongoDB) OffshootName() string { return m.Name } @@ -126,6 +140,20 @@ func (m MongoDB) ConfigSvrRepSetName() string { return repSetName } +func (m MongoDB) ArbiterNodeName() string { + if m.Spec.ReplicaSet == nil || m.Spec.Arbiter == nil { + return "" + } + return fmt.Sprintf("%v-%v", m.OffshootName(), NodeTypeArbiter) +} + +func (m MongoDB) ArbiterShardNodeName(nodeNum int32) string { + if m.Spec.ShardTopology == nil || m.Spec.Arbiter == nil { + return "" + } + return fmt.Sprintf("%v-%v", m.ShardNodeName(nodeNum), NodeTypeArbiter) +} + func (m MongoDB) OffshootSelectors() map[string]string { return map[string]string{ meta_util.NameLabelKey: m.ResourceFQN(), @@ -134,12 +162,24 @@ func (m MongoDB) OffshootSelectors() map[string]string { } } +func (m MongoDB) OffshootSelectorsWhenArbiter() map[string]string { + return meta_util.OverwriteKeys(m.OffshootSelectors(), map[string]string{ + MongoDBTypeLabelKey: NodeTypeReplica, + }) +} + func (m MongoDB) ShardSelectors(nodeNum int32) map[string]string { return meta_util.OverwriteKeys(m.OffshootSelectors(), map[string]string{ MongoDBShardLabelKey: m.ShardNodeName(nodeNum), }) } +func (m MongoDB) ShardSelectorsWhenArbiter(nodeNum int32) map[string]string { + return meta_util.OverwriteKeys(m.ShardSelectors(nodeNum), map[string]string{ + MongoDBTypeLabelKey: NodeTypeShard, + }) +} + func (m MongoDB) ConfigSvrSelectors() map[string]string { return meta_util.OverwriteKeys(m.OffshootSelectors(), map[string]string{ MongoDBConfigLabelKey: m.ConfigSvrNodeName(), @@ -152,10 +192,26 @@ func (m MongoDB) MongosSelectors() map[string]string { }) } +func (m MongoDB) ArbiterSelectors() map[string]string { + return meta_util.OverwriteKeys(m.OffshootSelectors(), map[string]string{ + MongoDBTypeLabelKey: NodeTypeArbiter, + }) +} + +func (m MongoDB) ArbiterShardSelectors(nodeNum int32) map[string]string { + return meta_util.OverwriteKeys(m.ShardSelectors(nodeNum), map[string]string{ + MongoDBTypeLabelKey: NodeTypeArbiter, + }) +} + func (m MongoDB) OffshootLabels() map[string]string { return m.offshootLabels(m.OffshootSelectors(), nil) } +func (m MongoDB) OffshootLabelsWhenArbiter() map[string]string { + return meta_util.OverwriteKeys(m.OffshootLabels(), m.OffshootSelectorsWhenArbiter()) +} + func (m MongoDB) PodLabels(podTemplateLabels map[string]string, extraLabels ...map[string]string) map[string]string { return m.offshootLabels(meta_util.OverwriteKeys(m.OffshootSelectors(), extraLabels...), podTemplateLabels) } @@ -178,6 +234,10 @@ func (m MongoDB) ShardLabels(nodeNum int32) map[string]string { return meta_util.OverwriteKeys(m.OffshootLabels(), m.ShardSelectors(nodeNum)) } +func (m MongoDB) ShardLabelsWhenArbiter(nodeNum int32) map[string]string { + return meta_util.OverwriteKeys(m.OffshootLabels(), m.ShardSelectorsWhenArbiter(nodeNum)) +} + func (m MongoDB) ConfigSvrLabels() map[string]string { return meta_util.OverwriteKeys(m.OffshootLabels(), m.ConfigSvrSelectors()) } @@ -186,6 +246,45 @@ func (m MongoDB) MongosLabels() map[string]string { return meta_util.OverwriteKeys(m.OffshootLabels(), m.MongosSelectors()) } +func (m MongoDB) ArbiterLabels() map[string]string { + return meta_util.OverwriteKeys(m.OffshootLabels(), m.ArbiterSelectors()) +} + +func (m MongoDB) ArbiterShardLabels(nodeNum int32) map[string]string { + return meta_util.OverwriteKeys(m.OffshootLabels(), m.ArbiterShardSelectors(nodeNum)) +} + +func (m MongoDB) GetCorrespondingReplicaStsName(arbStsName string) string { + if !strings.HasSuffix(arbStsName, "-"+NodeTypeArbiter) { + panic(fmt.Sprintf("%s does not have -%s as suffix", arbStsName, NodeTypeArbiter)) + } + return arbStsName[:strings.LastIndex(arbStsName, "-")] +} + +func (m MongoDB) GetCorrespondingArbiterStsName(replStsName string) string { + return replStsName + "-" + NodeTypeArbiter +} + +func (m MongoDB) GetShardNumber(shardName string) int { + // this will return 123 from shardName dbname-shard123 + last := -1 + for i := len(shardName) - 1; i >= 0; i-- { + if shardName[i] >= '0' && shardName[i] <= '9' { + continue + } + last = i + break + } + if last == len(shardName)-1 { + panic(fmt.Sprintf("invalid shard name %s ", shardName)) + } + shardNumber, err := strconv.Atoi(shardName[last+1:]) + if err != nil { + return 0 + } + return shardNumber +} + func (m MongoDB) ResourceFQN() string { return fmt.Sprintf("%s.%s", ResourcePluralMongoDB, kubedb.GroupName) } @@ -211,11 +310,14 @@ func (m MongoDB) ServiceName() string { } // Governing Service Name. Here, name parameter is either -// OffshootName, ShardNodeName or ConfigSvrNodeName +// OffshootName, ShardNodeName, ConfigSvrNodeName or ArbiterNodeName func (m MongoDB) GoverningServiceName(name string) string { if name == "" { panic(fmt.Sprintf("StatefulSet name is missing for MongoDB %s/%s", m.Namespace, m.Name)) } + if strings.HasSuffix(name, "-"+NodeTypeArbiter) { + name = m.GetCorrespondingReplicaStsName(name) + } return name + "-pods" } @@ -234,11 +336,15 @@ func (m MongoDB) HostAddress() string { } func (m MongoDB) Hosts() []string { - hosts := []string{fmt.Sprintf("%v-0.%v.%v.svc", m.Name, m.GoverningServiceName(m.OffshootName()), m.Namespace)} + hosts := []string{fmt.Sprintf("%v-0.%v.%v.svc:%v", m.Name, m.GoverningServiceName(m.OffshootName()), m.Namespace, MongoDBDatabasePort)} if m.Spec.ReplicaSet != nil { hosts = make([]string, *m.Spec.Replicas) for i := 0; i < int(pointer.Int32(m.Spec.Replicas)); i++ { - hosts[i] = fmt.Sprintf("%v-%d.%v.%v.svc", m.Name, i, m.GoverningServiceName(m.OffshootName()), m.Namespace) + hosts[i] = fmt.Sprintf("%v-%d.%v.%v.svc:%v", m.Name, i, m.GoverningServiceName(m.OffshootName()), m.Namespace, MongoDBDatabasePort) + } + if m.Spec.Arbiter != nil { + s := fmt.Sprintf("%v-0.%v.%v.svc:%v", m.ArbiterNodeName(), m.GoverningServiceName(m.OffshootName()), m.Namespace, MongoDBDatabasePort) + hosts = append(hosts, s) } } return hosts @@ -261,6 +367,10 @@ func (m MongoDB) ShardHosts(nodeNum int32) []string { for i := 0; i < int(m.Spec.ShardTopology.Shard.Replicas); i++ { hosts[i] = fmt.Sprintf("%v-%d.%v.%v.svc:%v", m.ShardNodeName(nodeNum), i, m.GoverningServiceName(m.ShardNodeName(nodeNum)), m.Namespace, MongoDBDatabasePort) } + if m.Spec.Arbiter != nil { + s := fmt.Sprintf("%v-0.%v.%v.svc:%v", m.ArbiterShardNodeName(nodeNum), m.GoverningServiceName(m.ShardNodeName(nodeNum)), m.Namespace, MongoDBDatabasePort) + hosts = append(hosts, s) + } return hosts } @@ -350,6 +460,17 @@ func (m MongoDB) StatsServiceLabels() map[string]string { return m.ServiceLabels(StatsServiceAlias, map[string]string{LabelRole: RoleStats}) } +// StorageType = Durable +// storageEngine = wiredTiger +// TerminationPolicy = Delete +// SSLMode = disabled +// clusterAuthMode = keyFile if sslMode is disabled or allowSSL. & x509 otherwise +// +// podTemplate.Spec.ServiceAccountName = DB_NAME +// set mongos lifecycle command, to shut down the db before stopping +// it sets default ReadinessProbe, livelinessProbe, affinity & ResourceLimits +// then set TLSDefaults & monitor Defaults + func (m *MongoDB) SetDefaults(mgVersion *v1alpha1.MongoDBVersion, topology *core_util.Topology) { if m == nil { return @@ -381,6 +502,9 @@ func (m *MongoDB) SetDefaults(mgVersion *v1alpha1.MongoDBVersion, topology *core apis.SetDefaultResourceLimits(&m.Spec.ShardTopology.Mongos.PodTemplate.Spec.Resources, DefaultResources) apis.SetDefaultResourceLimits(&m.Spec.ShardTopology.Shard.PodTemplate.Spec.Resources, DefaultResources) apis.SetDefaultResourceLimits(&m.Spec.ShardTopology.ConfigServer.PodTemplate.Spec.Resources, DefaultResources) + if m.Spec.Arbiter != nil { + apis.SetDefaultResourceLimits(&m.Spec.Arbiter.PodTemplate.Spec.Resources, DefaultResources) + } if m.Spec.ShardTopology.Mongos.PodTemplate.Spec.Lifecycle == nil { m.Spec.ShardTopology.Mongos.PodTemplate.Spec.Lifecycle = new(core.Lifecycle) @@ -410,11 +534,18 @@ func (m *MongoDB) SetDefaults(mgVersion *v1alpha1.MongoDBVersion, topology *core m.setDefaultProbes(&m.Spec.ShardTopology.Shard.PodTemplate, mgVersion) m.setDefaultProbes(&m.Spec.ShardTopology.ConfigServer.PodTemplate, mgVersion) m.setDefaultProbes(&m.Spec.ShardTopology.Mongos.PodTemplate, mgVersion) + if m.Spec.Arbiter != nil { + m.setDefaultProbes(&m.Spec.Arbiter.PodTemplate, mgVersion, true) + } // set default affinity (PodAntiAffinity) shardLabels := m.OffshootSelectors() shardLabels[MongoDBShardLabelKey] = m.ShardNodeTemplate() m.setDefaultAffinity(&m.Spec.ShardTopology.Shard.PodTemplate, shardLabels, topology) + if m.Spec.Arbiter != nil { + // the labels are same as the shard + m.setDefaultAffinity(&m.Spec.Arbiter.PodTemplate, shardLabels, topology) + } configServerLabels := m.OffshootSelectors() configServerLabels[MongoDBConfigLabelKey] = m.ConfigSvrNodeName() @@ -441,6 +572,12 @@ func (m *MongoDB) SetDefaults(mgVersion *v1alpha1.MongoDBVersion, topology *core m.setDefaultAffinity(m.Spec.PodTemplate, m.OffshootSelectors(), topology) apis.SetDefaultResourceLimits(&m.Spec.PodTemplate.Spec.Resources, DefaultResources) + + if m.Spec.Arbiter != nil { + m.setDefaultProbes(&m.Spec.Arbiter.PodTemplate, mgVersion, true) + m.setDefaultAffinity(&m.Spec.Arbiter.PodTemplate, m.OffshootSelectors(), topology) + apis.SetDefaultResourceLimits(&m.Spec.Arbiter.PodTemplate.Spec.Resources, DefaultResources) + } } m.SetTLSDefaults() @@ -458,17 +595,18 @@ func (m *MongoDB) SetTLSDefaults() { defaultServerOrg := []string{KubeDBOrganization} defaultServerOrgUnit := []string{string(MongoDBServerCert)} - if m.Spec.ShardTopology != nil { - _, cert := kmapi.GetCertificate(m.Spec.TLS.Certificates, string(MongoDBServerCert)) - if cert != nil && cert.Subject != nil { - if cert.Subject.Organizations != nil { - defaultServerOrg = cert.Subject.Organizations - } - if cert.Subject.OrganizationalUnits != nil { - defaultServerOrgUnit = cert.Subject.OrganizationalUnits - } + + _, cert := kmapi.GetCertificate(m.Spec.TLS.Certificates, string(MongoDBServerCert)) + if cert != nil && cert.Subject != nil { + if cert.Subject.Organizations != nil { + defaultServerOrg = cert.Subject.Organizations + } + if cert.Subject.OrganizationalUnits != nil { + defaultServerOrgUnit = cert.Subject.OrganizationalUnits } + } + if m.Spec.ShardTopology != nil || (m.Spec.ReplicaSet != nil && m.Spec.Arbiter != nil) { m.Spec.TLS.Certificates = kmapi.SetMissingSpecForCertificate(m.Spec.TLS.Certificates, kmapi.CertificateSpec{ Alias: string(MongoDBServerCert), SecretName: "", @@ -477,20 +615,9 @@ func (m *MongoDB) SetTLSDefaults() { OrganizationalUnits: defaultServerOrgUnit, }, }) - // reset secret name to empty string, since multiple secrets will be created for each StatefulSet. m.Spec.TLS.Certificates = kmapi.SetSecretNameForCertificate(m.Spec.TLS.Certificates, string(MongoDBServerCert), "") } else { - _, cert := kmapi.GetCertificate(m.Spec.TLS.Certificates, string(MongoDBServerCert)) - if cert != nil && cert.Subject != nil { - if cert.Subject.Organizations != nil { - defaultServerOrg = cert.Subject.Organizations - } - if cert.Subject.OrganizationalUnits != nil { - defaultServerOrgUnit = cert.Subject.OrganizationalUnits - } - } - m.Spec.TLS.Certificates = kmapi.SetMissingSpecForCertificate(m.Spec.TLS.Certificates, kmapi.CertificateSpec{ Alias: string(MongoDBServerCert), SecretName: m.CertificateName(MongoDBServerCert, ""), @@ -501,9 +628,10 @@ func (m *MongoDB) SetTLSDefaults() { }) } + // Client-cert defaultClientOrg := []string{KubeDBOrganization} defaultClientOrgUnit := []string{string(MongoDBClientCert)} - _, cert := kmapi.GetCertificate(m.Spec.TLS.Certificates, string(MongoDBClientCert)) + _, cert = kmapi.GetCertificate(m.Spec.TLS.Certificates, string(MongoDBClientCert)) if cert != nil && cert.Subject != nil { if cert.Subject.Organizations != nil { defaultClientOrg = cert.Subject.Organizations @@ -521,6 +649,7 @@ func (m *MongoDB) SetTLSDefaults() { }, }) + // Metrics-exporter-cert defaultExporterOrg := []string{KubeDBOrganization} defaultExporterOrgUnit := []string{string(MongoDBMetricsExporterCert)} _, cert = kmapi.GetCertificate(m.Spec.TLS.Certificates, string(MongoDBMetricsExporterCert)) @@ -542,7 +671,7 @@ func (m *MongoDB) SetTLSDefaults() { }) } -func (m *MongoDB) getCmdForProbes(mgVersion *v1alpha1.MongoDBVersion) []string { +func (m *MongoDB) getCmdForProbes(mgVersion *v1alpha1.MongoDBVersion, isArbiter ...bool) []string { var sslArgs string if m.Spec.SSLMode == SSLModeRequireSSL { sslArgs = fmt.Sprintf("--tls --tlsCAFile=%v/%v --tlsCertificateKeyFile=%v/%v", @@ -561,21 +690,25 @@ func (m *MongoDB) getCmdForProbes(mgVersion *v1alpha1.MongoDBVersion) []string { } } + 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 [[ $(mongo admin --host=localhost %v --username=$MONGO_INITDB_ROOT_USERNAME --password=$MONGO_INITDB_ROOT_PASSWORD --authenticationDatabase=admin --quiet --eval "db.adminCommand('ping').ok" ) -eq "1" ]]; then + fmt.Sprintf(`set -x; if [[ $(mongo admin --host=localhost %v %v --quiet --eval "db.adminCommand('ping').ok" ) -eq "1" ]]; then exit 0 fi - exit 1`, sslArgs), + exit 1`, sslArgs, authArgs), } } -func (m *MongoDB) GetDefaultLivenessProbeSpec(mgVersion *v1alpha1.MongoDBVersion) *core.Probe { +func (m *MongoDB) GetDefaultLivenessProbeSpec(mgVersion *v1alpha1.MongoDBVersion, isArbiter ...bool) *core.Probe { return &core.Probe{ Handler: core.Handler{ Exec: &core.ExecAction{ - Command: m.getCmdForProbes(mgVersion), + Command: m.getCmdForProbes(mgVersion, isArbiter...), }, }, FailureThreshold: 3, @@ -585,11 +718,11 @@ func (m *MongoDB) GetDefaultLivenessProbeSpec(mgVersion *v1alpha1.MongoDBVersion } } -func (m *MongoDB) GetDefaultReadinessProbeSpec(mgVersion *v1alpha1.MongoDBVersion) *core.Probe { +func (m *MongoDB) GetDefaultReadinessProbeSpec(mgVersion *v1alpha1.MongoDBVersion, isArbiter ...bool) *core.Probe { return &core.Probe{ Handler: core.Handler{ Exec: &core.ExecAction{ - Command: m.getCmdForProbes(mgVersion), + Command: m.getCmdForProbes(mgVersion, isArbiter...), }, }, FailureThreshold: 3, @@ -603,16 +736,16 @@ func (m *MongoDB) GetDefaultReadinessProbeSpec(mgVersion *v1alpha1.MongoDBVersio // In operator, check if the value of probe fields is "{}". // For "{}", ignore readinessprobe or livenessprobe in statefulset. // ref: https://github.com/helm/charts/blob/345ba987722350ffde56ec34d2928c0b383940aa/stable/mongodb/templates/deployment-standalone.yaml#L93 -func (m *MongoDB) setDefaultProbes(podTemplate *ofst.PodTemplateSpec, mgVersion *v1alpha1.MongoDBVersion) { +func (m *MongoDB) setDefaultProbes(podTemplate *ofst.PodTemplateSpec, mgVersion *v1alpha1.MongoDBVersion, isArbiter ...bool) { if podTemplate == nil { return } if podTemplate.Spec.LivenessProbe == nil { - podTemplate.Spec.LivenessProbe = m.GetDefaultLivenessProbeSpec(mgVersion) + podTemplate.Spec.LivenessProbe = m.GetDefaultLivenessProbeSpec(mgVersion, isArbiter...) } if podTemplate.Spec.ReadinessProbe == nil { - podTemplate.Spec.ReadinessProbe = m.GetDefaultReadinessProbeSpec(mgVersion) + podTemplate.Spec.ReadinessProbe = m.GetDefaultReadinessProbeSpec(mgVersion, isArbiter...) } } @@ -709,7 +842,13 @@ func (m *MongoDB) CertificateName(alias MongoDBCertificateAlias, stsName string) panic(fmt.Sprintf("StatefulSet name required to compute %s certificate name for MongoDB %s/%s", alias, m.Namespace, m.Name)) } return meta_util.NameWithSuffix(stsName, fmt.Sprintf("%s-cert", string(alias))) + } else if m.Spec.ReplicaSet != nil && alias == MongoDBServerCert { + if stsName == "" { + return meta_util.NameWithSuffix(m.Name, fmt.Sprintf("%s-cert", string(alias))) // for general replica + } + return meta_util.NameWithSuffix(stsName, fmt.Sprintf("%s-cert", string(alias))) // for arbiter } + // for standAlone server-cert. And for client-cert & metrics-exporter-cert of all type of replica & shard, stsName is not needed. return meta_util.NameWithSuffix(m.Name, fmt.Sprintf("%s-cert", string(alias))) } diff --git a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/mongodb_types.go b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/mongodb_types.go index 021d56d16..58d9cb905 100644 --- a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/mongodb_types.go +++ b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/mongodb_types.go @@ -133,6 +133,12 @@ type MongoDBSpec struct { // +kubebuilder:default={namespaces:{from: Same}} // +optional AllowedSchemas *AllowedConsumers `json:"allowedSchemas,omitempty"` + + // Mongo Arbiter component of mongodb. + // More info: https://docs.mongodb.com/manual/core/replica-set-arbiter/ + // +optional + // +nullable + Arbiter *MongoArbiterNode `json:"arbiter"` } // +kubebuilder:validation:Enum=server;client;metrics-exporter @@ -250,6 +256,16 @@ type MongoDBMongosNode struct { MongoDBNode `json:",inline"` } +type MongoArbiterNode struct { + // ConfigSecret is an optional field to provide custom configuration file for database (i.e mongod.cnf). + // If specified, this file will be used as configuration file otherwise default configuration file will be used. + ConfigSecret *core.LocalObjectReference `json:"configSecret,omitempty"` + + // PodTemplate is an optional configuration for pods used to expose database + // +optional + PodTemplate ofst.PodTemplateSpec `json:"podTemplate,omitempty"` +} + type MongoDBNode struct { // Replicas represents number of replicas of this specific node. // If current node has replicaset enabled, then replicas is the amount of replicaset nodes. diff --git a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/openapi_generated.go b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/openapi_generated.go index 976878881..675222666 100644 --- a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/openapi_generated.go +++ b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/openapi_generated.go @@ -444,6 +444,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.MemcachedList": schema_apimachinery_apis_kubedb_v1alpha2_MemcachedList(ref), "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.MemcachedSpec": schema_apimachinery_apis_kubedb_v1alpha2_MemcachedSpec(ref), "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.MemcachedStatus": schema_apimachinery_apis_kubedb_v1alpha2_MemcachedStatus(ref), + "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.MongoArbiterNode": schema_apimachinery_apis_kubedb_v1alpha2_MongoArbiterNode(ref), "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.MongoDB": schema_apimachinery_apis_kubedb_v1alpha2_MongoDB(ref), "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.MongoDBConfigNode": schema_apimachinery_apis_kubedb_v1alpha2_MongoDBConfigNode(ref), "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.MongoDBList": schema_apimachinery_apis_kubedb_v1alpha2_MongoDBList(ref), @@ -18400,6 +18401,12 @@ func schema_custom_resources_apis_appcatalog_v1alpha1_AppBindingSpec(ref common. Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"), }, }, + "tlsSecret": { + SchemaProps: spec.SchemaProps{ + Description: "TLSSecret is the name of the secret that will hold the client certificate and private key associated with the AppBinding.", + Ref: ref("k8s.io/api/core/v1.LocalObjectReference"), + }, + }, }, Required: []string{"clientConfig"}, }, @@ -18480,6 +18487,13 @@ func schema_custom_resources_apis_appcatalog_v1alpha1_ClientConfig(ref common.Re Format: "byte", }, }, + "serverName": { + SchemaProps: spec.SchemaProps{ + Description: "ServerName is used to verify the hostname on the returned certificates unless InsecureSkipVerify is given. It is also included in the client's handshake to support virtual hosting unless it is an IP address.", + Type: []string{"string"}, + Format: "", + }, + }, }, }, }, @@ -19715,6 +19729,22 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodRuntimeSettings(ref common.Refere SchemaProps: spec.SchemaProps{ Type: []string{"object"}, Properties: map[string]spec.Schema{ + "podAnnotations": { + SchemaProps: spec.SchemaProps{ + Description: "PodAnnotations are the annotations that will be attached with the respective Pod", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, "nodeSelector": { SchemaProps: spec.SchemaProps{ 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/", @@ -19738,6 +19768,22 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodRuntimeSettings(ref common.Refere Format: "", }, }, + "serviceAccountAnnotations": { + SchemaProps: spec.SchemaProps{ + Description: "ServiceAccountAnnotations are the annotations that will be attached with the respective ServiceAccount", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, "automountServiceAccountToken": { SchemaProps: spec.SchemaProps{ Description: "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.", @@ -20060,11 +20106,36 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodSpec(ref common.ReferenceCallback Ref: ref("k8s.io/api/core/v1.SecurityContext"), }, }, + "topologySpreadConstraints": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "topologyKey", + "whenUnsatisfiable", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "topologyKey", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + 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.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.TopologySpreadConstraint"), + }, + }, + }, + }, + }, }, }, }, Dependencies: []string{ - "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.Toleration"}, + "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.TopologySpreadConstraint"}, } } @@ -21998,6 +22069,33 @@ func schema_apimachinery_apis_kubedb_v1alpha2_MemcachedStatus(ref common.Referen } } +func schema_apimachinery_apis_kubedb_v1alpha2_MongoArbiterNode(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "configSecret": { + SchemaProps: spec.SchemaProps{ + Description: "ConfigSecret is an optional field to provide custom configuration file for database (i.e mongod.cnf). If specified, this file will be used as configuration file otherwise default configuration file will be used.", + Ref: ref("k8s.io/api/core/v1.LocalObjectReference"), + }, + }, + "podTemplate": { + SchemaProps: spec.SchemaProps{ + Description: "PodTemplate is an optional configuration for pods used to expose database", + Default: map[string]interface{}{}, + Ref: ref("kmodules.xyz/offshoot-api/api/v1.PodTemplateSpec"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "k8s.io/api/core/v1.LocalObjectReference", "kmodules.xyz/offshoot-api/api/v1.PodTemplateSpec"}, + } +} + func schema_apimachinery_apis_kubedb_v1alpha2_MongoDB(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ @@ -22509,12 +22607,18 @@ func schema_apimachinery_apis_kubedb_v1alpha2_MongoDBSpec(ref common.ReferenceCa Ref: ref("kubedb.dev/apimachinery/apis/kubedb/v1alpha2.AllowedConsumers"), }, }, + "arbiter": { + SchemaProps: spec.SchemaProps{ + Description: "Mongo Arbiter component of mongodb. More info: https://docs.mongodb.com/manual/core/replica-set-arbiter/", + Ref: ref("kubedb.dev/apimachinery/apis/kubedb/v1alpha2.MongoArbiterNode"), + }, + }, }, Required: []string{"version"}, }, }, Dependencies: []string{ - "k8s.io/api/core/v1.EmptyDirVolumeSource", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PersistentVolumeClaimSpec", "kmodules.xyz/client-go/api/v1.TLSConfig", "kmodules.xyz/monitoring-agent-api/api/v1.AgentSpec", "kmodules.xyz/offshoot-api/api/v1.PodTemplateSpec", "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.AllowedConsumers", "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.CoordinatorSpec", "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.InitSpec", "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.MongoDBReplicaSet", "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.MongoDBShardingTopology", "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.NamedServiceTemplateSpec"}, + "k8s.io/api/core/v1.EmptyDirVolumeSource", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PersistentVolumeClaimSpec", "kmodules.xyz/client-go/api/v1.TLSConfig", "kmodules.xyz/monitoring-agent-api/api/v1.AgentSpec", "kmodules.xyz/offshoot-api/api/v1.PodTemplateSpec", "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.AllowedConsumers", "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.CoordinatorSpec", "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.InitSpec", "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.MongoArbiterNode", "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.MongoDBReplicaSet", "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.MongoDBShardingTopology", "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.NamedServiceTemplateSpec"}, } } @@ -23432,12 +23536,26 @@ func schema_apimachinery_apis_kubedb_v1alpha2_PgBouncerSpec(ref common.Reference Ref: ref("kmodules.xyz/monitoring-agent-api/api/v1.AgentSpec"), }, }, + "sslMode": { + SchemaProps: spec.SchemaProps{ + Description: "SSLMode for both standalone and clusters. [disable;allow;prefer;require;verify-ca;verify-full]", + Type: []string{"string"}, + Format: "", + }, + }, "tls": { SchemaProps: spec.SchemaProps{ Description: "TLS contains tls configurations for client and server.", Ref: ref("kmodules.xyz/client-go/api/v1.TLSConfig"), }, }, + "terminationPolicy": { + SchemaProps: spec.SchemaProps{ + Description: "TerminationPolicy controls the delete operation for database", + Type: []string{"string"}, + Format: "", + }, + }, }, Required: []string{"version"}, }, @@ -23996,6 +24114,19 @@ func schema_apimachinery_apis_kubedb_v1alpha2_ProxySQLSpec(ref common.ReferenceC Format: "int32", }, }, + "storageType": { + SchemaProps: spec.SchemaProps{ + Description: "StorageType can be durable (default) or ephemeral", + Type: []string{"string"}, + Format: "", + }, + }, + "storage": { + SchemaProps: spec.SchemaProps{ + Description: "Storage spec to specify how storage shall be used.", + Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaimSpec"), + }, + }, "mode": { SchemaProps: spec.SchemaProps{ Description: "Mode specifies the type of MySQL/Percona-XtraDB/MariaDB cluster for which proxysql will be configured. It must be either \"Galera\" or \"GroupReplication\"", @@ -24054,12 +24185,19 @@ func schema_apimachinery_apis_kubedb_v1alpha2_ProxySQLSpec(ref common.ReferenceC Ref: ref("kmodules.xyz/client-go/api/v1.TLSConfig"), }, }, + "terminationPolicy": { + SchemaProps: spec.SchemaProps{ + Description: "TerminationPolicy controls the delete operation for database", + Type: []string{"string"}, + Format: "", + }, + }, }, Required: []string{"version"}, }, }, Dependencies: []string{ - "k8s.io/api/core/v1.LocalObjectReference", "kmodules.xyz/client-go/api/v1.TLSConfig", "kmodules.xyz/monitoring-agent-api/api/v1.AgentSpec", "kmodules.xyz/offshoot-api/api/v1.PodTemplateSpec", "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.NamedServiceTemplateSpec", "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.ProxySQLBackendSpec"}, + "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PersistentVolumeClaimSpec", "kmodules.xyz/client-go/api/v1.TLSConfig", "kmodules.xyz/monitoring-agent-api/api/v1.AgentSpec", "kmodules.xyz/offshoot-api/api/v1.PodTemplateSpec", "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.NamedServiceTemplateSpec", "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.ProxySQLBackendSpec"}, } } diff --git a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/pgbouncer_helpers.go b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/pgbouncer_helpers.go index 226e6ca8d..caceee564 100644 --- a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/pgbouncer_helpers.go +++ b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/pgbouncer_helpers.go @@ -168,6 +168,27 @@ func (p *PgBouncer) SetDefaults() { if p == nil { return } + + if p.Spec.TerminationPolicy == "" { + p.Spec.TerminationPolicy = PgBouncerTerminationPolicyDelete + } + + if p.Spec.TLS != nil { + if p.Spec.SSLMode == "" { + p.Spec.SSLMode = PgBouncerSSLModeVerifyFull + } + if p.Spec.ConnectionPool.AuthType == "" { + p.Spec.ConnectionPool.AuthType = PgBouncerClientAuthModeMD5 + } + } else { + if p.Spec.SSLMode == "" { + p.Spec.SSLMode = PgBouncerSSLModeDisable + } + if p.Spec.ConnectionPool.AuthType == "" { + p.Spec.ConnectionPool.AuthType = PgBouncerClientAuthModeMD5 + } + } + p.Spec.Monitor.SetDefaults() p.SetTLSDefaults() @@ -189,18 +210,28 @@ func (p *PgBouncer) CertificateName(alias PgBouncerCertificateAlias) string { return meta_util.NameWithSuffix(p.Name, fmt.Sprintf("%s-cert", string(alias))) } -// MustCertSecretName returns the secret name for a certificate alias -func (p *PgBouncer) MustCertSecretName(alias PgBouncerCertificateAlias) string { - if p == nil { - panic("missing PgBouncer database") - } else if p.Spec.TLS == nil { - panic(fmt.Errorf("PgBouncer %s/%s is missing tls spec", p.Namespace, p.Name)) +// GetPersistentSecrets returns auth secret and config secret of a pgbouncer object +func (p *PgBouncer) GetPersistentSecrets() []string { + if p != nil { + return nil } - name, ok := kmapi.GetCertificateSecretName(p.Spec.TLS.Certificates, string(alias)) - if !ok { - panic(fmt.Errorf("PgBouncer %s/%s is missing secret name for %s certificate", p.Namespace, p.Name, alias)) + var secrets []string + secrets = append(secrets, p.AuthSecretName()) + secrets = append(secrets, p.ConfigSecretName()) + + return secrets +} + +// GetCertSecretName returns the secret name for a certificate alias if any provide, +// otherwise returns default certificate secret name for the given alias. +func (p *PgBouncer) GetCertSecretName(alias PgBouncerCertificateAlias) string { + if p.Spec.TLS != nil { + name, ok := kmapi.GetCertificateSecretName(p.Spec.TLS.Certificates, string(alias)) + if ok { + return name + } } - return name + return p.CertificateName(alias) } func (p *PgBouncer) ReplicasAreReady(lister appslister.StatefulSetLister) (bool, string, error) { diff --git a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/pgbouncer_types.go b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/pgbouncer_types.go index ccc2adf5f..d6075f529 100644 --- a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/pgbouncer_types.go +++ b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/pgbouncer_types.go @@ -75,9 +75,14 @@ type PgBouncerSpec struct { // Monitor is used monitor database instance. // +optional Monitor *mona.AgentSpec `json:"monitor,omitempty"` + // SSLMode for both standalone and clusters. [disable;allow;prefer;require;verify-ca;verify-full] + SSLMode PgBouncerSSLMode `json:"sslMode,omitempty"` // TLS contains tls configurations for client and server. // +optional TLS *kmapi.TLSConfig `json:"tls,omitempty"` + // TerminationPolicy controls the delete operation for database + // +optional + TerminationPolicy PgBouncerTerminationPolicy `json:"terminationPolicy,omitempty"` } // +kubebuilder:validation:Enum=server;archiver;metrics-exporter @@ -141,7 +146,7 @@ type ConnectionPoolConfig struct { AdminUsers []string `json:"adminUsers,omitempty"` // AuthType specifies how to authenticate users. Default: md5 (md5+plain text). // +optional - AuthType string `json:"authType,omitempty"` + AuthType PgBouncerClientAuthMode `json:"authType,omitempty"` // AuthUser looks up any user not specified in auth_file from pg_shadow. Default: not set. // +optional AuthUser string `json:"authUser,omitempty"` @@ -171,3 +176,87 @@ type PgBouncerStatus struct { // +optional Conditions []kmapi.Condition `json:"conditions,omitempty"` } + +// +kubebuilder:validation:Enum=disable;allow;prefer;require;verify-ca;verify-full +type PgBouncerSSLMode string + +const ( + // PgBouncerSSLModeDisable represents `disable` sslMode. It ensures that the server does not use TLS/SSL. + PgBouncerSSLModeDisable PgBouncerSSLMode = "disable" + + // PgBouncerSSLModeAllow represents `allow` sslMode. I don't care about security, + // but I will pay the overhead of encryption if the server insists on it. + PgBouncerSSLModeAllow PgBouncerSSLMode = "allow" + + // PgBouncerSSLModePrefer represents `preferSSL` sslMode. + // I don't care about encryption, but I wish to pay the overhead of encryption if the server supports it. + PgBouncerSSLModePrefer PgBouncerSSLMode = "prefer" + + // PgBouncerSSLModeRequire represents `requiteSSL` sslmode. I want my data to be encrypted, and I accept the overhead. + // I trust that the network will make sure I always connect to the server I want. + PgBouncerSSLModeRequire PgBouncerSSLMode = "require" + + // PgBouncerSSLModeVerifyCA represents `verify-ca` sslmode. I want my data encrypted, and I accept the overhead. + // I want to be sure that I connect to a server that I trust. + PgBouncerSSLModeVerifyCA PgBouncerSSLMode = "verify-ca" + + // PgBouncerSSLModeVerifyFull represents `verify-full` sslmode. I want my data encrypted, and I accept the overhead. + // I want to be sure that I connect to a server I trust, and that it's the one I specify. + PgBouncerSSLModeVerifyFull PgBouncerSSLMode = "verify-full" +) + +// PgBouncerClientAuthMode represents the ClientAuthMode of PgBouncer clusters ( replicaset ) +// +kubebuilder:validation:Enum=md5;scram;cert;plain;trust;any;hba;pam +type PgBouncerClientAuthMode string + +const ( + // ClientAuthModeMD5 uses a custom less secure challenge-response mechanism. + // It prevents password sniffing and avoids storing passwords on the server in plain text but provides no protection + // if an attacker manages to steal the password hash from the server. + // Also, the MD5 hash algorithm is nowadays no longer considered secure against determined attacks + PgBouncerClientAuthModeMD5 PgBouncerClientAuthMode = "md5" + + // ClientAuthModeScram performs SCRAM-SHA-256 authentication, as described in RFC 7677. + // It is a challenge-response scheme that prevents password sniffing on untrusted connections + // and supports storing passwords on the server in a cryptographically hashed form that is thought to be secure. + // This is the most secure of the currently provided methods, but it is not supported by older client libraries. + PgBouncerClientAuthModeScram PgBouncerClientAuthMode = "scram" + + // ClientAuthModeCert represents `cert clientcert=1` auth mode where client need to provide cert and private key for authentication. + // When server is config with this auth method. Client can't connect with pgbouncer server with password. They need + // to Send the client cert and client key certificate for authentication. + PgBouncerClientAuthModeCert PgBouncerClientAuthMode = "cert" + + // ClientAuthModePlain sent the clear-text password over the wire. (Deprecated). + PgBouncerClientAuthModePlain PgBouncerClientAuthMode = "plain" + + // ClientAuthModeTrust represents no authentication. The user name must still exist in auth_file + PgBouncerClientAuthModeTrust PgBouncerClientAuthMode = "trust" + + // ClientAuthModeAny acts like the trust method, but the user name given is ignored. + // Requires that all databases are configured to log in as a specific user. + // Additionally, the console database allows any user to log in as admin. + PgBouncerClientAuthModeAny PgBouncerClientAuthMode = "any" + + // ClientAuthModeHba uses auth_hba_file to load the actual authentication type. + // This allows different authentication methods for different access paths, + // for example: connections over Unix socket use the peer auth method, connections over TCP must use TLS. + PgBouncerClientAuthModeHba PgBouncerClientAuthMode = "hba" + + // ClientAuthModePam uses to authenticate users, auth_file is ignored. + // This method is not compatible with databases using the auth_user option. + // The service name reported to PAM is “pgbouncer”. pam is not supported in the HBA configuration file. + PgBouncerClientAuthModePam PgBouncerClientAuthMode = "pam" +) + +// +kubebuilder:validation:Enum=Delete;WipeOut;DoNotTerminate +type PgBouncerTerminationPolicy string + +const ( + // Deletes database pods, service, pvcs but leave the stash backup data intact. + PgBouncerTerminationPolicyDelete PgBouncerTerminationPolicy = "Delete" + // Deletes database pods, service, pvcs and stash backup data. + PgBouncerTerminationPolicyWipeOut PgBouncerTerminationPolicy = "WipeOut" + // Rejects attempt to delete database using ValidationWebhook. + PgBouncerTerminationPolicyDoNotTerminate PgBouncerTerminationPolicy = "DoNotTerminate" +) diff --git a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/postgres_helpers.go b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/postgres_helpers.go index ec9e1ac1d..cd61097bd 100644 --- a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/postgres_helpers.go +++ b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/postgres_helpers.go @@ -18,7 +18,6 @@ package v1alpha2 import ( "fmt" - "math" "strconv" "time" @@ -346,60 +345,20 @@ func (p *Postgres) GetCertSecretName(alias PostgresCertificateAlias) string { } // GetSharedBufferSizeForPostgres this func takes a input type int64 which is in bytes -// return the 25% of the input in Bytes, KiloBytes, MegaBytes, GigaBytes, or TeraBytes +// return the 25% of the input in Bytes func GetSharedBufferSizeForPostgres(resource *resource.Quantity) string { // no more than 25% of main memory (RAM) - minSharedBuffer := int64(128 * 1024 * 1024) + minSharedBuffer := int64(128 * 1024) ret := minSharedBuffer if resource != nil { - ret = (resource.Value() / 100) * 25 + ret = resource.Value() / 4 } // the shared buffer value can't be less then this - // 128 MB is the minimum + // 128 KB is the minimum if ret < minSharedBuffer { ret = minSharedBuffer } - sharedBuffer := ConvertBytesInMB(ret) + sharedBuffer := fmt.Sprintf("%sB", strconv.FormatInt(ret, 10)) return sharedBuffer } - -func Round(val float64, roundOn float64, places int) (newVal float64) { - var round float64 - pow := math.Pow(10, float64(places)) - digit := pow * val - // this func take a float and return the int and fractional part separately - // math.modf(100.4) will return int part = 100 and fractional part = 0.40000000000000000 - _, div := math.Modf(digit) - if div >= roundOn { - round = math.Ceil(digit) - } else { - round = math.Floor(digit) - } - newVal = round / pow - return newVal -} - -// ConvertBytesInMB this func takes a input type int64 which is in bytes -// return the input in Bytes, KiloBytes, MegaBytes, GigaBytes, or TeraBytes -func ConvertBytesInMB(value int64) string { - var suffixes [5]string - suffixes[0] = "B" - suffixes[1] = "KB" - suffixes[2] = "MB" - suffixes[3] = "GB" - suffixes[4] = "TB" - - // here base is the type we are going to represent the value in string - // if base is 2 then we will represent the value in MB. - // if base is 0 then represent the value in B. - if value == 0 { - return "0B" - } - base := math.Log(float64(value)) / math.Log(1024) - getSize := Round(math.Pow(1024, base-math.Floor(base)), .5, 2) - getSuffix := suffixes[int(math.Floor(base))] - - valueMB := strconv.FormatFloat(getSize, 'f', -1, 64) + string(getSuffix) - return valueMB -} diff --git a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/proxysql_helpers.go b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/proxysql_helpers.go index 6ab0d8a47..30b14482d 100644 --- a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/proxysql_helpers.go +++ b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/proxysql_helpers.go @@ -26,6 +26,7 @@ import ( "gomodules.xyz/pointer" "k8s.io/apimachinery/pkg/labels" appslister "k8s.io/client-go/listers/apps/v1" + kmapi "kmodules.xyz/client-go/api/v1" "kmodules.xyz/client-go/apiextensions" meta_util "kmodules.xyz/client-go/meta" appcat "kmodules.xyz/custom-resources/apis/appcatalog/v1alpha1" @@ -167,9 +168,19 @@ func (p *ProxySQL) SetDefaults() { } p.Spec.Monitor.SetDefaults() + p.SetTLSDefaults() apis.SetDefaultResourceLimits(&p.Spec.PodTemplate.Spec.Resources, DefaultResources) } +func (m *ProxySQL) SetTLSDefaults() { + if m.Spec.TLS == nil || m.Spec.TLS.IssuerRef == nil { + return + } + m.Spec.TLS.Certificates = kmapi.SetMissingSecretNameForCertificate(m.Spec.TLS.Certificates, string(ProxySQLServerCert), m.CertificateName(ProxySQLServerCert)) + m.Spec.TLS.Certificates = kmapi.SetMissingSecretNameForCertificate(m.Spec.TLS.Certificates, string(ProxySQLClientCert), m.CertificateName(ProxySQLClientCert)) + m.Spec.TLS.Certificates = kmapi.SetMissingSecretNameForCertificate(m.Spec.TLS.Certificates, string(ProxySQLMetricsExporterCert), m.CertificateName(ProxySQLMetricsExporterCert)) +} + func (p *ProxySQLSpec) GetPersistentSecrets() []string { if p == nil { return nil @@ -187,3 +198,20 @@ func (p *ProxySQL) ReplicasAreReady(lister appslister.StatefulSetLister) (bool, expectedItems := 1 return checkReplicas(lister.StatefulSets(p.Namespace), labels.SelectorFromSet(p.OffshootLabels()), expectedItems) } + +// GetCertSecretName returns the secret name for a certificate alias if any, +// otherwise returns default certificate secret name for the given alias. +func (m *ProxySQL) GetCertSecretName(alias ProxySQLCertificateAlias) string { + if m.Spec.TLS != nil { + name, ok := kmapi.GetCertificateSecretName(m.Spec.TLS.Certificates, string(alias)) + if ok { + return name + } + } + return m.CertificateName(alias) +} + +// CertificateName returns the default certificate name and/or certificate secret name for a certificate alias +func (m *ProxySQL) CertificateName(alias ProxySQLCertificateAlias) string { + return meta_util.NameWithSuffix(m.Name, fmt.Sprintf("%s-cert", string(alias))) +} diff --git a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/proxysql_types.go b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/proxysql_types.go index cad989940..6f0b9851e 100644 --- a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/proxysql_types.go +++ b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/proxysql_types.go @@ -66,6 +66,12 @@ type ProxySQLSpec struct { // TODO: If replicas > 1, proxysql will be clustered Replicas *int32 `json:"replicas,omitempty"` + // StorageType can be durable (default) or ephemeral + StorageType StorageType `json:"storageType,omitempty"` + + // Storage spec to specify how storage shall be used. + Storage *core.PersistentVolumeClaimSpec `json:"storage,omitempty"` + // Mode specifies the type of MySQL/Percona-XtraDB/MariaDB cluster for which proxysql // will be configured. It must be either "Galera" or "GroupReplication" Mode *LoadBalanceMode `json:"mode,omitempty"` @@ -95,6 +101,10 @@ type ProxySQLSpec struct { // TLS contains tls configurations for client and server. // +optional TLS *kmapi.TLSConfig `json:"tls,omitempty"` + + // TerminationPolicy controls the delete operation for database + // +optional + TerminationPolicy TerminationPolicy `json:"terminationPolicy,omitempty"` } // +kubebuilder:validation:Enum=server;archiver;metrics-exporter @@ -102,7 +112,7 @@ type ProxySQLCertificateAlias string const ( ProxySQLServerCert ProxySQLCertificateAlias = "server" - ProxySQLArchiverCert ProxySQLCertificateAlias = "archiver" + ProxySQLClientCert ProxySQLCertificateAlias = "client" ProxySQLMetricsExporterCert ProxySQLCertificateAlias = "metrics-exporter" ) diff --git a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/zz_generated.deepcopy.go b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/zz_generated.deepcopy.go index 1c6169aa8..06427abc5 100644 --- a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/zz_generated.deepcopy.go +++ b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/zz_generated.deepcopy.go @@ -1027,6 +1027,28 @@ func (in *MemcachedStatus) DeepCopy() *MemcachedStatus { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MongoArbiterNode) DeepCopyInto(out *MongoArbiterNode) { + *out = *in + if in.ConfigSecret != nil { + in, out := &in.ConfigSecret, &out.ConfigSecret + *out = new(corev1.LocalObjectReference) + **out = **in + } + in.PodTemplate.DeepCopyInto(&out.PodTemplate) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MongoArbiterNode. +func (in *MongoArbiterNode) DeepCopy() *MongoArbiterNode { + if in == nil { + return nil + } + out := new(MongoArbiterNode) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *MongoDB) DeepCopyInto(out *MongoDB) { *out = *in @@ -1292,6 +1314,11 @@ func (in *MongoDBSpec) DeepCopyInto(out *MongoDBSpec) { *out = new(AllowedConsumers) (*in).DeepCopyInto(*out) } + if in.Arbiter != nil { + in, out := &in.Arbiter, &out.Arbiter + *out = new(MongoArbiterNode) + (*in).DeepCopyInto(*out) + } return } @@ -2185,6 +2212,11 @@ func (in *ProxySQLSpec) DeepCopyInto(out *ProxySQLSpec) { *out = new(int32) **out = **in } + if in.Storage != nil { + in, out := &in.Storage, &out.Storage + *out = new(corev1.PersistentVolumeClaimSpec) + (*in).DeepCopyInto(*out) + } if in.Mode != nil { in, out := &in.Mode, &out.Mode *out = new(LoadBalanceMode) diff --git a/vendor/kubedb.dev/apimachinery/apis/ops/v1alpha1/mongodb_ops_types.go b/vendor/kubedb.dev/apimachinery/apis/ops/v1alpha1/mongodb_ops_types.go index a19d1e573..1562f34d5 100644 --- a/vendor/kubedb.dev/apimachinery/apis/ops/v1alpha1/mongodb_ops_types.go +++ b/vendor/kubedb.dev/apimachinery/apis/ops/v1alpha1/mongodb_ops_types.go @@ -123,6 +123,7 @@ type MongoDBVerticalScalingSpec struct { Mongos *core.ResourceRequirements `json:"mongos,omitempty"` ConfigServer *core.ResourceRequirements `json:"configServer,omitempty"` Shard *core.ResourceRequirements `json:"shard,omitempty"` + Arbiter *core.ResourceRequirements `json:"arbiter,omitempty"` Exporter *core.ResourceRequirements `json:"exporter,omitempty"` Coordinator *core.ResourceRequirements `json:"coordinator,omitempty"` } @@ -143,6 +144,7 @@ type MongoDBCustomConfigurationSpec struct { Mongos *MongoDBCustomConfiguration `json:"mongos,omitempty"` ConfigServer *MongoDBCustomConfiguration `json:"configServer,omitempty"` Shard *MongoDBCustomConfiguration `json:"shard,omitempty"` + Arbiter *MongoDBCustomConfiguration `json:"arbiter,omitempty"` } type MongoDBCustomConfiguration struct { diff --git a/vendor/kubedb.dev/apimachinery/apis/ops/v1alpha1/openapi_generated.go b/vendor/kubedb.dev/apimachinery/apis/ops/v1alpha1/openapi_generated.go index 0acdf8278..5b58c2a4d 100644 --- a/vendor/kubedb.dev/apimachinery/apis/ops/v1alpha1/openapi_generated.go +++ b/vendor/kubedb.dev/apimachinery/apis/ops/v1alpha1/openapi_generated.go @@ -18425,6 +18425,12 @@ func schema_custom_resources_apis_appcatalog_v1alpha1_AppBindingSpec(ref common. Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"), }, }, + "tlsSecret": { + SchemaProps: spec.SchemaProps{ + Description: "TLSSecret is the name of the secret that will hold the client certificate and private key associated with the AppBinding.", + Ref: ref("k8s.io/api/core/v1.LocalObjectReference"), + }, + }, }, Required: []string{"clientConfig"}, }, @@ -18505,6 +18511,13 @@ func schema_custom_resources_apis_appcatalog_v1alpha1_ClientConfig(ref common.Re Format: "byte", }, }, + "serverName": { + SchemaProps: spec.SchemaProps{ + Description: "ServerName is used to verify the hostname on the returned certificates unless InsecureSkipVerify is given. It is also included in the client's handshake to support virtual hosting unless it is an IP address.", + Type: []string{"string"}, + Format: "", + }, + }, }, }, }, @@ -19740,6 +19753,22 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodRuntimeSettings(ref common.Refere SchemaProps: spec.SchemaProps{ Type: []string{"object"}, Properties: map[string]spec.Schema{ + "podAnnotations": { + SchemaProps: spec.SchemaProps{ + Description: "PodAnnotations are the annotations that will be attached with the respective Pod", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, "nodeSelector": { SchemaProps: spec.SchemaProps{ 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/", @@ -19763,6 +19792,22 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodRuntimeSettings(ref common.Refere Format: "", }, }, + "serviceAccountAnnotations": { + SchemaProps: spec.SchemaProps{ + Description: "ServiceAccountAnnotations are the annotations that will be attached with the respective ServiceAccount", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, "automountServiceAccountToken": { SchemaProps: spec.SchemaProps{ Description: "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.", @@ -20085,11 +20130,36 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodSpec(ref common.ReferenceCallback Ref: ref("k8s.io/api/core/v1.SecurityContext"), }, }, + "topologySpreadConstraints": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "topologyKey", + "whenUnsatisfiable", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "topologyKey", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + 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.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.TopologySpreadConstraint"), + }, + }, + }, + }, + }, }, }, }, Dependencies: []string{ - "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.Toleration"}, + "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.TopologySpreadConstraint"}, } } @@ -22212,6 +22282,11 @@ func schema_apimachinery_apis_ops_v1alpha1_MongoDBCustomConfigurationSpec(ref co Ref: ref("kubedb.dev/apimachinery/apis/ops/v1alpha1.MongoDBCustomConfiguration"), }, }, + "arbiter": { + SchemaProps: spec.SchemaProps{ + Ref: ref("kubedb.dev/apimachinery/apis/ops/v1alpha1.MongoDBCustomConfiguration"), + }, + }, }, }, }, @@ -22585,6 +22660,11 @@ func schema_apimachinery_apis_ops_v1alpha1_MongoDBVerticalScalingSpec(ref common Ref: ref("k8s.io/api/core/v1.ResourceRequirements"), }, }, + "arbiter": { + SchemaProps: spec.SchemaProps{ + Ref: ref("k8s.io/api/core/v1.ResourceRequirements"), + }, + }, "exporter": { SchemaProps: spec.SchemaProps{ Ref: ref("k8s.io/api/core/v1.ResourceRequirements"), diff --git a/vendor/kubedb.dev/apimachinery/apis/ops/v1alpha1/type.go b/vendor/kubedb.dev/apimachinery/apis/ops/v1alpha1/type.go index b83ed0b6b..8fca56fba 100644 --- a/vendor/kubedb.dev/apimachinery/apis/ops/v1alpha1/type.go +++ b/vendor/kubedb.dev/apimachinery/apis/ops/v1alpha1/type.go @@ -85,14 +85,15 @@ const ( ScaleUpConfigServer = "ScaleUpConfigServer " ScaleMongos = "ScaleMongos" ReconfigureReplicaset = "ReconfigureReplicaset" + ReconfigureStandalone = "ReconfigureStandalone" ReconfigureMongos = "ReconfigureMongos" ReconfigureShard = "ReconfigureShard" ReconfigureConfigServer = "ReconfigureConfigServer" + ReconfigureArbiter = "ReconfigureArbiter" UpdateStandaloneImage = "UpdateStandaloneImage" UpdateStandaloneResources = "UpdateStandaloneResources" ScaleDownStandalone = "ScaleDownStandalone" ScaleUpStandalone = "ScaleUpStandalone" - ReconfigureStandalone = "ReconfigureStandalone" StandaloneVolumeExpansion = "StandaloneVolumeExpansion" ReplicasetVolumeExpansion = "ReplicasetVolumeExpansion" ShardVolumeExpansion = "ShardVolumeExpansion" @@ -102,6 +103,7 @@ const ( RestartMongos = "RestartMongos" RestartConfigServer = "RestartConfigServer" RestartShard = "RestartShard" + RestartArbiter = "RestartArbiter" DeleteStatefulSets = "DeleteStatefulSets" DatabaseReady = "DatabaseReady" diff --git a/vendor/kubedb.dev/apimachinery/apis/ops/v1alpha1/zz_generated.deepcopy.go b/vendor/kubedb.dev/apimachinery/apis/ops/v1alpha1/zz_generated.deepcopy.go index df528b01e..8738fa26a 100644 --- a/vendor/kubedb.dev/apimachinery/apis/ops/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/kubedb.dev/apimachinery/apis/ops/v1alpha1/zz_generated.deepcopy.go @@ -1472,6 +1472,11 @@ func (in *MongoDBCustomConfigurationSpec) DeepCopyInto(out *MongoDBCustomConfigu *out = new(MongoDBCustomConfiguration) (*in).DeepCopyInto(*out) } + if in.Arbiter != nil { + in, out := &in.Arbiter, &out.Arbiter + *out = new(MongoDBCustomConfiguration) + (*in).DeepCopyInto(*out) + } return } @@ -1748,6 +1753,11 @@ func (in *MongoDBVerticalScalingSpec) DeepCopyInto(out *MongoDBVerticalScalingSp *out = new(v1.ResourceRequirements) (*in).DeepCopyInto(*out) } + if in.Arbiter != nil { + in, out := &in.Arbiter, &out.Arbiter + *out = new(v1.ResourceRequirements) + (*in).DeepCopyInto(*out) + } if in.Exporter != nil { in, out := &in.Exporter, &out.Exporter *out = new(v1.ResourceRequirements) diff --git a/vendor/kubedb.dev/apimachinery/apis/schema/v1alpha1/constants.go b/vendor/kubedb.dev/apimachinery/apis/schema/v1alpha1/constants.go index 8d5a78218..d29370476 100644 --- a/vendor/kubedb.dev/apimachinery/apis/schema/v1alpha1/constants.go +++ b/vendor/kubedb.dev/apimachinery/apis/schema/v1alpha1/constants.go @@ -21,6 +21,7 @@ const ( DatabaseNameConfig = "config" DatabaseNameLocal = "local" DatabaseForEntry = "kubedb_system" + SYSDatabase = "sys" ) const ( diff --git a/vendor/kubedb.dev/apimachinery/apis/schema/v1alpha1/mariadbdatabase_helpers.go b/vendor/kubedb.dev/apimachinery/apis/schema/v1alpha1/mariadbdatabase_helpers.go index 16a9e1fa9..7c94c012d 100644 --- a/vendor/kubedb.dev/apimachinery/apis/schema/v1alpha1/mariadbdatabase_helpers.go +++ b/vendor/kubedb.dev/apimachinery/apis/schema/v1alpha1/mariadbdatabase_helpers.go @@ -17,9 +17,16 @@ limitations under the License. package v1alpha1 import ( + dbapi "kubedb.dev/apimachinery/apis/kubedb/v1alpha2" "kubedb.dev/apimachinery/crds" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "kmodules.xyz/client-go/apiextensions" + "kmodules.xyz/client-go/meta" +) + +const ( + MariaDBSuffix string = dbapi.ResourceSingularMariaDB ) func (_ MariaDBDatabase) CustomResourceDefinition() *apiextensions.CustomResourceDefinition { @@ -35,3 +42,84 @@ func (in *MariaDBDatabase) GetInit() *InitSpec { func (in *MariaDBDatabase) GetStatus() DatabaseStatus { return in.Status } + +// GetAppBindingMeta returns meta info of the appbinding which has been created by schema manager +func (in *MariaDBDatabase) GetAppBindingMeta() metav1.ObjectMeta { + meta := metav1.ObjectMeta{ + Name: meta.NameWithSuffix(in.Name, MariaDBSuffix+"-apbng"), + Namespace: in.Namespace, + } + return meta +} + +// GetVaultSecretEngineMeta returns meta info of the secret engine which has been created by schema manager +func (in *MariaDBDatabase) GetVaultSecretEngineMeta() metav1.ObjectMeta { + meta := metav1.ObjectMeta{ + Name: meta.NameWithSuffix(in.Name, MariaDBSuffix+"-engine"), + Namespace: in.Namespace, + } + return meta +} + +// GetMySQLRoleMeta returns meta info of the MySQL role which has been created by schema manager +func (in *MariaDBDatabase) GetMySQLRoleMeta() metav1.ObjectMeta { + meta := metav1.ObjectMeta{ + Name: meta.NameWithSuffix(in.Name, MariaDBSuffix+"-role"), + Namespace: in.Namespace, + } + return meta +} + +// GetSecretAccessRequestMeta returns meta info of the secret access request which has been created by schema manager +func (in *MariaDBDatabase) GetSecretAccessRequestMeta() metav1.ObjectMeta { + meta := metav1.ObjectMeta{ + Name: meta.NameWithSuffix(in.Name, MariaDBSuffix+"-req"), + Namespace: in.Namespace, + } + return meta +} + +// GetInitJobMeta returns meta info of the init job which has been created by schema manager +func (in *MariaDBDatabase) GetInitJobMeta() metav1.ObjectMeta { + meta := metav1.ObjectMeta{ + Name: meta.NameWithSuffix(in.Name, MariaDBSuffix+"-job"), + Namespace: in.Namespace, + } + return meta +} + +// GetMySQLAuthSecretMeta returns meta info of the mysql auth secret +func (in *MariaDBDatabase) GetMySQLAuthSecretMeta() metav1.ObjectMeta { + meta := metav1.ObjectMeta{ + Name: in.Spec.Database.ServerRef.Name + "-auth", + Namespace: in.Spec.Database.ServerRef.Namespace, + } + return meta +} + +// GetRestoreSessionMeta returns meta info of the restore session which has been created by schema manager +func (in *MariaDBDatabase) GetRestoreSessionMeta() metav1.ObjectMeta { + meta := metav1.ObjectMeta{ + Name: meta.NameWithSuffix(in.Name, MariaDBSuffix+"-rs"), + Namespace: in.Namespace, + } + return meta +} + +// GetRepositoryMeta returns meta info of the repository which has been created by schema manager +func (in *MariaDBDatabase) GetRepositoryMeta() metav1.ObjectMeta { + meta := metav1.ObjectMeta{ + Name: meta.NameWithSuffix(in.Name, MariaDBSuffix+"-rp"), + Namespace: in.Namespace, + } + return meta +} + +// GetRepositorySecretMeta returns meta info of the repository which has been created by schema manager +func (in *MariaDBDatabase) GetRepositorySecretMeta() metav1.ObjectMeta { + meta := metav1.ObjectMeta{ + Name: meta.NameWithSuffix(in.Name, MariaDBSuffix+"-rp-sec"), + Namespace: in.Namespace, + } + return meta +} diff --git a/vendor/kubedb.dev/apimachinery/apis/schema/v1alpha1/mariadbdatabase_types.go b/vendor/kubedb.dev/apimachinery/apis/schema/v1alpha1/mariadbdatabase_types.go index 3cfa24b12..4ee1987a6 100644 --- a/vendor/kubedb.dev/apimachinery/apis/schema/v1alpha1/mariadbdatabase_types.go +++ b/vendor/kubedb.dev/apimachinery/apis/schema/v1alpha1/mariadbdatabase_types.go @@ -56,7 +56,22 @@ type MariaDBDatabaseInfo struct { Config MariaDBDatabaseConfiguration `json:"config"` } -type MariaDBDatabaseConfiguration struct{} +type MariaDBDatabaseConfiguration struct { + // Name is target database name + Name string `json:"name"` + + // CharacterSet is the target database character set + // +optional + CharacterSet string `json:"characterSet,omitempty"` + + // Collation is the target database collation + // +optional + Collation string `json:"collation,omitempty"` + + // Comment is the additional comment to the mariadb Database + // +optional + Comment string `json:"comment,omitempty"` +} // MariaDBDatabase is the Schema for the mariadbdatabases API diff --git a/vendor/kubedb.dev/apimachinery/apis/schema/v1alpha1/mariadbdatabase_webhook.go b/vendor/kubedb.dev/apimachinery/apis/schema/v1alpha1/mariadbdatabase_webhook.go new file mode 100644 index 000000000..a1df86087 --- /dev/null +++ b/vendor/kubedb.dev/apimachinery/apis/schema/v1alpha1/mariadbdatabase_webhook.go @@ -0,0 +1,186 @@ +/* +Copyright AppsCode Inc. and Contributors + +Licensed under the AppsCode Free Trial License 1.0.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + https://github.com/appscode/licenses/raw/1.0.0/AppsCode-Free-Trial-1.0.0.md + +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 v1alpha1 + +import ( + gocmp "github.com/google/go-cmp/cmp" + apierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/validation/field" + "sigs.k8s.io/controller-runtime/pkg/builder" + logf "sigs.k8s.io/controller-runtime/pkg/log" + "sigs.k8s.io/controller-runtime/pkg/manager" + "sigs.k8s.io/controller-runtime/pkg/webhook" +) + +// log is for logging in this package. +var mariadbdatabaselog = logf.Log.WithName("mariadbdatabase-resource") + +func (r *MariaDBDatabase) SetupWebhookWithManager(mgr manager.Manager) error { + return builder.WebhookManagedBy(mgr). + For(r). + Complete() +} + +// EDIT THIS FILE! THIS IS SCAFFOLDING FOR YOU TO OWN! + +//+kubebuilder:webhook:path=/mutate-schema-kubedb-com-v1alpha1-mariadbdatabase,mutating=true,failurePolicy=fail,sideEffects=None,groups=schema.kubedb.com,resources=mariadbdatabases,verbs=create;update,versions=v1alpha1,name=mmariadbdatabase.kb.io,admissionReviewVersions={v1,v1beta1} + +var _ webhook.Defaulter = &MariaDBDatabase{} + +// Default implements webhook.Defaulter so a webhook will be registered for the type +func (r *MariaDBDatabase) Default() { + mariadbdatabaselog.Info("default", "name", r.Name) + + if r.Spec.Init != nil { + if r.Spec.Init.Snapshot != nil { + if r.Spec.Init.Snapshot.SnapshotID == "" { + r.Spec.Init.Snapshot.SnapshotID = "latest" + } + } + } + if r.Spec.Database.Config.CharacterSet == "" { + r.Spec.Database.Config.CharacterSet = "utf8mb4" + } +} + +//+kubebuilder:webhook:path=/validate-schema-kubedb-com-v1alpha1-mariadbdatabase,mutating=false,failurePolicy=fail,sideEffects=None,groups=schema.kubedb.com,resources=mariadbdatabases,verbs=create;update;delete,versions=v1alpha1,name=vmariadbdatabase.kb.io,admissionReviewVersions={v1,v1beta1} + +var _ webhook.Validator = &MariaDBDatabase{} + +// ValidateCreate implements webhook.Validator so a webhook will be registered for the type +func (r *MariaDBDatabase) ValidateCreate() error { + mariadbdatabaselog.Info("validate create", "name", r.Name) + var allErrs field.ErrorList + if err := r.ValidateMariaDBDatabase(); err != nil { + allErrs = append(allErrs, field.Invalid(field.NewPath(""), r.Name, err.Error())) + } + if len(allErrs) == 0 { + return nil + } + return apierrors.NewInvalid(schema.GroupKind{Group: "schema.kubedb.com", Kind: "MariaDBDatabase"}, r.Name, allErrs) +} + +// ValidateUpdate implements webhook.Validator so a webhook will be registered for the type +func (r *MariaDBDatabase) ValidateUpdate(old runtime.Object) error { + mariadbdatabaselog.Info("validate update", "name", r.Name) + oldobj := old.(*MariaDBDatabase) + return ValidateMariaDBDatabaseUpdate(r, oldobj) +} + +func ValidateMariaDBDatabaseUpdate(newobj *MariaDBDatabase, oldobj *MariaDBDatabase) error { + if newobj.Finalizers == nil { + return nil + } + var allErrs field.ErrorList + if !gocmp.Equal(oldobj.Spec.Database.ServerRef, newobj.Spec.Database.ServerRef) { + allErrs = append(allErrs, field.Invalid(field.NewPath("spec.database.serverRef"), newobj.Name, "cannot change database serverRef")) + } + if !gocmp.Equal(oldobj.Spec.Database.Config.Name, newobj.Spec.Database.Config.Name) { + allErrs = append(allErrs, field.Invalid(field.NewPath("spec.database.config.name"), newobj.Name, "cannot change database name configuration")) + } + if !gocmp.Equal(oldobj.Spec.VaultRef, newobj.Spec.VaultRef) { + allErrs = append(allErrs, field.Invalid(field.NewPath("spec.vaultRef"), newobj.Name, "cannot change vaultRef")) + } + if !gocmp.Equal(oldobj.Spec.AccessPolicy, newobj.Spec.AccessPolicy) { + allErrs = append(allErrs, field.Invalid(field.NewPath("spec.accessPolicy"), newobj.Name, "cannot change accessPolicy")) + } + if newobj.Spec.Init != nil { + if oldobj.Spec.Init == nil { + allErrs = append(allErrs, field.Invalid(field.NewPath("spec.init"), newobj.Name, "cannot change init")) + } + } + if oldobj.Spec.Init != nil { + if newobj.Spec.Init == nil { + allErrs = append(allErrs, field.Invalid(field.NewPath("spec.init"), newobj.Name, "cannot change init")) + } + } + if newobj.Spec.Init != nil && oldobj.Spec.Init != nil { + if !gocmp.Equal(newobj.Spec.Init.Script, oldobj.Spec.Init.Script) || !gocmp.Equal(newobj.Spec.Init.Snapshot, oldobj.Spec.Init.Snapshot) { + allErrs = append(allErrs, field.Invalid(field.NewPath("spec.init"), newobj.Name, "cannot change init")) + } + } + er := newobj.ValidateMariaDBDatabase() + if er != nil { + allErrs = append(allErrs, field.Invalid(field.NewPath("spec"), newobj.Name, er.Error())) + } + if len(allErrs) == 0 { + return nil + } + return apierrors.NewInvalid(schema.GroupKind{Group: "schema.kubedb.com", Kind: "MariaDBDatabase"}, newobj.Name, allErrs) +} + +// ValidateDelete implements webhook.Validator so a webhook will be registered for the type +func (r *MariaDBDatabase) ValidateDelete() error { + mariadbdatabaselog.Info("validate delete", "name", r.Name) + if r.Spec.DeletionPolicy == DeletionPolicyDoNotDelete { + return field.Invalid(field.NewPath("spec").Child("terminationPolicy"), r.Name, `cannot delete object when terminationPolicy is set to "DoNotDelete"`) + } + return nil +} + +func (in *MariaDBDatabase) ValidateMariaDBDatabase() error { + var allErrs field.ErrorList + if err := in.validateInitailizationSchema(); err != nil { + allErrs = append(allErrs, err) + } + if err := in.validateMariaDBDatabaseConfig(); err != nil { + allErrs = append(allErrs, err) + } + if len(allErrs) == 0 { + return nil + } + return apierrors.NewInvalid(schema.GroupKind{Group: "schema.kubedb.com", Kind: "MariaDBDatabase"}, in.Name, allErrs) +} + +func (in *MariaDBDatabase) validateInitailizationSchema() *field.Error { + path := field.NewPath("spec.init") + if in.Spec.Init != nil { + if in.Spec.Init.Script != nil && in.Spec.Init.Snapshot != nil { + return field.Invalid(path, in.Name, `cannot initialize database using both restore and initSpec`) + } + } + return nil +} + +func (in *MariaDBDatabase) validateMariaDBDatabaseConfig() *field.Error { + path := field.NewPath("spec").Child("database.config").Child("name") + name := in.Spec.Database.Config.Name + if name == SYSDatabase { + return field.Invalid(path, in.Name, `cannot use "sys" as the database name`) + } + if name == "performance_schema" { + return field.Invalid(path, in.Name, `cannot use "performance_schema" as the database name`) + } + if name == "mysql" { + return field.Invalid(path, in.Name, `cannot use "mysql" as the database name`) + } + if name == DatabaseForEntry { + return field.Invalid(path, in.Name, `cannot use "kubedb_system" as the database name`) + } + if name == "information_schema" { + return field.Invalid(path, in.Name, `cannot use "information_schema" as the database name`) + } + if name == DatabaseNameAdmin { + return field.Invalid(path, in.Name, `cannot use "admin" as the database name`) + } + if name == DatabaseNameConfig { + return field.Invalid(path, in.Name, `cannot use "config" as the database name`) + } + return nil +} diff --git a/vendor/kubedb.dev/apimachinery/apis/schema/v1alpha1/mongodbdatabase_webhook.go b/vendor/kubedb.dev/apimachinery/apis/schema/v1alpha1/mongodbdatabase_webhook.go index 34713dadc..a2e717a98 100644 --- a/vendor/kubedb.dev/apimachinery/apis/schema/v1alpha1/mongodbdatabase_webhook.go +++ b/vendor/kubedb.dev/apimachinery/apis/schema/v1alpha1/mongodbdatabase_webhook.go @@ -144,7 +144,7 @@ func (in *MongoDBDatabase) validateMongoDBDatabaseSchemaName() *field.Error { path := field.NewPath("spec").Child("database").Child("config").Child("name") name := in.Spec.Database.Config.Name - if name == MongoDatabaseNameForEntry || name == "admin" || name == "config" || name == "local" { + if name == MongoDatabaseNameForEntry || name == DatabaseNameAdmin || name == DatabaseNameConfig || name == DatabaseNameLocal { str := fmt.Sprintf("cannot use \"%v\" as the database name", name) return field.Invalid(path, in.Name, str) } diff --git a/vendor/kubedb.dev/apimachinery/apis/schema/v1alpha1/mysqldatabase_webhook.go b/vendor/kubedb.dev/apimachinery/apis/schema/v1alpha1/mysqldatabase_webhook.go index e1a2d44d9..e30386ef4 100644 --- a/vendor/kubedb.dev/apimachinery/apis/schema/v1alpha1/mysqldatabase_webhook.go +++ b/vendor/kubedb.dev/apimachinery/apis/schema/v1alpha1/mysqldatabase_webhook.go @@ -155,12 +155,6 @@ func (in *MySQLDatabase) ValidateMySQLDatabase() error { if err := in.validateMySQLDatabaseConfig(); err != nil { allErrs = append(allErrs, err) } - if err := in.validateMySQLDatabaseNamespace(); err != nil { - allErrs = append(allErrs, err) - } - if err := in.validateMySQLDatabaseName(); err != nil { - allErrs = append(allErrs, err) - } if len(allErrs) == 0 { return nil } @@ -189,16 +183,16 @@ func (in *MySQLDatabase) validateMySQLDatabaseConfig() *field.Error { if name == "mysql" { return field.Invalid(path, in.Name, `cannot use "mysql" as the database name`) } - if name == "kubedb_system" { + if name == DatabaseForEntry { return field.Invalid(path, in.Name, `cannot use "kubedb_system" as the database name`) } if name == "information_schema" { return field.Invalid(path, in.Name, `cannot use "information_schema" as the database name`) } - if name == "admin" { + if name == DatabaseNameAdmin { return field.Invalid(path, in.Name, `cannot use "admin" as the database name`) } - if name == "config" { + if name == DatabaseNameConfig { return field.Invalid(path, in.Name, `cannot use "config" as the database name`) } path = field.NewPath("spec").Child("database.config") @@ -218,34 +212,3 @@ func (in *MySQLDatabase) validateMySQLDatabaseConfig() *field.Error { } return nil } - -func (in *MySQLDatabase) validateMySQLDatabaseNamespace() *field.Error { - path := field.NewPath("metadata").Child("namespace") - ns := in.ObjectMeta.Namespace - if ns == "cert-manager" { - return field.Invalid(path, in.Name, `cannot use namespace "cert-manager" to create schema manager`) - } - if ns == "kube-system" { - return field.Invalid(path, in.Name, `cannot use namespace "kube-system" to create schema manager`) - } - if ns == "kubedb-system" { - return field.Invalid(path, in.Name, `cannot use namespace "kubedb-system" to create schema manager`) - } - if ns == "kubedb" { - return field.Invalid(path, in.Name, `cannot use namespace "kubedb" to create schema manager`) - } - if ns == "kubevault" { - return field.Invalid(path, in.Name, `cannot use namespace "kubevault" to create schema manager`) - } - if ns == "local-path-storage" { - return field.Invalid(path, in.Name, `cannot use namespace "local-path-storage" to create schema manager`) - } - return nil -} - -func (in *MySQLDatabase) validateMySQLDatabaseName() *field.Error { - if len(in.ObjectMeta.Name) > 45 { - return field.Invalid(field.NewPath("metadata").Child("name"), in.Name, "must be no more than 30 characters") - } - return nil -} diff --git a/vendor/kubedb.dev/apimachinery/apis/schema/v1alpha1/openapi_generated.go b/vendor/kubedb.dev/apimachinery/apis/schema/v1alpha1/openapi_generated.go index 4c4f1210a..76b92db49 100644 --- a/vendor/kubedb.dev/apimachinery/apis/schema/v1alpha1/openapi_generated.go +++ b/vendor/kubedb.dev/apimachinery/apis/schema/v1alpha1/openapi_generated.go @@ -18323,6 +18323,12 @@ func schema_custom_resources_apis_appcatalog_v1alpha1_AppBindingSpec(ref common. Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"), }, }, + "tlsSecret": { + SchemaProps: spec.SchemaProps{ + Description: "TLSSecret is the name of the secret that will hold the client certificate and private key associated with the AppBinding.", + Ref: ref("k8s.io/api/core/v1.LocalObjectReference"), + }, + }, }, Required: []string{"clientConfig"}, }, @@ -18403,6 +18409,13 @@ func schema_custom_resources_apis_appcatalog_v1alpha1_ClientConfig(ref common.Re Format: "byte", }, }, + "serverName": { + SchemaProps: spec.SchemaProps{ + Description: "ServerName is used to verify the hostname on the returned certificates unless InsecureSkipVerify is given. It is also included in the client's handshake to support virtual hosting unless it is an IP address.", + Type: []string{"string"}, + Format: "", + }, + }, }, }, }, @@ -19638,6 +19651,22 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodRuntimeSettings(ref common.Refere SchemaProps: spec.SchemaProps{ Type: []string{"object"}, Properties: map[string]spec.Schema{ + "podAnnotations": { + SchemaProps: spec.SchemaProps{ + Description: "PodAnnotations are the annotations that will be attached with the respective Pod", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, "nodeSelector": { SchemaProps: spec.SchemaProps{ 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/", @@ -19661,6 +19690,22 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodRuntimeSettings(ref common.Refere Format: "", }, }, + "serviceAccountAnnotations": { + SchemaProps: spec.SchemaProps{ + Description: "ServiceAccountAnnotations are the annotations that will be attached with the respective ServiceAccount", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, "automountServiceAccountToken": { SchemaProps: spec.SchemaProps{ Description: "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.", @@ -19983,11 +20028,36 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodSpec(ref common.ReferenceCallback Ref: ref("k8s.io/api/core/v1.SecurityContext"), }, }, + "topologySpreadConstraints": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "topologyKey", + "whenUnsatisfiable", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "topologyKey", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + 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.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.TopologySpreadConstraint"), + }, + }, + }, + }, + }, }, }, }, Dependencies: []string{ - "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.Toleration"}, + "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.TopologySpreadConstraint"}, } } @@ -20356,6 +20426,38 @@ func schema_apimachinery_apis_schema_v1alpha1_MariaDBDatabaseConfiguration(ref c Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Description: "Name is target database name", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "characterSet": { + SchemaProps: spec.SchemaProps{ + Description: "CharacterSet is the target database character set", + Type: []string{"string"}, + Format: "", + }, + }, + "collation": { + SchemaProps: spec.SchemaProps{ + Description: "Collation is the target database collation", + Type: []string{"string"}, + Format: "", + }, + }, + "comment": { + SchemaProps: spec.SchemaProps{ + Description: "Comment is the additional comment to the mariadb Database", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"name"}, }, }, } diff --git a/vendor/kubedb.dev/apimachinery/apis/ui/v1alpha1/elasticsearch_insight_types.go b/vendor/kubedb.dev/apimachinery/apis/ui/v1alpha1/elasticsearch_insight_types.go index 112cf5b34..866dfbb02 100644 --- a/vendor/kubedb.dev/apimachinery/apis/ui/v1alpha1/elasticsearch_insight_types.go +++ b/vendor/kubedb.dev/apimachinery/apis/ui/v1alpha1/elasticsearch_insight_types.go @@ -30,11 +30,10 @@ const ( // ElasticsearchInsightSpec defines the desired state of ElasticsearchInsight type ElasticsearchInsightSpec struct { - Version string `json:"version"` - Status string `json:"status"` - Mode string `json:"mode"` - - ClusterHealth ElasticsearchClusterHealth `json:",inline"` + Version string `json:"version"` + Status string `json:"status"` + Mode string `json:"mode"` + ElasticsearchClusterHealth `json:",inline"` } type ElasticsearchClusterHealth struct { diff --git a/vendor/kubedb.dev/apimachinery/apis/ui/v1alpha1/openapi_generated.go b/vendor/kubedb.dev/apimachinery/apis/ui/v1alpha1/openapi_generated.go index d480da85b..b353204a5 100644 --- a/vendor/kubedb.dev/apimachinery/apis/ui/v1alpha1/openapi_generated.go +++ b/vendor/kubedb.dev/apimachinery/apis/ui/v1alpha1/openapi_generated.go @@ -18396,6 +18396,12 @@ func schema_custom_resources_apis_appcatalog_v1alpha1_AppBindingSpec(ref common. Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"), }, }, + "tlsSecret": { + SchemaProps: spec.SchemaProps{ + Description: "TLSSecret is the name of the secret that will hold the client certificate and private key associated with the AppBinding.", + Ref: ref("k8s.io/api/core/v1.LocalObjectReference"), + }, + }, }, Required: []string{"clientConfig"}, }, @@ -18476,6 +18482,13 @@ func schema_custom_resources_apis_appcatalog_v1alpha1_ClientConfig(ref common.Re Format: "byte", }, }, + "serverName": { + SchemaProps: spec.SchemaProps{ + Description: "ServerName is used to verify the hostname on the returned certificates unless InsecureSkipVerify is given. It is also included in the client's handshake to support virtual hosting unless it is an IP address.", + Type: []string{"string"}, + Format: "", + }, + }, }, }, }, @@ -19711,6 +19724,22 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodRuntimeSettings(ref common.Refere SchemaProps: spec.SchemaProps{ Type: []string{"object"}, Properties: map[string]spec.Schema{ + "podAnnotations": { + SchemaProps: spec.SchemaProps{ + Description: "PodAnnotations are the annotations that will be attached with the respective Pod", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, "nodeSelector": { SchemaProps: spec.SchemaProps{ 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/", @@ -19734,6 +19763,22 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodRuntimeSettings(ref common.Refere Format: "", }, }, + "serviceAccountAnnotations": { + SchemaProps: spec.SchemaProps{ + Description: "ServiceAccountAnnotations are the annotations that will be attached with the respective ServiceAccount", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, "automountServiceAccountToken": { SchemaProps: spec.SchemaProps{ Description: "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.", @@ -20056,11 +20101,36 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodSpec(ref common.ReferenceCallback Ref: ref("k8s.io/api/core/v1.SecurityContext"), }, }, + "topologySpreadConstraints": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "topologyKey", + "whenUnsatisfiable", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "topologyKey", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + 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.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.TopologySpreadConstraint"), + }, + }, + }, + }, + }, }, }, }, Dependencies: []string{ - "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.Toleration"}, + "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.TopologySpreadConstraint"}, } } diff --git a/vendor/kubedb.dev/apimachinery/apis/ui/v1alpha1/zz_generated.deepcopy.go b/vendor/kubedb.dev/apimachinery/apis/ui/v1alpha1/zz_generated.deepcopy.go index dffbbb26f..a5c0fc8fd 100644 --- a/vendor/kubedb.dev/apimachinery/apis/ui/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/kubedb.dev/apimachinery/apis/ui/v1alpha1/zz_generated.deepcopy.go @@ -196,7 +196,7 @@ func (in *ElasticsearchInsightList) DeepCopyObject() runtime.Object { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ElasticsearchInsightSpec) DeepCopyInto(out *ElasticsearchInsightSpec) { *out = *in - in.ClusterHealth.DeepCopyInto(&out.ClusterHealth) + in.ElasticsearchClusterHealth.DeepCopyInto(&out.ElasticsearchClusterHealth) return } diff --git a/vendor/kubedb.dev/apimachinery/crds/catalog.kubedb.com_pgbouncerversions.yaml b/vendor/kubedb.dev/apimachinery/crds/catalog.kubedb.com_pgbouncerversions.yaml index a6b7ce66c..854b2c9a8 100644 --- a/vendor/kubedb.dev/apimachinery/crds/catalog.kubedb.com_pgbouncerversions.yaml +++ b/vendor/kubedb.dev/apimachinery/crds/catalog.kubedb.com_pgbouncerversions.yaml @@ -24,8 +24,8 @@ spec: - jsonPath: .spec.version name: Version type: string - - jsonPath: .spec.server.image - name: SERVER_IMAGE + - jsonPath: .spec.pgBouncer.image + name: PGBOUNCER_IMAGE type: string - jsonPath: .spec.deprecated name: Deprecated @@ -54,7 +54,14 @@ spec: required: - image type: object - server: + initContainer: + properties: + image: + type: string + required: + - image + type: object + pgBouncer: properties: image: type: string @@ -65,7 +72,7 @@ spec: type: string required: - exporter - - server + - pgBouncer - version type: object type: object diff --git a/vendor/kubedb.dev/apimachinery/crds/dashboard.kubedb.com_elasticsearchdashboards.yaml b/vendor/kubedb.dev/apimachinery/crds/dashboard.kubedb.com_elasticsearchdashboards.yaml index a226e00ce..0996fec20 100644 --- a/vendor/kubedb.dev/apimachinery/crds/dashboard.kubedb.com_elasticsearchdashboards.yaml +++ b/vendor/kubedb.dev/apimachinery/crds/dashboard.kubedb.com_elasticsearchdashboards.yaml @@ -1502,6 +1502,49 @@ spec: 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 + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + maxSkew: + format: int32 + type: integer + 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 replicas: diff --git a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_elasticsearches.yaml b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_elasticsearches.yaml index 7a192a2ec..31acfb16b 100644 --- a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_elasticsearches.yaml +++ b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_elasticsearches.yaml @@ -2417,6 +2417,49 @@ spec: 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 + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + maxSkew: + format: int32 + type: integer + 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 replicas: diff --git a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_etcds.yaml b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_etcds.yaml index 9edd92b3f..ae20821d6 100644 --- a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_etcds.yaml +++ b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_etcds.yaml @@ -2353,6 +2353,49 @@ spec: 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 + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + maxSkew: + format: int32 + type: integer + 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 replicas: diff --git a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_mariadbs.yaml b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_mariadbs.yaml index df9a8664d..6b132aee4 100644 --- a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_mariadbs.yaml +++ b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_mariadbs.yaml @@ -2503,6 +2503,49 @@ spec: 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 + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + maxSkew: + format: int32 + type: integer + 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 replicas: diff --git a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_memcacheds.yaml b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_memcacheds.yaml index 4c4daeb7b..d26c2d41f 100644 --- a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_memcacheds.yaml +++ b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_memcacheds.yaml @@ -2344,6 +2344,49 @@ spec: 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 + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + maxSkew: + format: int32 + type: integer + 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 replicas: diff --git a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_mongodbs.yaml b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_mongodbs.yaml index 395b03898..5531c2a8f 100644 --- a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_mongodbs.yaml +++ b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_mongodbs.yaml @@ -112,6 +112,1504 @@ spec: type: object type: object type: object + arbiter: + nullable: true + properties: + configSecret: + properties: + name: + type: string + type: object + podTemplate: + 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 + required: + - key + - operator + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + weight: + format: int32 + type: integer + required: + - preference + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + type: array + required: + - nodeSelectorTerms + type: object + 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 + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + 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 + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + type: object + type: object + args: + items: + type: string + type: array + containerSecurityContext: + properties: + allowPrivilegeEscalation: + type: boolean + capabilities: + properties: + add: + items: + type: string + type: array + drop: + items: + type: string + type: array + 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 + runAsUserName: + type: string + type: object + type: object + dnsConfig: + properties: + nameservers: + items: + type: string + type: array + options: + items: + properties: + name: + type: string + value: + type: string + type: object + type: array + searches: + items: + type: string + type: array + type: object + dnsPolicy: + type: string + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + 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 + secretKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + type: object + required: + - name + type: object + type: array + hostIPC: + type: boolean + hostNetwork: + type: boolean + hostPID: + type: boolean + imagePullSecrets: + items: + properties: + name: + type: string + type: object + type: array + initContainers: + items: + properties: + args: + items: + type: string + type: array + command: + items: + type: string + type: array + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + 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 + secretKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + type: object + required: + - name + type: object + type: array + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: string + optional: + type: boolean + type: object + prefix: + type: string + secretRef: + properties: + name: + type: string + optional: + type: boolean + type: object + type: object + type: array + image: + type: string + imagePullPolicy: + type: string + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + 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 + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + 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 + type: object + failureThreshold: + format: int32 + type: integer + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + 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 + type: object + failureThreshold: + format: int32 + type: integer + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + 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: + 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 + capabilities: + properties: + add: + items: + type: string + type: array + drop: + items: + type: string + type: array + 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 + runAsUserName: + type: string + type: object + type: object + startupProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + 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 + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + workingDir: + type: string + required: + - name + type: object + type: array + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + 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 + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + 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 + type: object + failureThreshold: + format: int32 + type: integer + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + 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 + priority: + format: int32 + type: integer + priorityClassName: + type: string + readinessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + 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: + 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 + schedulerName: + type: string + securityContext: + properties: + 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 + sysctls: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + runAsUserName: + type: string + type: object + type: object + serviceAccountName: + type: string + shareProcessNamespace: + type: boolean + 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 + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + maxSkew: + format: int32 + type: integer + 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 + type: object authSecret: properties: name: @@ -2526,6 +4024,49 @@ spec: 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 + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + maxSkew: + format: int32 + type: integer + 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 replicaSet: @@ -4072,6 +5613,49 @@ spec: 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 + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + maxSkew: + format: int32 + type: integer + 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 prefix: @@ -5600,6 +7184,49 @@ spec: 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 + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + maxSkew: + format: int32 + type: integer + 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 prefix: @@ -7072,6 +8699,49 @@ spec: 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 + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + maxSkew: + format: int32 + type: integer + 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 prefix: diff --git a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_mysqls.yaml b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_mysqls.yaml index 818b58f0f..bf3b0f4de 100644 --- a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_mysqls.yaml +++ b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_mysqls.yaml @@ -2567,6 +2567,49 @@ spec: 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 + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + maxSkew: + format: int32 + type: integer + 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 replicas: @@ -4287,6 +4330,49 @@ spec: 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 + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + maxSkew: + format: int32 + type: integer + 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 replicas: diff --git a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_perconaxtradbs.yaml b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_perconaxtradbs.yaml index bf4c410d0..1a406b8a5 100644 --- a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_perconaxtradbs.yaml +++ b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_perconaxtradbs.yaml @@ -2358,6 +2358,49 @@ spec: 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 + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + maxSkew: + format: int32 + type: integer + 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 replicas: diff --git a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_pgbouncers.yaml b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_pgbouncers.yaml index 0c0233d69..4c6fcc9f4 100644 --- a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_pgbouncers.yaml +++ b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_pgbouncers.yaml @@ -55,6 +55,15 @@ spec: type: string type: array authType: + enum: + - md5 + - scram + - cert + - plain + - trust + - any + - hba + - pam type: string authUser: type: string @@ -1732,6 +1741,49 @@ spec: 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 + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + maxSkew: + format: int32 + type: integer + 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 replicas: @@ -1807,6 +1859,21 @@ spec: - alias type: object type: array + sslMode: + enum: + - disable + - allow + - prefer + - require + - verify-ca + - verify-full + type: string + terminationPolicy: + enum: + - Delete + - WipeOut + - DoNotTerminate + type: string tls: properties: certificates: diff --git a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_postgreses.yaml b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_postgreses.yaml index 5e6d51041..f84e91d04 100644 --- a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_postgreses.yaml +++ b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_postgreses.yaml @@ -2538,6 +2538,49 @@ spec: 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 + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + maxSkew: + format: int32 + type: integer + 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 replicas: diff --git a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_proxysqls.yaml b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_proxysqls.yaml index 55aaa3982..896c063d0 100644 --- a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_proxysqls.yaml +++ b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_proxysqls.yaml @@ -1691,6 +1691,49 @@ spec: 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 + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + maxSkew: + format: int32 + type: integer + 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 replicas: @@ -1766,6 +1809,85 @@ spec: - alias type: object type: array + storage: + properties: + accessModes: + items: + type: string + type: array + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + 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 + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + storageClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + storageType: + enum: + - Durable + - Ephemeral + type: string + terminationPolicy: + enum: + - Halt + - Delete + - WipeOut + - DoNotTerminate + type: string tls: properties: certificates: diff --git a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_redises.yaml b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_redises.yaml index cce7ff694..60d326d0f 100644 --- a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_redises.yaml +++ b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_redises.yaml @@ -2520,6 +2520,49 @@ spec: 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 + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + maxSkew: + format: int32 + type: integer + 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 replicas: diff --git a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_redissentinels.yaml b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_redissentinels.yaml index 0f6212d1a..937231043 100644 --- a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_redissentinels.yaml +++ b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_redissentinels.yaml @@ -1662,6 +1662,49 @@ spec: 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 + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + maxSkew: + format: int32 + type: integer + 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 replicas: diff --git a/vendor/kubedb.dev/apimachinery/crds/ops.kubedb.com_mongodbopsrequests.yaml b/vendor/kubedb.dev/apimachinery/crds/ops.kubedb.com_mongodbopsrequests.yaml index ea5164d68..f04bffbc1 100644 --- a/vendor/kubedb.dev/apimachinery/crds/ops.kubedb.com_mongodbopsrequests.yaml +++ b/vendor/kubedb.dev/apimachinery/crds/ops.kubedb.com_mongodbopsrequests.yaml @@ -44,6 +44,22 @@ spec: properties: configuration: properties: + arbiter: + properties: + applyConfig: + additionalProperties: + type: string + type: object + configSecret: + properties: + name: + type: string + type: object + inlineConfig: + type: string + removeCustomConfig: + type: boolean + type: object configServer: properties: applyConfig: @@ -297,6 +313,25 @@ spec: type: object verticalScaling: properties: + arbiter: + 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 configServer: properties: limits: diff --git a/vendor/kubedb.dev/apimachinery/crds/ops.kubedb.com_redisopsrequests.yaml b/vendor/kubedb.dev/apimachinery/crds/ops.kubedb.com_redisopsrequests.yaml index 2877e4e5c..be1639b33 100644 --- a/vendor/kubedb.dev/apimachinery/crds/ops.kubedb.com_redisopsrequests.yaml +++ b/vendor/kubedb.dev/apimachinery/crds/ops.kubedb.com_redisopsrequests.yaml @@ -1495,6 +1495,49 @@ spec: 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 + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + maxSkew: + format: int32 + type: integer + 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 removeCustomConfig: diff --git a/vendor/kubedb.dev/apimachinery/crds/schema.kubedb.com_mariadbdatabases.yaml b/vendor/kubedb.dev/apimachinery/crds/schema.kubedb.com_mariadbdatabases.yaml index 2cb482206..e181da62c 100644 --- a/vendor/kubedb.dev/apimachinery/crds/schema.kubedb.com_mariadbdatabases.yaml +++ b/vendor/kubedb.dev/apimachinery/crds/schema.kubedb.com_mariadbdatabases.yaml @@ -67,6 +67,17 @@ spec: database: properties: config: + properties: + characterSet: + type: string + collation: + type: string + comment: + type: string + name: + type: string + required: + - name type: object serverRef: properties: diff --git a/vendor/modules.txt b/vendor/modules.txt index 064e4a27f..4f5c96ec7 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -338,7 +338,7 @@ gomodules.xyz/jsonpatch/v2 # gomodules.xyz/logs v0.0.6 ## explicit; go 1.16 gomodules.xyz/logs -# gomodules.xyz/mergo v0.3.13-0.20210702100041-9d62ff8ece4d +# gomodules.xyz/mergo v0.3.13-0.20220214162359-48efe39fd402 ## explicit; go 1.13 gomodules.xyz/mergo # gomodules.xyz/password-generator v0.2.7 @@ -356,7 +356,7 @@ gomodules.xyz/sets # gomodules.xyz/wait v0.2.0 ## explicit; go 1.14 gomodules.xyz/wait -# gomodules.xyz/x v0.0.13 +# gomodules.xyz/x v0.0.14 ## explicit; go 1.17 gomodules.xyz/x/analytics gomodules.xyz/x/arrays @@ -717,7 +717,7 @@ k8s.io/utils/exec k8s.io/utils/integer k8s.io/utils/pointer k8s.io/utils/trace -# kmodules.xyz/client-go v0.0.0-20220317213815-2a6d5a5784f2 +# kmodules.xyz/client-go v0.0.0-20220427165208-36281a681909 ## explicit; go 1.17 kmodules.xyz/client-go kmodules.xyz/client-go/api/v1 @@ -731,7 +731,7 @@ kmodules.xyz/client-go/tools/analytics kmodules.xyz/client-go/tools/cli kmodules.xyz/client-go/tools/clusterid kmodules.xyz/client-go/tools/portforward -# kmodules.xyz/custom-resources v0.0.0-20220317220154-7beb809b1f5e +# kmodules.xyz/custom-resources v0.0.0-20220422215041-237eae1d7ddd ## explicit; go 1.17 kmodules.xyz/custom-resources/apis/appcatalog kmodules.xyz/custom-resources/apis/appcatalog/v1alpha1 @@ -752,13 +752,13 @@ kmodules.xyz/monitoring-agent-api/api/v1alpha1 # kmodules.xyz/objectstore-api v0.0.0-20220317220441-f1d593d0a778 ## explicit; go 1.15 kmodules.xyz/objectstore-api/api/v1 -# kmodules.xyz/offshoot-api v0.0.0-20220323112402-3b0fd2ea77d6 +# kmodules.xyz/offshoot-api v0.0.0-20220420055916-fefb02c26514 ## explicit; go 1.15 kmodules.xyz/offshoot-api/api/v1 -# kmodules.xyz/prober v0.0.0-20210618020259-5836fb959027 +# kmodules.xyz/prober v0.0.0-20220317043828-5ae0114adcad ## explicit; go 1.15 kmodules.xyz/prober/api/v1 -# kubedb.dev/apimachinery v0.26.0 +# kubedb.dev/apimachinery v0.26.1-0.20220508053725-74c4fc13ef02 ## explicit; go 1.17 kubedb.dev/apimachinery/apis kubedb.dev/apimachinery/apis/autoscaling @@ -916,7 +916,7 @@ sigs.k8s.io/structured-merge-diff/v4/value # sigs.k8s.io/yaml v1.3.0 ## explicit; go 1.12 sigs.k8s.io/yaml -# stash.appscode.dev/apimachinery v0.18.0 +# stash.appscode.dev/apimachinery v0.20.0 ## explicit; go 1.17 stash.appscode.dev/apimachinery/apis stash.appscode.dev/apimachinery/apis/repositories diff --git a/vendor/stash.appscode.dev/apimachinery/apis/constants.go b/vendor/stash.appscode.dev/apimachinery/apis/constants.go index c524f0f68..82ad00345 100644 --- a/vendor/stash.appscode.dev/apimachinery/apis/constants.go +++ b/vendor/stash.appscode.dev/apimachinery/apis/constants.go @@ -165,20 +165,6 @@ const ( const ( PromJobStashBackup = "stash-backup" PromJobStashRestore = "stash-restore" - - // RepositoryMetricsPushed whether the Repository metrics for this backup session were pushed or not - RepositoryMetricsPushed = "RepositoryMetricsPushed" - // SuccessfullyPushedRepositoryMetrics indicates that the condition transitioned to this state because the repository metrics was successfully pushed to the pushgateway - SuccessfullyPushedRepositoryMetrics = "SuccessfullyPushedRepositoryMetrics" - // FailedToPushRepositoryMetrics indicates that the condition transitioned to this state because the Stash was unable to push the repository metrics to the pushgateway - FailedToPushRepositoryMetrics = "FailedToPushRepositoryMetrics" - - // MetricsPushed whether the metrics for this backup session were pushed or not - MetricsPushed = "MetricsPushed" - // SuccessfullyPushedMetrics indicates that the condition transitioned to this state because the metrics was successfully pushed to the pushgateway - SuccessfullyPushedMetrics = "SuccessfullyPushedMetrics" - // FailedToPushMetrics indicates that the condition transitioned to this state because the Stash was unable to push the metrics to the pushgateway - FailedToPushMetrics = "FailedToPushMetrics" ) // ==================== RBAC related constants ========================== @@ -196,149 +182,3 @@ const ( StashVolumeSnapshotRestorerClusterRole = "stash-vs-restorer-job" StashStorageClassReaderClusterRole = "stash-sc-reader" ) - -// ================== Condition Types Related Constants =========================== -const ( - // RepositoryFound indicates whether the respective Repository object was found or not. - RepositoryFound = "RepositoryFound" - // ValidationPassed indicates the validation conditions of the CRD are passed or not. - ValidationPassed = "ValidationPassed" - // ResourceValidationPassed indicates that the condition transitioned to this state because the CRD meets validation criteria - ResourceValidationPassed = "ResourceValidationPassed" - // ResourceValidationFailed indicates that the condition transitioned to this state because the CRD does not meet validation criteria - ResourceValidationFailed = "ResourceValidationFailed" - // BackendSecretFound indicates whether the respective backend secret was found or not. - BackendSecretFound = "BackendSecretFound" - - // BackupTargetFound indicates whether the backup target was found - BackupTargetFound = "BackupTargetFound" - // StashSidecarInjected indicates whether stash sidecar was injected into the targeted workload - // This condition is applicable only for sidecar model - StashSidecarInjected = "StashSidecarInjected" - // CronJobCreated indicates whether the backup triggering CronJob was created - CronJobCreated = "CronJobCreated" - - // RestoreTargetFound indicates whether the restore target was found - RestoreTargetFound = "RestoreTargetFound" - // StashInitContainerInjected indicates whether stash init-container was injected into the targeted workload - // This condition is applicable only for sidecar model - StashInitContainerInjected = "StashInitContainerInjected" - // RestoreJobCreated indicates whether the restore job was created - RestoreJobCreated = "RestoreJobCreated" - // RestoreCompleted condition indicates whether the restore process has been completed or not. - // This condition is particularly helpful when the restore addon require some additional operations to perform - // before marking the RestoreSession Succeeded/Failed. - RestoreCompleted = "RestoreCompleted" - // RestorerEnsured condition indicates whether the restore job / init-container was created or not. - RestorerEnsured = "RestorerEnsured" - - // GlobalPreBackupHookSucceeded indicates whether the global PreBackupHook was executed successfully or not - GlobalPreBackupHookSucceeded = "GlobalPreBackupHookSucceeded" - // GlobalPostBackupHookSucceeded indicates whether the global PostBackupHook was executed successfully or not - GlobalPostBackupHookSucceeded = "GlobalPostBackupHookSucceeded" - // GlobalPreRestoreHookSucceeded indicates whether the global PreRestoreHook was executed successfully or not - GlobalPreRestoreHookSucceeded = "GlobalPreRestoreHookSucceeded" - // GlobalPostRestoreHookSucceeded indicates whether the global PostRestoreHook was executed successfully or not - GlobalPostRestoreHookSucceeded = "GlobalPostRestoreHookSucceeded" - // BackendRepositoryInitialized indicates that whether backend repository was initialized or not - BackendRepositoryInitialized = "BackendRepositoryInitialized" - // RetentionPolicyApplied indicates that whether the retention policies were applied or not - RetentionPolicyApplied = "RetentionPolicyApplied" - // RepositoryIntegrityVerified indicates whether the repository integrity check succeeded or not - RepositoryIntegrityVerified = "RepositoryIntegrityVerified" -) - -// ================== Condition Types Related Constants =========================== -const ( - // RepositoryAvailable indicates that the condition transitioned to this state because the Repository was available - RepositoryAvailable = "RepositoryAvailable" - // RepositoryNotAvailable indicates that the condition transitioned to this state because the Repository was not available - RepositoryNotAvailable = "RepositoryNotAvailable" - // UnableToCheckRepositoryAvailability indicates that the condition transitioned to this state because operator was unable - // to check the Repository availability - UnableToCheckRepositoryAvailability = "UnableToCheckRepositoryAvailability" - - // BackendSecretAvailable indicates that the condition transitioned to this state because the backend Secret was available - BackendSecretAvailable = "BackendSecretAvailable" - // BackendSecretNotAvailable indicates that the condition transitioned to this state because the backend Secret was not available - BackendSecretNotAvailable = "BackendSecretNotAvailable" - // UnableToCheckBackendSecretAvailability indicates that the condition transitioned to this state because operator was unable - // to check the backend Secret availability - UnableToCheckBackendSecretAvailability = "UnableToCheckBackendSecretAvailability" - - // TargetAvailable indicates that the condition transitioned to this state because the target was available - TargetAvailable = "TargetAvailable" - // TargetNotAvailable indicates that the condition transitioned to this state because the target was not available - TargetNotAvailable = "TargetNotAvailable" - // UnableToCheckTargetAvailability indicates that the condition transitioned to this state because operator was unable - // to check the target availability - UnableToCheckTargetAvailability = "UnableToCheckTargetAvailability" - - // SidecarInjectionSucceeded indicates that the condition transitioned to this state because sidecar was injected - // successfully into the targeted workload - SidecarInjectionSucceeded = "SidecarInjectionSucceeded" - // SidecarInjectionFailed indicates that the condition transitioned to this state because operator was unable - // to inject sidecar into the targeted workload - SidecarInjectionFailed = "SidecarInjectionFailed" - - // InitContainerInjectionSucceeded indicates that the condition transitioned to this state because stash init-container - // was injected successfully into the targeted workload - InitContainerInjectionSucceeded = "InitContainerInjectionSucceeded" - // InitContainerInjectionFailed indicates that the condition transitioned to this state because operator was unable - // to inject stash init-container into the targeted workload - InitContainerInjectionFailed = "InitContainerInjectionFailed" - - // CronJobCreationSucceeded indicates that the condition transitioned to this state because backup triggering CronJob was created successfully - CronJobCreationSucceeded = "CronJobCreationSucceeded" - // CronJobCreationFailed indicates that the condition transitioned to this state because operator was unable to create backup triggering CronJob - CronJobCreationFailed = "CronJobCreationFailed" - - // RestoreJobCreationSucceeded indicates that the condition transitioned to this state because restore job was created successfully - RestoreJobCreationSucceeded = "RestoreJobCreationSucceeded" - // RestoreJobCreationFailed indicates that the condition transitioned to this state because operator was unable to create restore job - RestoreJobCreationFailed = "RestoreJobCreationFailed" - - // GlobalPreBackupHookExecutedSuccessfully indicates that the condition transitioned to this state because the global PreBackupHook was executed successfully - GlobalPreBackupHookExecutedSuccessfully = "GlobalPreBackupHookExecutedSuccessfully" - // GlobalPreBackupHookExecutionFailed indicates that the condition transitioned to this state because the Stash was unable to execute global PreBackupHook - GlobalPreBackupHookExecutionFailed = "GlobalPreBackupHookExecutionFailed" - - // GlobalPostBackupHookExecutedSuccessfully indicates that the condition transitioned to this state because the global PostBackupHook was executed successfully - GlobalPostBackupHookExecutedSuccessfully = "GlobalPostBackupHookExecutedSuccessfully" - // GlobalPostBackupHookExecutionFailed indicates that the condition transitioned to this state because the Stash was unable to execute global PostBackupHook - GlobalPostBackupHookExecutionFailed = "GlobalPostBackupHookExecutionFailed" - - // GlobalPreRestoreHookExecutedSuccessfully indicates that the condition transitioned to this state because the global PreRestoreHook was executed successfully - GlobalPreRestoreHookExecutedSuccessfully = "GlobalPreRestoreHookExecutedSuccessfully" - // GlobalPreRestoreHookExecutionFailed indicates that the condition transitioned to this state because the Stash was unable to execute global PreRestoreHook - GlobalPreRestoreHookExecutionFailed = "GlobalPreRestoreHookExecutionFailed" - - // GlobalPostRestoreHookExecutedSuccessfully indicates that the condition transitioned to this state because the global PostRestoreHook was executed successfully - GlobalPostRestoreHookExecutedSuccessfully = "GlobalPostRestoreHookExecutedSuccessfully" - // GlobalPostRestoreHookExecutionFailed indicates that the condition transitioned to this state because the Stash was unable to execute global PostRestoreHook - GlobalPostRestoreHookExecutionFailed = "GlobalPostRestoreHookExecutionFailed" - - // BackendRepositoryFound indicates that the condition transitioned to this state because the restic repository was found in the backend - BackendRepositoryFound = "BackendRepositoryFound" - // FailedToInitializeBackendRepository indicates that the condition transitioned to this state because the Stash was unable to initialize a repository in the backend - FailedToInitializeBackendRepository = "FailedToInitializeBackendRepository" - // SuccessfullyAppliedRetentionPolicy indicates that the condition transitioned to this state because the retention policies was applied successfully - SuccessfullyAppliedRetentionPolicy = "SuccessfullyAppliedRetentionPolicy" - // FailedToApplyRetentionPolicy indicates that the condition transitioned to this state because the Stash was unable to apply the retention policies - FailedToApplyRetentionPolicy = "FailedToApplyRetentionPolicy" - // SuccessfullyVerifiedRepositoryIntegrity indicates that the condition transitioned to this state because the repository has passed the integrity check - SuccessfullyVerifiedRepositoryIntegrity = "SuccessfullyVerifiedRepositoryIntegrity" - // FailedToVerifyRepositoryIntegrity indicates that the condition transitioned to this state because the repository has failed the integrity check - FailedToVerifyRepositoryIntegrity = "FailedToVerifyRepositoryIntegrity" -) - -// ==================== Action related constants ============ -const ( - // Pre-backup actions - InitializeBackendRepository = "InitializeBackendRepository" - - // Post-backup actions - ApplyRetentionPolicy = "ApplyRetentionPolicy" - VerifyRepositoryIntegrity = "VerifyRepositoryIntegrity" - SendRepositoryMetrics = "SendRepositoryMetrics" -) diff --git a/vendor/stash.appscode.dev/apimachinery/apis/repositories/v1alpha1/openapi_generated.go b/vendor/stash.appscode.dev/apimachinery/apis/repositories/v1alpha1/openapi_generated.go index f9e3f5ec3..f6144a8e7 100644 --- a/vendor/stash.appscode.dev/apimachinery/apis/repositories/v1alpha1/openapi_generated.go +++ b/vendor/stash.appscode.dev/apimachinery/apis/repositories/v1alpha1/openapi_generated.go @@ -17298,6 +17298,12 @@ func schema_custom_resources_apis_appcatalog_v1alpha1_AppBindingSpec(ref common. Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"), }, }, + "tlsSecret": { + SchemaProps: spec.SchemaProps{ + Description: "TLSSecret is the name of the secret that will hold the client certificate and private key associated with the AppBinding.", + Ref: ref("k8s.io/api/core/v1.LocalObjectReference"), + }, + }, }, Required: []string{"clientConfig"}, }, @@ -17378,6 +17384,13 @@ func schema_custom_resources_apis_appcatalog_v1alpha1_ClientConfig(ref common.Re Format: "byte", }, }, + "serverName": { + SchemaProps: spec.SchemaProps{ + Description: "ServerName is used to verify the hostname on the returned certificates unless InsecureSkipVerify is given. It is also included in the client's handshake to support virtual hosting unless it is an IP address.", + Type: []string{"string"}, + Format: "", + }, + }, }, }, }, @@ -18459,6 +18472,22 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodRuntimeSettings(ref common.Refere SchemaProps: spec.SchemaProps{ Type: []string{"object"}, Properties: map[string]spec.Schema{ + "podAnnotations": { + SchemaProps: spec.SchemaProps{ + Description: "PodAnnotations are the annotations that will be attached with the respective Pod", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, "nodeSelector": { SchemaProps: spec.SchemaProps{ 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/", @@ -18482,6 +18511,22 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodRuntimeSettings(ref common.Refere Format: "", }, }, + "serviceAccountAnnotations": { + SchemaProps: spec.SchemaProps{ + Description: "ServiceAccountAnnotations are the annotations that will be attached with the respective ServiceAccount", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, "automountServiceAccountToken": { SchemaProps: spec.SchemaProps{ Description: "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.", @@ -18585,11 +18630,36 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodRuntimeSettings(ref common.Refere Format: "", }, }, + "topologySpreadConstraints": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "topologyKey", + "whenUnsatisfiable", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "topologyKey", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + 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.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.TopologySpreadConstraint"), + }, + }, + }, + }, + }, }, }, }, Dependencies: []string{ - "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodReadinessGate", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration"}, + "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodReadinessGate", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.TopologySpreadConstraint"}, } } @@ -18804,11 +18874,36 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodSpec(ref common.ReferenceCallback Ref: ref("k8s.io/api/core/v1.SecurityContext"), }, }, + "topologySpreadConstraints": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "topologyKey", + "whenUnsatisfiable", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "topologyKey", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + 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.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.TopologySpreadConstraint"), + }, + }, + }, + }, + }, }, }, }, Dependencies: []string{ - "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.Toleration"}, + "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.TopologySpreadConstraint"}, } } diff --git a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1alpha1/openapi_generated.go b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1alpha1/openapi_generated.go index 93854961c..8b5ec86dc 100644 --- a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1alpha1/openapi_generated.go +++ b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1alpha1/openapi_generated.go @@ -17303,6 +17303,12 @@ func schema_custom_resources_apis_appcatalog_v1alpha1_AppBindingSpec(ref common. Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"), }, }, + "tlsSecret": { + SchemaProps: spec.SchemaProps{ + Description: "TLSSecret is the name of the secret that will hold the client certificate and private key associated with the AppBinding.", + Ref: ref("k8s.io/api/core/v1.LocalObjectReference"), + }, + }, }, Required: []string{"clientConfig"}, }, @@ -17383,6 +17389,13 @@ func schema_custom_resources_apis_appcatalog_v1alpha1_ClientConfig(ref common.Re Format: "byte", }, }, + "serverName": { + SchemaProps: spec.SchemaProps{ + Description: "ServerName is used to verify the hostname on the returned certificates unless InsecureSkipVerify is given. It is also included in the client's handshake to support virtual hosting unless it is an IP address.", + Type: []string{"string"}, + Format: "", + }, + }, }, }, }, @@ -18464,6 +18477,22 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodRuntimeSettings(ref common.Refere SchemaProps: spec.SchemaProps{ Type: []string{"object"}, Properties: map[string]spec.Schema{ + "podAnnotations": { + SchemaProps: spec.SchemaProps{ + Description: "PodAnnotations are the annotations that will be attached with the respective Pod", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, "nodeSelector": { SchemaProps: spec.SchemaProps{ 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/", @@ -18487,6 +18516,22 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodRuntimeSettings(ref common.Refere Format: "", }, }, + "serviceAccountAnnotations": { + SchemaProps: spec.SchemaProps{ + Description: "ServiceAccountAnnotations are the annotations that will be attached with the respective ServiceAccount", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, "automountServiceAccountToken": { SchemaProps: spec.SchemaProps{ Description: "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.", @@ -18590,11 +18635,36 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodRuntimeSettings(ref common.Refere Format: "", }, }, + "topologySpreadConstraints": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "topologyKey", + "whenUnsatisfiable", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "topologyKey", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + 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.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.TopologySpreadConstraint"), + }, + }, + }, + }, + }, }, }, }, Dependencies: []string{ - "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodReadinessGate", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration"}, + "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodReadinessGate", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.TopologySpreadConstraint"}, } } @@ -18809,11 +18879,36 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodSpec(ref common.ReferenceCallback Ref: ref("k8s.io/api/core/v1.SecurityContext"), }, }, + "topologySpreadConstraints": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "topologyKey", + "whenUnsatisfiable", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "topologyKey", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + 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.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.TopologySpreadConstraint"), + }, + }, + }, + }, + }, }, }, }, Dependencies: []string{ - "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.Toleration"}, + "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.TopologySpreadConstraint"}, } } diff --git a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/backup_batch_types.go b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/backup_batch_types.go index 4b1ff5164..63cea1ca7 100644 --- a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/backup_batch_types.go +++ b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/backup_batch_types.go @@ -120,3 +120,25 @@ type BackupBatchList struct { metav1.ListMeta `json:"metadata,omitempty"` Items []BackupBatch `json:"items,omitempty"` } + +// =============================== Condition Types ============================= +const ( + // GlobalPreBackupHookSucceeded indicates whether the global PreBackupHook was executed successfully or not + GlobalPreBackupHookSucceeded = "GlobalPreBackupHookSucceeded" + + // GlobalPostBackupHookSucceeded indicates whether the global PostBackupHook was executed successfully or not + GlobalPostBackupHookSucceeded = "GlobalPostBackupHookSucceeded" +) + +// ============================== Condition Reasons =========================== +const ( + // GlobalPreBackupHookExecutedSuccessfully indicates that the condition transitioned to this state because the global PreBackupHook was executed successfully + GlobalPreBackupHookExecutedSuccessfully = "GlobalPreBackupHookExecutedSuccessfully" + // GlobalPreBackupHookExecutionFailed indicates that the condition transitioned to this state because the Stash was unable to execute global PreBackupHook + GlobalPreBackupHookExecutionFailed = "GlobalPreBackupHookExecutionFailed" + + // GlobalPostBackupHookExecutedSuccessfully indicates that the condition transitioned to this state because the global PostBackupHook was executed successfully + GlobalPostBackupHookExecutedSuccessfully = "GlobalPostBackupHookExecutedSuccessfully" + // GlobalPostBackupHookExecutionFailed indicates that the condition transitioned to this state because the Stash was unable to execute global PostBackupHook + GlobalPostBackupHookExecutionFailed = "GlobalPostBackupHookExecutionFailed" +) diff --git a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/backup_blueprint_types.go b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/backup_blueprint_types.go index d38ed72df..24480cab9 100644 --- a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/backup_blueprint_types.go +++ b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/backup_blueprint_types.go @@ -48,7 +48,18 @@ type BackupBlueprint struct { type BackupBlueprintSpec struct { // RepositorySpec is used to create Repository crd for respective workload v1alpha1.RepositorySpec `json:",inline"` - Schedule string `json:"schedule,omitempty"` + // BackupNamespace specifies the namespace where the backup resources (i.e. BackupConfiguration, BackupSession, Job, Repository etc.) will be created. + // If you don't provide this field, then the backup resources will be created in the target namespace. + // +optional + BackupNamespace string `json:"backupNamespace,omitempty"` + // RepoNamespace lets you specify the namespace for the Repositories. If this field is not specified, Stash will create the Repository + // in the namespace pointed by the backupNamespace field. If neither of the backupNamespace and repoNamespace is specified, + // Stash will create the Repository in the target namespace. + // +optional + RepoNamespace string `json:"repoNamespace,omitempty"` + // Schedule specifies the default schedule for backup. + // You can overwrite this schedule for a particular target using 'stash.appscode.com/schedule' annotation. + Schedule string `json:"schedule,omitempty"` // Task specify the Task crd that specifies steps for backup process // +optional Task TaskRef `json:"task,omitempty"` diff --git a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/backup_configuration_types.go b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/backup_configuration_types.go index b5e702f20..9208a03c1 100644 --- a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/backup_configuration_types.go +++ b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/backup_configuration_types.go @@ -159,3 +159,69 @@ const ( BackupInvokerReady BackupInvokerPhase = "Ready" BackupInvokerNotReady BackupInvokerPhase = "NotReady" ) + +// ==================== Condition Types ============================ +const ( + // BackupTargetFound indicates whether the backup target was found + BackupTargetFound = "BackupTargetFound" + + // StashSidecarInjected indicates whether stash sidecar was injected into the targeted workload + // This condition is applicable only for sidecar model + StashSidecarInjected = "StashSidecarInjected" + + // CronJobCreated indicates whether the backup triggering CronJob was created + CronJobCreated = "CronJobCreated" + + // RepositoryFound indicates whether the respective Repository object was found or not. + RepositoryFound = "RepositoryFound" + + // BackendSecretFound indicates whether the respective backend secret was found or not. + BackendSecretFound = "BackendSecretFound" + + // ValidationPassed indicates the validation conditions of the CRD are passed or not. + ValidationPassed = "ValidationPassed" +) + +// ======================= Condition Reasons =========================== +const ( + // TargetAvailable indicates that the condition transitioned to this state because the target was available + TargetAvailable = "TargetAvailable" + // TargetNotAvailable indicates that the condition transitioned to this state because the target was not available + TargetNotAvailable = "TargetNotAvailable" + // UnableToCheckTargetAvailability indicates that the condition transitioned to this state because operator was unable + // to check the target availability + UnableToCheckTargetAvailability = "UnableToCheckTargetAvailability" + + // SidecarInjectionSucceeded indicates that the condition transitioned to this state because sidecar was injected + // successfully into the targeted workload + SidecarInjectionSucceeded = "SidecarInjectionSucceeded" + // SidecarInjectionFailed indicates that the condition transitioned to this state because operator was unable + // to inject sidecar into the targeted workload + SidecarInjectionFailed = "SidecarInjectionFailed" + + // CronJobCreationSucceeded indicates that the condition transitioned to this state because backup triggering CronJob was created successfully + CronJobCreationSucceeded = "CronJobCreationSucceeded" + // CronJobCreationFailed indicates that the condition transitioned to this state because operator was unable to create backup triggering CronJob + CronJobCreationFailed = "CronJobCreationFailed" + + // RepositoryAvailable indicates that the condition transitioned to this state because the Repository was available + RepositoryAvailable = "RepositoryAvailable" + // RepositoryNotAvailable indicates that the condition transitioned to this state because the Repository was not available + RepositoryNotAvailable = "RepositoryNotAvailable" + // UnableToCheckRepositoryAvailability indicates that the condition transitioned to this state because operator was unable + // to check the Repository availability + UnableToCheckRepositoryAvailability = "UnableToCheckRepositoryAvailability" + + // BackendSecretAvailable indicates that the condition transitioned to this state because the backend Secret was available + BackendSecretAvailable = "BackendSecretAvailable" + // BackendSecretNotAvailable indicates that the condition transitioned to this state because the backend Secret was not available + BackendSecretNotAvailable = "BackendSecretNotAvailable" + // UnableToCheckBackendSecretAvailability indicates that the condition transitioned to this state because operator was unable + // to check the backend Secret availability + UnableToCheckBackendSecretAvailability = "UnableToCheckBackendSecretAvailability" + + // ResourceValidationPassed indicates that the condition transitioned to this state because the CRD meets validation criteria + ResourceValidationPassed = "ResourceValidationPassed" + // ResourceValidationFailed indicates that the condition transitioned to this state because the CRD does not meet validation criteria + ResourceValidationFailed = "ResourceValidationFailed" +) diff --git a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/backup_session_types.go b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/backup_session_types.go index 9cab82b73..f008f01c6 100644 --- a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/backup_session_types.go +++ b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/backup_session_types.go @@ -117,6 +117,9 @@ type BackupTargetStatus struct { // PostBackupActions specifies a list of actions that the backup process should execute after taking backup // +optional PostBackupActions []string `json:"postBackupActions,omitempty"` + // Conditions shows condition of different operations/steps of the backup process for this target + // +optional + Conditions []kmapi.Condition `json:"conditions,omitempty"` } type HostBackupStats struct { @@ -170,3 +173,83 @@ type BackupSessionList struct { metav1.ListMeta `json:"metadata,omitempty"` Items []BackupSession `json:"items,omitempty"` } + +// =============================== Pre-backup Actions ============================ +const ( + InitializeBackendRepository = "InitializeBackendRepository" +) + +// ============================== Post-backup Actions ========================== +const ( + ApplyRetentionPolicy = "ApplyRetentionPolicy" + VerifyRepositoryIntegrity = "VerifyRepositoryIntegrity" + SendRepositoryMetrics = "SendRepositoryMetrics" +) + +// ============================ Condition Types ======================== +const ( + // RetentionPolicyApplied indicates that whether the retention policies were applied or not + RetentionPolicyApplied = "RetentionPolicyApplied" + + // BackendRepositoryInitialized indicates that whether backend repository was initialized or not + BackendRepositoryInitialized = "BackendRepositoryInitialized" + + // RepositoryIntegrityVerified indicates whether the repository integrity check succeeded or not + RepositoryIntegrityVerified = "RepositoryIntegrityVerified" + + // RepositoryMetricsPushed indicates whether the Repository metrics for this backup session were pushed or not + RepositoryMetricsPushed = "RepositoryMetricsPushed" + + // BackupSkipped indicates that the current session was skipped + BackupSkipped = "BackupSkipped" + + // BackupHistoryCleaned indicates whether the backup history was cleaned or not according to backupHistoryLimit + BackupHistoryCleaned = "BackupHistoryCleaned" + + // BackupExecutorEnsured indicates whether the backup executor entity was created or not + BackupExecutorEnsured = "BackupExecutorEnsured" + + // PreBackupHookExecutionSucceeded indicates whether the preBackup hook was executed successfully or not + PreBackupHookExecutionSucceeded = "PreBackupHookExecutionSucceeded" + + // PostBackupHookExecutionSucceeded indicates whether the postBackup hook was executed successfully or not + PostBackupHookExecutionSucceeded = "PostBackupHookExecutionSucceeded" +) + +// =========================== Condition Reasons ======================= +const ( + // SuccessfullyAppliedRetentionPolicy indicates that the condition transitioned to this state because the retention policies was applied successfully + SuccessfullyAppliedRetentionPolicy = "SuccessfullyAppliedRetentionPolicy" + // FailedToApplyRetentionPolicy indicates that the condition transitioned to this state because the Stash was unable to apply the retention policies + FailedToApplyRetentionPolicy = "FailedToApplyRetentionPolicy" + + // BackendRepositoryFound indicates that the condition transitioned to this state because the restic repository was found in the backend + BackendRepositoryFound = "BackendRepositoryFound" + // FailedToInitializeBackendRepository indicates that the condition transitioned to this state because the Stash was unable to initialize a repository in the backend + FailedToInitializeBackendRepository = "FailedToInitializeBackendRepository" + + // SuccessfullyVerifiedRepositoryIntegrity indicates that the condition transitioned to this state because the repository has passed the integrity check + SuccessfullyVerifiedRepositoryIntegrity = "SuccessfullyVerifiedRepositoryIntegrity" + // FailedToVerifyRepositoryIntegrity indicates that the condition transitioned to this state because the repository has failed the integrity check + FailedToVerifyRepositoryIntegrity = "FailedToVerifyRepositoryIntegrity" + + // SuccessfullyPushedRepositoryMetrics indicates that the condition transitioned to this state because the repository metrics was successfully pushed to the pushgateway + SuccessfullyPushedRepositoryMetrics = "SuccessfullyPushedRepositoryMetrics" + // FailedToPushRepositoryMetrics indicates that the condition transitioned to this state because the Stash was unable to push the repository metrics to the pushgateway + FailedToPushRepositoryMetrics = "FailedToPushRepositoryMetrics" + + // SkippedTakingNewBackup indicates that the backup was skipped because another backup was running or backup invoker is not ready state. + SkippedTakingNewBackup = "SkippedTakingNewBackup" + + SuccessfullyCleanedBackupHistory = "SuccessfullyCleanedBackupHistory" + FailedToCleanBackupHistory = "FailedToCleanBackupHistory" + + SuccessfullyEnsuredBackupExecutor = "SuccessfullyEnsuredBackupExecutor" + FailedToEnsureBackupExecutor = "FailedToEnsureBackupExecutor" + + SuccessfullyExecutedPreBackupHook = "SuccessfullyExecutedPreBackupHook" + FailedToExecutePreBackupHook = "FailedToExecutePreBackupHook" + + SuccessfullyExecutedPostBackupHook = "SuccessfullyExecutedPostBackupHook" + FailedToExecutePostBackupHook = "FailedToExecutePostBackupHook" +) diff --git a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/openapi_generated.go b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/openapi_generated.go index 4c5172652..04971f8ac 100644 --- a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/openapi_generated.go +++ b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/openapi_generated.go @@ -435,7 +435,9 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA "stash.appscode.dev/apimachinery/apis/stash/v1beta1.RestoreTargetSpec": schema_apimachinery_apis_stash_v1beta1_RestoreTargetSpec(ref), "stash.appscode.dev/apimachinery/apis/stash/v1beta1.Rule": schema_apimachinery_apis_stash_v1beta1_Rule(ref), "stash.appscode.dev/apimachinery/apis/stash/v1beta1.SnapshotStats": schema_apimachinery_apis_stash_v1beta1_SnapshotStats(ref), + "stash.appscode.dev/apimachinery/apis/stash/v1beta1.Summary": schema_apimachinery_apis_stash_v1beta1_Summary(ref), "stash.appscode.dev/apimachinery/apis/stash/v1beta1.TargetRef": schema_apimachinery_apis_stash_v1beta1_TargetRef(ref), + "stash.appscode.dev/apimachinery/apis/stash/v1beta1.TargetStatus": schema_apimachinery_apis_stash_v1beta1_TargetStatus(ref), "stash.appscode.dev/apimachinery/apis/stash/v1beta1.Task": schema_apimachinery_apis_stash_v1beta1_Task(ref), "stash.appscode.dev/apimachinery/apis/stash/v1beta1.TaskList": schema_apimachinery_apis_stash_v1beta1_TaskList(ref), "stash.appscode.dev/apimachinery/apis/stash/v1beta1.TaskRef": schema_apimachinery_apis_stash_v1beta1_TaskRef(ref), @@ -17344,6 +17346,12 @@ func schema_custom_resources_apis_appcatalog_v1alpha1_AppBindingSpec(ref common. Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"), }, }, + "tlsSecret": { + SchemaProps: spec.SchemaProps{ + Description: "TLSSecret is the name of the secret that will hold the client certificate and private key associated with the AppBinding.", + Ref: ref("k8s.io/api/core/v1.LocalObjectReference"), + }, + }, }, Required: []string{"clientConfig"}, }, @@ -17424,6 +17432,13 @@ func schema_custom_resources_apis_appcatalog_v1alpha1_ClientConfig(ref common.Re Format: "byte", }, }, + "serverName": { + SchemaProps: spec.SchemaProps{ + Description: "ServerName is used to verify the hostname on the returned certificates unless InsecureSkipVerify is given. It is also included in the client's handshake to support virtual hosting unless it is an IP address.", + Type: []string{"string"}, + Format: "", + }, + }, }, }, }, @@ -18505,6 +18520,22 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodRuntimeSettings(ref common.Refere SchemaProps: spec.SchemaProps{ Type: []string{"object"}, Properties: map[string]spec.Schema{ + "podAnnotations": { + SchemaProps: spec.SchemaProps{ + Description: "PodAnnotations are the annotations that will be attached with the respective Pod", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, "nodeSelector": { SchemaProps: spec.SchemaProps{ 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/", @@ -18528,6 +18559,22 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodRuntimeSettings(ref common.Refere Format: "", }, }, + "serviceAccountAnnotations": { + SchemaProps: spec.SchemaProps{ + Description: "ServiceAccountAnnotations are the annotations that will be attached with the respective ServiceAccount", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, "automountServiceAccountToken": { SchemaProps: spec.SchemaProps{ Description: "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.", @@ -18631,11 +18678,36 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodRuntimeSettings(ref common.Refere Format: "", }, }, + "topologySpreadConstraints": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "topologyKey", + "whenUnsatisfiable", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "topologyKey", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + 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.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.TopologySpreadConstraint"), + }, + }, + }, + }, + }, }, }, }, Dependencies: []string{ - "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodReadinessGate", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration"}, + "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodReadinessGate", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.TopologySpreadConstraint"}, } } @@ -18850,11 +18922,36 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodSpec(ref common.ReferenceCallback Ref: ref("k8s.io/api/core/v1.SecurityContext"), }, }, + "topologySpreadConstraints": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "topologyKey", + "whenUnsatisfiable", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "topologyKey", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + 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.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.TopologySpreadConstraint"), + }, + }, + }, + }, + }, }, }, }, Dependencies: []string{ - "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.Toleration"}, + "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.TopologySpreadConstraint"}, } } @@ -19599,10 +19696,25 @@ func schema_apimachinery_apis_stash_v1beta1_BackupBlueprintSpec(ref common.Refer Ref: ref("stash.appscode.dev/apimachinery/apis/stash/v1alpha1.UsagePolicy"), }, }, + "backupNamespace": { + SchemaProps: spec.SchemaProps{ + Description: "BackupNamespace specifies the namespace where the backup resources (i.e. BackupConfiguration, BackupSession, Job, Repository etc.) will be created. If you don't provide this field, then the backup resources will be created in the target namespace.", + Type: []string{"string"}, + Format: "", + }, + }, + "repoNamespace": { + SchemaProps: spec.SchemaProps{ + Description: "RepoNamespace lets you specify the namespace for the Repositories. If this field is not specified, Stash will create the Repository in the namespace pointed by the backupNamespace field. If neither of the backupNamespace and repoNamespace is specified, Stash will create the Repository in the target namespace.", + Type: []string{"string"}, + Format: "", + }, + }, "schedule": { SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", + Description: "Schedule specifies the default schedule for backup. You can overwrite this schedule for a particular target using 'stash.appscode.com/schedule' annotation.", + Type: []string{"string"}, + Format: "", }, }, "task": { @@ -20345,11 +20457,25 @@ func schema_apimachinery_apis_stash_v1beta1_BackupTargetStatus(ref common.Refere }, }, }, + "conditions": { + SchemaProps: spec.SchemaProps{ + Description: "Conditions shows condition of different operations/steps of the backup process for this target", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("kmodules.xyz/client-go/api/v1.Condition"), + }, + }, + }, + }, + }, }, }, }, Dependencies: []string{ - "stash.appscode.dev/apimachinery/apis/stash/v1beta1.HostBackupStats", "stash.appscode.dev/apimachinery/apis/stash/v1beta1.TargetRef"}, + "kmodules.xyz/client-go/api/v1.Condition", "stash.appscode.dev/apimachinery/apis/stash/v1beta1.HostBackupStats", "stash.appscode.dev/apimachinery/apis/stash/v1beta1.TargetRef"}, } } @@ -21665,6 +21791,56 @@ func schema_apimachinery_apis_stash_v1beta1_SnapshotStats(ref common.ReferenceCa } } +func schema_apimachinery_apis_stash_v1beta1_Summary(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "Summary summarizes backup/restore session information for a target", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Description: "Name of the respective BackupSession/RestoreSession/RestoreBatch", + Type: []string{"string"}, + Format: "", + }, + }, + "namespace": { + SchemaProps: spec.SchemaProps{ + Description: "Namespace of the respective invoker", + Type: []string{"string"}, + Format: "", + }, + }, + "invoker": { + SchemaProps: spec.SchemaProps{ + Description: "Invoker specifies the information about the invoker which resulted this session", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.TypedLocalObjectReference"), + }, + }, + "target": { + SchemaProps: spec.SchemaProps{ + Description: "Target specifies the target information that has been backed up /restored in this session", + Default: map[string]interface{}{}, + Ref: ref("stash.appscode.dev/apimachinery/apis/stash/v1beta1.TargetRef"), + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Description: "Status specifies the backup/restore status for the respective target", + Default: map[string]interface{}{}, + Ref: ref("stash.appscode.dev/apimachinery/apis/stash/v1beta1.TargetStatus"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "k8s.io/api/core/v1.TypedLocalObjectReference", "stash.appscode.dev/apimachinery/apis/stash/v1beta1.TargetRef", "stash.appscode.dev/apimachinery/apis/stash/v1beta1.TargetStatus"}, + } +} + func schema_apimachinery_apis_stash_v1beta1_TargetRef(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ @@ -21689,6 +21865,45 @@ func schema_apimachinery_apis_stash_v1beta1_TargetRef(ref common.ReferenceCallba Format: "", }, }, + "namespace": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + } +} + +func schema_apimachinery_apis_stash_v1beta1_TargetStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "phase": { + SchemaProps: spec.SchemaProps{ + Description: "Phase represent the backup/restore phase of the target", + Type: []string{"string"}, + Format: "", + }, + }, + "duration": { + SchemaProps: spec.SchemaProps{ + Description: "Duration represent the amount of time it took to complete the backup for this target.", + Type: []string{"string"}, + Format: "", + }, + }, + "error": { + SchemaProps: spec.SchemaProps{ + Description: "Error specifies the respective error message in case of backup/restore failure", + Type: []string{"string"}, + Format: "", + }, + }, }, }, }, diff --git a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/restore_batch_types.go b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/restore_batch_types.go index b359a3d37..2a8c75faf 100644 --- a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/restore_batch_types.go +++ b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/restore_batch_types.go @@ -119,3 +119,25 @@ type RestoreBatchList struct { metav1.ListMeta `json:"metadata,omitempty"` Items []RestoreBatch `json:"items,omitempty"` } + +// =============================== Condition Types ===================================== +const ( + // GlobalPreRestoreHookSucceeded indicates whether the global PreRestoreHook was executed successfully or not + GlobalPreRestoreHookSucceeded = "GlobalPreRestoreHookSucceeded" + + // GlobalPostRestoreHookSucceeded indicates whether the global PostRestoreHook was executed successfully or not + GlobalPostRestoreHookSucceeded = "GlobalPostRestoreHookSucceeded" +) + +// ============================== Condition Reasons =================================== +const ( + // GlobalPreRestoreHookExecutedSuccessfully indicates that the condition transitioned to this state because the global PreRestoreHook was executed successfully + GlobalPreRestoreHookExecutedSuccessfully = "GlobalPreRestoreHookExecutedSuccessfully" + // GlobalPreRestoreHookExecutionFailed indicates that the condition transitioned to this state because the Stash was unable to execute global PreRestoreHook + GlobalPreRestoreHookExecutionFailed = "GlobalPreRestoreHookExecutionFailed" + + // GlobalPostRestoreHookExecutedSuccessfully indicates that the condition transitioned to this state because the global PostRestoreHook was executed successfully + GlobalPostRestoreHookExecutedSuccessfully = "GlobalPostRestoreHookExecutedSuccessfully" + // GlobalPostRestoreHookExecutionFailed indicates that the condition transitioned to this state because the Stash was unable to execute global PostRestoreHook + GlobalPostRestoreHookExecutionFailed = "GlobalPostRestoreHookExecutionFailed" +) diff --git a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/restore_session_types.go b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/restore_session_types.go index 9d61962da..3a770dafd 100644 --- a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/restore_session_types.go +++ b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/restore_session_types.go @@ -164,3 +164,65 @@ type HostRestoreStats struct { // +optional Error string `json:"error,omitempty"` } + +// ========================= Condition Types =================== +const ( + // RestoreTargetFound indicates whether the restore target was found + RestoreTargetFound = "RestoreTargetFound" + + // StashInitContainerInjected indicates whether stash init-container was injected into the targeted workload + // This condition is applicable only for sidecar model + StashInitContainerInjected = "StashInitContainerInjected" + + // RestoreJobCreated indicates whether the restore job was created + RestoreJobCreated = "RestoreJobCreated" + + // RestoreCompleted condition indicates whether the restore process has been completed or not. + // This condition is particularly helpful when the restore addon require some additional operations to perform + // before marking the RestoreSession Succeeded/Failed. + RestoreCompleted = "RestoreCompleted" + + // RestoreExecutorEnsured condition indicates whether the restore job / init-container was ensured or not. + RestoreExecutorEnsured = "RestoreExecutorEnsured" + + // MetricsPushed whether the metrics for this backup session were pushed or not + MetricsPushed = "MetricsPushed" + + // PreRestoreHookExecutionSucceeded indicates whether the preRestore hook was executed successfully or not + PreRestoreHookExecutionSucceeded = "PreRestoreHookExecutionSucceeded" + + // PostRestoreHookExecutionSucceeded indicates whether the postRestore hook was executed successfully or not + PostRestoreHookExecutionSucceeded = "PostRestoreHookExecutionSucceeded" +) + +// ======================== Condition Reasons =================== +const ( + // InitContainerInjectionSucceeded indicates that the condition transitioned to this state because stash init-container + // was injected successfully into the targeted workload + InitContainerInjectionSucceeded = "InitContainerInjectionSucceeded" + // InitContainerInjectionFailed indicates that the condition transitioned to this state because operator was unable + // to inject stash init-container into the targeted workload + InitContainerInjectionFailed = "InitContainerInjectionFailed" + + // RestoreJobCreationSucceeded indicates that the condition transitioned to this state because restore job was created successfully + RestoreJobCreationSucceeded = "RestoreJobCreationSucceeded" + // RestoreJobCreationFailed indicates that the condition transitioned to this state because operator was unable to create restore job + RestoreJobCreationFailed = "RestoreJobCreationFailed" + + // SuccessfullyPushedMetrics indicates that the condition transitioned to this state because the metrics was successfully pushed to the pushgateway + SuccessfullyPushedMetrics = "SuccessfullyPushedMetrics" + // FailedToPushMetrics indicates that the condition transitioned to this state because the Stash was unable to push the metrics to the pushgateway + FailedToPushMetrics = "FailedToPushMetrics" + + SuccessfullyEnsuredRestoreExecutor = "SuccessfullyEnsuredRestoreExecutor" + FailedToEnsureRestoreExecutor = "FailedToEnsureRestoreExecutor" + + SuccessfullyExecutedPreRestoreHook = "SuccessfullyExecutedPreRestoreHook" + FailedToExecutePreRestoreHook = "FailedToExecutePreRestoreHook" + + SuccessfullyExecutedPostRestoreHook = "SuccessfullyExecutedPostRestoreHook" + FailedToExecutePostRestoreHook = "FailedToExecutePostRestoreHook" + + PostRestoreTasksExecuted = "PostRestoreTasksExecuted" + PostRestoreTasksNotExecuted = "PostRestoreTasksNotExecuted" +) diff --git a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/summary_types.go b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/summary_types.go new file mode 100644 index 000000000..95e1118cc --- /dev/null +++ b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/summary_types.go @@ -0,0 +1,45 @@ +/* +Copyright AppsCode Inc. and Contributors + +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 v1beta1 + +import ( + core "k8s.io/api/core/v1" +) + +// Summary summarizes backup/restore session information for a target +type Summary struct { + // Name of the respective BackupSession/RestoreSession/RestoreBatch + Name string `json:"name,omitempty"` + // Namespace of the respective invoker + Namespace string `json:"namespace,omitempty"` + + // Invoker specifies the information about the invoker which resulted this session + Invoker core.TypedLocalObjectReference `json:"invoker,omitempty"` + // Target specifies the target information that has been backed up /restored in this session + Target TargetRef `json:"target,omitempty"` + // Status specifies the backup/restore status for the respective target + Status TargetStatus `json:"status,omitempty"` +} + +type TargetStatus struct { + // Phase represent the backup/restore phase of the target + Phase string `json:"phase,omitempty"` + // Duration represent the amount of time it took to complete the backup for this target. + Duration string `json:"duration,omitempty"` + // Error specifies the respective error message in case of backup/restore failure + Error string `json:"error,omitempty"` +} diff --git a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/types.go b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/types.go index 4629897d3..321036a7b 100644 --- a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/types.go +++ b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/types.go @@ -62,7 +62,7 @@ type BackupTarget struct { // Specify the volumes that contains the target directories // +optional VolumeMounts []core.VolumeMount `json:"volumeMounts,omitempty"` - //replicas are the desired number of replicas whose data should be backed up. + // replicas are the desired number of replicas whose data should be backed up. // If unspecified, defaults to 1. // +optional Replicas *int32 `json:"replicas,omitempty"` @@ -140,6 +140,8 @@ type TargetRef struct { APIVersion string `json:"apiVersion,omitempty"` Kind string `json:"kind,omitempty"` Name string `json:"name,omitempty"` + // +optional + Namespace string `json:"namespace,omitempty"` } type ExecutionOrder string diff --git a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/types_helpers.go b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/types_helpers.go index 929e8dae2..54ec2592d 100644 --- a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/types_helpers.go +++ b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/types_helpers.go @@ -25,6 +25,7 @@ import ( const ( StashBackupComponent = "stash-backup" StashRestoreComponent = "stash-restore" + TargetKindEmpty = "EmptyTarget" ) // TODO: complete @@ -38,3 +39,11 @@ func GetOpenAPIDefinitionsWithRetentionPolicy(ref common.ReferenceCallback) map[ out[key] = v1alpha1.GetOpenAPIDefinitions(ref)[key] return out } + +func EmptyTargetRef() TargetRef { + return TargetRef{ + APIVersion: "na", + Kind: TargetKindEmpty, + Name: "na", + } +} diff --git a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/zz_generated.deepcopy.go b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/zz_generated.deepcopy.go index 93d8fde67..400f1d30b 100644 --- a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/zz_generated.deepcopy.go +++ b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/zz_generated.deepcopy.go @@ -609,6 +609,13 @@ func (in *BackupTargetStatus) DeepCopyInto(out *BackupTargetStatus) { *out = make([]string, len(*in)) copy(*out, *in) } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]v1.Condition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } return } @@ -1326,6 +1333,25 @@ func (in *SnapshotStats) DeepCopy() *SnapshotStats { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Summary) DeepCopyInto(out *Summary) { + *out = *in + in.Invoker.DeepCopyInto(&out.Invoker) + out.Target = in.Target + out.Status = in.Status + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Summary. +func (in *Summary) DeepCopy() *Summary { + if in == nil { + return nil + } + out := new(Summary) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *TargetRef) DeepCopyInto(out *TargetRef) { *out = *in @@ -1342,6 +1368,22 @@ func (in *TargetRef) DeepCopy() *TargetRef { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TargetStatus) DeepCopyInto(out *TargetStatus) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TargetStatus. +func (in *TargetStatus) DeepCopy() *TargetStatus { + if in == nil { + return nil + } + out := new(TargetStatus) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Task) DeepCopyInto(out *Task) { *out = *in diff --git a/vendor/stash.appscode.dev/apimachinery/apis/ui/v1alpha1/openapi_generated.go b/vendor/stash.appscode.dev/apimachinery/apis/ui/v1alpha1/openapi_generated.go index a6bf8d2f0..1997f377e 100644 --- a/vendor/stash.appscode.dev/apimachinery/apis/ui/v1alpha1/openapi_generated.go +++ b/vendor/stash.appscode.dev/apimachinery/apis/ui/v1alpha1/openapi_generated.go @@ -17298,6 +17298,12 @@ func schema_custom_resources_apis_appcatalog_v1alpha1_AppBindingSpec(ref common. Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"), }, }, + "tlsSecret": { + SchemaProps: spec.SchemaProps{ + Description: "TLSSecret is the name of the secret that will hold the client certificate and private key associated with the AppBinding.", + Ref: ref("k8s.io/api/core/v1.LocalObjectReference"), + }, + }, }, Required: []string{"clientConfig"}, }, @@ -17378,6 +17384,13 @@ func schema_custom_resources_apis_appcatalog_v1alpha1_ClientConfig(ref common.Re Format: "byte", }, }, + "serverName": { + SchemaProps: spec.SchemaProps{ + Description: "ServerName is used to verify the hostname on the returned certificates unless InsecureSkipVerify is given. It is also included in the client's handshake to support virtual hosting unless it is an IP address.", + Type: []string{"string"}, + Format: "", + }, + }, }, }, }, @@ -18459,6 +18472,22 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodRuntimeSettings(ref common.Refere SchemaProps: spec.SchemaProps{ Type: []string{"object"}, Properties: map[string]spec.Schema{ + "podAnnotations": { + SchemaProps: spec.SchemaProps{ + Description: "PodAnnotations are the annotations that will be attached with the respective Pod", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, "nodeSelector": { SchemaProps: spec.SchemaProps{ 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/", @@ -18482,6 +18511,22 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodRuntimeSettings(ref common.Refere Format: "", }, }, + "serviceAccountAnnotations": { + SchemaProps: spec.SchemaProps{ + Description: "ServiceAccountAnnotations are the annotations that will be attached with the respective ServiceAccount", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, "automountServiceAccountToken": { SchemaProps: spec.SchemaProps{ Description: "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.", @@ -18585,11 +18630,36 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodRuntimeSettings(ref common.Refere Format: "", }, }, + "topologySpreadConstraints": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "topologyKey", + "whenUnsatisfiable", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "topologyKey", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + 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.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.TopologySpreadConstraint"), + }, + }, + }, + }, + }, }, }, }, Dependencies: []string{ - "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodReadinessGate", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration"}, + "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodReadinessGate", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.TopologySpreadConstraint"}, } } @@ -18804,11 +18874,36 @@ func schema_kmodulesxyz_offshoot_api_api_v1_PodSpec(ref common.ReferenceCallback Ref: ref("k8s.io/api/core/v1.SecurityContext"), }, }, + "topologySpreadConstraints": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "topologyKey", + "whenUnsatisfiable", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "topologyKey", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + 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.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.TopologySpreadConstraint"), + }, + }, + }, + }, + }, }, }, }, Dependencies: []string{ - "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.Toleration"}, + "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.TopologySpreadConstraint"}, } } diff --git a/vendor/stash.appscode.dev/apimachinery/apis/util.go b/vendor/stash.appscode.dev/apimachinery/apis/util.go index d6e26f505..288ba0d2d 100644 --- a/vendor/stash.appscode.dev/apimachinery/apis/util.go +++ b/vendor/stash.appscode.dev/apimachinery/apis/util.go @@ -38,6 +38,7 @@ const ( KindService = "Service" KindJob = "Job" KindCronJob = "CronJob" + KindNamespace = "Namespace" ) const ( diff --git a/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_backupbatches.yaml b/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_backupbatches.yaml index 86d4e974e..8ca99957c 100644 --- a/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_backupbatches.yaml +++ b/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_backupbatches.yaml @@ -2904,6 +2904,12 @@ spec: 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 priority: description: The priority value. Various system components use this field to find the priority of the pod. When @@ -3118,6 +3124,12 @@ spec: 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: @@ -3167,6 +3179,130 @@ spec: 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 + required: + - key + - operator + type: object + type: array + 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 + 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. For example, in a 3-zone + cluster, MaxSkew is set to 1, and pods with + the same labelSelector spread as 1/1/0: | zone1 + | zone2 | zone3 | | P | P | | + - if MaxSkew is 1, incoming pod can only be + scheduled to zone3 to become 1/1/1; scheduling + it onto zone1(zone2) would make the ActualSkew(2-0) + 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 + 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. 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 assigment 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 + - topologyKey + - whenUnsatisfiable + type: object + type: array + x-kubernetes-list-map-keys: + - topologyKey + - whenUnsatisfiable + x-kubernetes-list-type: map type: object type: object target: @@ -3206,6 +3342,8 @@ spec: type: string name: type: string + namespace: + type: string type: object replicas: description: replicas are the desired number of replicas @@ -5137,6 +5275,12 @@ spec: 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 priority: description: The priority value. Various system components use this field to find the priority of the pod. When Priority @@ -5344,6 +5488,12 @@ spec: 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/' @@ -5390,6 +5540,120 @@ spec: 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 + required: + - key + - operator + type: object + type: array + 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 + 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. For example, in a 3-zone cluster, + MaxSkew is set to 1, and pods with the same labelSelector + spread as 1/1/0: | zone1 | zone2 | zone3 | | P | P | | + - if MaxSkew is 1, incoming pod can only be scheduled + to zone3 to become 1/1/1; scheduling it onto zone1(zone2) + would make the ActualSkew(2-0) 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 + 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. 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 assigment 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 + - topologyKey + - whenUnsatisfiable + type: object + type: array + x-kubernetes-list-map-keys: + - topologyKey + - whenUnsatisfiable + x-kubernetes-list-type: map type: object type: object schedule: @@ -5512,6 +5776,8 @@ spec: type: string name: type: string + namespace: + type: string type: object required: - target diff --git a/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_backupblueprints.yaml b/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_backupblueprints.yaml index e7b984f7c..e78752bb3 100644 --- a/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_backupblueprints.yaml +++ b/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_backupblueprints.yaml @@ -1577,6 +1577,12 @@ spec: purpose. Default: 1' format: int32 type: integer + backupNamespace: + description: BackupNamespace specifies the namespace where the backup + resources (i.e. BackupConfiguration, BackupSession, Job, Repository + etc.) will be created. If you don't provide this field, then the + backup resources will be created in the target namespace. + type: string interimVolumeTemplate: description: InterimVolumeTemplate specifies a template for a volume to hold targeted data temporarily before uploading to backend or @@ -1881,6 +1887,13 @@ spec: type: string type: object type: object + repoNamespace: + description: RepoNamespace lets you specify the namespace for the + Repositories. If this field is not specified, Stash will create + the Repository in the namespace pointed by the backupNamespace field. + If neither of the backupNamespace and repoNamespace is specified, + Stash will create the Repository in the target namespace. + type: string retentionPolicy: description: RetentionPolicy indicates the policy to follow to clean old backup snapshots @@ -3689,6 +3702,12 @@ spec: 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 priority: description: The priority value. Various system components use this field to find the priority of the pod. When Priority @@ -3896,6 +3915,12 @@ spec: 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/' @@ -3942,9 +3967,126 @@ spec: 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 + required: + - key + - operator + type: object + type: array + 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 + 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. For example, in a 3-zone cluster, + MaxSkew is set to 1, and pods with the same labelSelector + spread as 1/1/0: | zone1 | zone2 | zone3 | | P | P | | + - if MaxSkew is 1, incoming pod can only be scheduled + to zone3 to become 1/1/1; scheduling it onto zone1(zone2) + would make the ActualSkew(2-0) 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 + 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. 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 assigment 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 + - topologyKey + - whenUnsatisfiable + type: object + type: array + x-kubernetes-list-map-keys: + - topologyKey + - whenUnsatisfiable + x-kubernetes-list-type: map type: object type: object schedule: + description: Schedule specifies the default schedule for backup. You + can overwrite this schedule for a particular target using 'stash.appscode.com/schedule' + annotation. type: string task: description: Task specify the Task crd that specifies steps for backup diff --git a/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_backupconfigurations.yaml b/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_backupconfigurations.yaml index 838c52083..4be11adb6 100644 --- a/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_backupconfigurations.yaml +++ b/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_backupconfigurations.yaml @@ -2503,6 +2503,12 @@ spec: 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 priority: description: The priority value. Various system components use this field to find the priority of the pod. When Priority @@ -2710,6 +2716,12 @@ spec: 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/' @@ -2756,6 +2768,120 @@ spec: 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 + required: + - key + - operator + type: object + type: array + 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 + 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. For example, in a 3-zone cluster, + MaxSkew is set to 1, and pods with the same labelSelector + spread as 1/1/0: | zone1 | zone2 | zone3 | | P | P | | + - if MaxSkew is 1, incoming pod can only be scheduled + to zone3 to become 1/1/1; scheduling it onto zone1(zone2) + would make the ActualSkew(2-0) 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 + 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. 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 assigment 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 + - topologyKey + - whenUnsatisfiable + type: object + type: array + x-kubernetes-list-map-keys: + - topologyKey + - whenUnsatisfiable + x-kubernetes-list-type: map type: object type: object schedule: @@ -2796,6 +2922,8 @@ spec: type: string name: type: string + namespace: + type: string type: object replicas: description: replicas are the desired number of replicas whose diff --git a/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_backupsessions.yaml b/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_backupsessions.yaml index ecaf84feb..a5de60d3b 100644 --- a/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_backupsessions.yaml +++ b/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_backupsessions.yaml @@ -141,6 +141,55 @@ spec: description: Targets specify the backup status of individual targets items: properties: + conditions: + description: Conditions shows condition of different operations/steps + of the backup process for this target + items: + properties: + lastTransitionTime: + description: Last time the condition transitioned from + one status to another. This should be when the underlying + condition changed. If that is not known, then using + the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: A human readable message indicating details + about the transition. This field may be empty. + type: string + observedGeneration: + description: If set, this represents the .metadata.generation + that the condition was set based upon. For instance, + if .metadata.generation is currently 12, but the .status.condition[x].observedGeneration + is 9, the condition is out of date with respect to the + current state of the instance. + format: int64 + type: integer + reason: + description: The reason for the condition's last transition + in CamelCase. The specific API may choose whether or + not this field is considered a guaranteed API. This + field may not be empty. + type: string + status: + description: Status of the condition, one of True, False, + Unknown. + type: string + type: + description: Type of condition in CamelCase or in foo.example.com/CamelCase. + Many .condition.type values are consistent across resources + like Available, but because arbitrary conditions can + be useful (see .node.status.conditions), the ability + to deconflict is important. + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array phase: description: Phase indicates backup phase of this target enum: @@ -170,6 +219,8 @@ spec: type: string name: type: string + namespace: + type: string type: object stats: description: Stats shows statistics of individual hosts for diff --git a/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_restorebatches.yaml b/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_restorebatches.yaml index eb15da3a0..a260c4a6a 100644 --- a/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_restorebatches.yaml +++ b/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_restorebatches.yaml @@ -2895,6 +2895,12 @@ spec: 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 priority: description: The priority value. Various system components use this field to find the priority of the pod. When @@ -3109,6 +3115,12 @@ spec: 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: @@ -3158,6 +3170,130 @@ spec: 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 + required: + - key + - operator + type: object + type: array + 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 + 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. For example, in a 3-zone + cluster, MaxSkew is set to 1, and pods with + the same labelSelector spread as 1/1/0: | zone1 + | zone2 | zone3 | | P | P | | + - if MaxSkew is 1, incoming pod can only be + scheduled to zone3 to become 1/1/1; scheduling + it onto zone1(zone2) would make the ActualSkew(2-0) + 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 + 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. 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 assigment 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 + - topologyKey + - whenUnsatisfiable + type: object + type: array + x-kubernetes-list-map-keys: + - topologyKey + - whenUnsatisfiable + x-kubernetes-list-type: map type: object type: object target: @@ -3184,6 +3320,8 @@ spec: type: string name: type: string + namespace: + type: string type: object replicas: description: replicas is the desired number of replicas @@ -3814,6 +3952,8 @@ spec: type: string name: type: string + namespace: + type: string type: object stats: description: Stats shows restore statistics of individual hosts diff --git a/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_restoresessions.yaml b/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_restoresessions.yaml index 94c665925..172d6ab05 100644 --- a/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_restoresessions.yaml +++ b/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_restoresessions.yaml @@ -2501,6 +2501,12 @@ spec: 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 priority: description: The priority value. Various system components use this field to find the priority of the pod. When Priority @@ -2708,6 +2714,12 @@ spec: 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/' @@ -2754,6 +2766,120 @@ spec: 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 + required: + - key + - operator + type: object + type: array + 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 + 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. For example, in a 3-zone cluster, + MaxSkew is set to 1, and pods with the same labelSelector + spread as 1/1/0: | zone1 | zone2 | zone3 | | P | P | | + - if MaxSkew is 1, incoming pod can only be scheduled + to zone3 to become 1/1/1; scheduling it onto zone1(zone2) + would make the ActualSkew(2-0) 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 + 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. 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 assigment 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 + - topologyKey + - whenUnsatisfiable + type: object + type: array + x-kubernetes-list-map-keys: + - topologyKey + - whenUnsatisfiable + x-kubernetes-list-type: map type: object type: object target: @@ -2780,6 +2906,8 @@ spec: type: string name: type: string + namespace: + type: string type: object replicas: description: replicas is the desired number of replicas of the